CREATE OR REPLACE PROCEDURE mypro2(number varchar2, name OUT varchar2)
IS
BEGIN
***;
END;如这个存储过程,该如何接收外部的一个变量进来?另外,还有个麻烦的问题,ASP.NET如何调用 ORACLE对象,如下的对象,ASP.NET如何调用customerobj中的account过程?create or replace Type customerobj as object
(
cus_name varchar2(20),
cus_phone varchar2(20),
member procedure account(d1 number, d2 number, d3 number, k1 number, k2 number, k3 number)
}
IS
BEGIN
***;
END;如这个存储过程,该如何接收外部的一个变量进来?另外,还有个麻烦的问题,ASP.NET如何调用 ORACLE对象,如下的对象,ASP.NET如何调用customerobj中的account过程?create or replace Type customerobj as object
(
cus_name varchar2(20),
cus_phone varchar2(20),
member procedure account(d1 number, d2 number, d3 number, k1 number, k2 number, k3 number)
}
--如这个存储过程,该如何接收外部的一个变量进来?
create or replace procedure pro_show_emp(
empno_in in scott.emp.empno%type,--在要传进来的参数后面加上一个关键字in
cv_emp in out sys_refcursor
)
is
begin
open cv_emp for
select * from scott.emp emp
where emp.empno=empno_in;
exception
when others then
dbms_output.put_line(sqlerrm);
end pro_show_emp;
/
SQL> variable x refcursor;--refcursor:sqlplus下运行
SQL> exec pro_show_emp(7788,:x);
PL/SQL procedure successfully completed.
SQL> print x; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-4月 -87 3100 20
参考:
Oracle TYPE OBJECT 用法
Oracle 自定义TYPE 的几种用法
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "ProDecrypt";
cmd.CommandTypt = CommandTypt.StoredProcedure;
cmd.Parameters.Add("gongzhi", OracleType.Number);
cmd.ExecuteNonquery();请问具体的调用对象中的方法也是象这样:
cmd.CommandTypt = CommandTypt.StoredProcedure ???
分别对应传入和传出
--下面是一个简单的成员过程的调用,
--希望对你有所帮助
--建立type对象
create type address as object (
line1 varchar2(50),
city varchar2(50),
member procedure insert_address--对象里面的成员函数
)
/--建立一个对象表,就像普通表一样
create table address_table of address
/
--建立对象体
create type body address as
member procedure insert_address is
begin
insert into address_table values (line1, city);
commit;
end insert_address;
end;
/
--向表中添加数据,
declare
--类似c++里面的构造函数的调用
v_address address := new address('123 my road','london');
begin
v_address.insert_address;
end;
--其实你可以像调用平常的过程一样调用member procedure
如果能有ASP.NET直接调用对象的用法就好了。
再过几天,没人回答就加分了。
所以 这个问题你不应该发在oracle板块 而应该是asp板块