netoracle存儲過程
⑴ 求解C#調用ORACLE存儲過程的問題,出現錯誤 ora-06550好像是參數類型和參數個數的問題,我都試N次了。
原來是在.net中,ms為oracle提供的oledb介面有問題,換成oracle自己的就沒有問題了
?? 找來的答案
⑵ c#調用oracle(odp.net)存儲過程報錯:ORA-06550: PLS-00306:
建議你用call來調用,而不是用CommandType.StoredProcere
,參見http://blog.csdn.net/zhpsam109/article/details/556971
⑶ oracle 怎樣查看已經存在的函數,過程
工具sqlplus或者plsqldeveloper
方法一:sqlplus
①登錄用戶後,執行下面語句查看當前用戶有哪些存儲過程:
select name from user_source where type='PROCEDURE';
或者:
select object_name from user_proceres;
或者:
select object_name from user_objects where object_type='PROCEDURE' ;
②找到你所要查詢的存儲過程名字後,執行下面操作,可以看到存錯過程內容:
select text from user_source where name ='xxxx';--(xxxx代表所要查詢的存儲過程名字)
------------------------------------------------
如果是函數,類似的方法,只需要把PROCEDURE,換成FUNCTION即可
-----------------------------------------------
方法二:pl/sql developer
打開該工具後,在最左側可以看到如下截圖,選擇 My objects
⑷ 請問MyBatis.net 如何執行一個不需要參數但返回結果集的oracle資料庫的存儲過程
創建或替換過程p_selTabSpace(卷
dba_data_files.tablespace_name%型)
VAR1 dba_data_files.tablespace_name%型;
VAR2號碼;
VAR3號碼;
VAR4號碼;
選擇A.A1「tabSpaceName」,b.b2/1024/1024「tabSpaceSize」,圓((b.b2 -
a.a2)/ 1024 / 1024 2)「tabSpaceUsed」,SUBSTR((b.b2 - a.a2)/ b.b2,1,
7)「tabSpaceVused」;為VAR1,VAR2,
VAR3,VAR4
(選擇TABLESPACE_NAME A1,SUM(NVL(位元組,0))A2
從DBA_FREE_SPACE
組由TABLESPACE_NAME)一,
(從DBA_DATA_FILES選擇TABLESPACE_NAME B1,SUM(位元組)B2
組由TABLESPACE_NAME)B,
(選擇TABLESPACE_NAME C1,C2的內容,extent_management C3
從DBA_TABLESPACES):C
其中A.A1 = UPPER(V1)和A.A1 = b.b1和C.C1 = b.b1;
DBMS_OUTPUT.PUT_LINE('tabSpaceName是'| | UPPER(VAR1)| |'
'| |'tabSpaceSize'| | VAR2 | |'' | |'tabSpaceUsed'| | VAR3 | |'
'| |'tabSpaceVused'| | VAR4);
完;
--------------------------------測試------------- ------------
EXECUTE p_selTabSpace('系統');
你想要的結果集是用來存儲數據或多個行存儲數據的單排,如果是後者的話,只需選擇...到...這方法未實現,因為你不能超過一個系列的所有支付給同一個變數,它是用SELECT ... INTO ...這方法的限制,如果你要存儲多行去樓上說的結果結果作為使用游標或復雜數據類型即可。
⑸ 【oracle】定義一個Oracle存儲過程,輸出1~100之間的素數。
declare
v_num number;
v_now number;
v_yes number;
c_max number;
begin
v_num:=1;
c_max:=200;--這里設置最大數,想要100這內就寫100,想要1000之內就寫1000
loop
v_now:=2;--這里設置每一個數的初始被除數,從2開始
v_yes:=1;--設置初始參考數,1為素數,0為非素數,默認初始為1
if v_num<4 then
dbms_output.put_line(v_num);--1到3都是素數,這里就不再判斷了
-- v_num:=v_num+1;--自增1
end if;
if v_num>=4 then
--這里開始判斷,只能被1和本身整除的數,就是素數
loop
if mod(v_num,v_now)=0 and v_num<>v_now then --如果有能被整除的數,且被除數不是除數本身,就不是素數
v_yes:=0;
end if;
v_now:=v_now+1;--被除數遞增
exit when v_now>=v_num;--當被除數大於除數時退出
end loop;--因為要一個一個的判斷,所以要來一次循環
end if;
if v_num>4 and v_yes=1 then
dbms_output.put_line(v_num);
-- v_num:=v_num+1;--自增
end if;
v_num:=v_num+1;--自增
exit when v_num>=c_max;
end loop;
end;
參考一下,自己寫的