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;
参考一下,自己写的