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)
}

解决方案 »

  1.   


    --如这个存储过程,该如何接收外部的一个变量进来?
    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
      

  2.   

    ASP.NET如何调用customerobj中的account过程?
    参考:

    Oracle TYPE OBJECT 用法


    Oracle 自定义TYPE 的几种用法
      

  3.   

    谢谢BOBO12082119的回复,只是#2楼的回复中的参考文献并未提到在ASP.NET中如何调用ORACLE对象中的方法。
            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  ???
      

  4.   

    http://gs.apa-china.com/甘肃汽车配件
      

  5.   

    存储过程中有in 和 out两个参数
    分别对应传入和传出
      

  6.   


    --下面是一个简单的成员过程的调用,
    --希望对你有所帮助
    --建立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
      

  7.   

    谢谢楼上诸位的帮助!
    如果能有ASP.NET直接调用对象的用法就好了。
    再过几天,没人回答就加分了。
      

  8.   

    我感觉楼主的问题不在存储过程本身 而在asp上
    所以 这个问题你不应该发在oracle板块 而应该是asp板块