大家新年好!请教各位关于带参数查询并返回结果集存储过程的写法:
1.有一个很长的SQL查询语句(那真的很长),带两个以上的查询条件参数,并返回结果集。为了方便在WEB上的调用,想把这个SQL语句写成存储过程的形式然后再调用,不知道该怎么写,请各位指教!假设这个SQL查询语句是:
sql="select a,b,c,d,e,f,g,h,i,j,k from mytable where id ='myid' and ins_dt =to_date('my_dt','yyyymmdd')其中两个输入参数分别是myid和mydt,请问存储过程应该怎么写?谢谢!!!

解决方案 »

  1.   

    用程序包体返回数据集
    CREATE OR REPLACE PACKAGE BODY "pack_name" AS
     procedure sp_name( state Out CurStat)   --可以加你要的2个带入参数
       is 
     begin
        <Statement>;                         --这里些查询的SQL语句
        Open state for select * from table;
     end;
      

  2.   

    create or replace package mypk
    as
    type t_cursor is ref cursor;
    procedure proc(name varchar2,c out t_cursor,a number);
    end;
    /create or replace package body mypk
    as
    procedure proc(name varchar2,c out t_cursor,a number)
    as
    begin
    open c for select * from test where id=a and name=name;
    end proc;
    end;
    /
    照着改改就行了
      

  3.   

    多谢这么快的回复。小弟刚接触存储过程,一头雾水,能不能根据那个SQL样子,写个完整的代码啊?包括包头包体存储游标什么的?多谢啦!
      

  4.   

    TO: cenlmmx(学海无涯苦作舟) 我按照你的代码找样子创建,但是没有通过,报到create or replace package body mypk这里出错?什么原因啊方便msn:[email protected] 指导,谢谢!!!