select col1,col2 into v_a1,v_a2 from t1 where.....
select count(*) into v_count from t1 where ....

解决方案 »

  1.   

    /* 存储过程怎么返回数据集 *//* 1.建立带ref cursor定义的包和包体及过程 */
    create or replace package pkg_test
    as
    type myrctype is ref cursor;
    procedure display(p_empno char,p_rc out myrctype);
    end;create or replace package body pkg_test
    as
      procedure display(p_empno char,p_rc out myrctype)
      is
      sqlst varchar2(100);
      begin     
        if p_empno is null then
           open p_rc for select emp_name from student;
        else
           sqlst := 'select emp_name from student where emp_no = :w_empno';
           open p_rc for sqlst using p_empno;
        end if;
        end;
    end;调用:
    declare 
      w_rc pkg_test.myrctype;
      w_empname student.emp_name%type;
    begin 
      pkg_test.display('0001', w_rc);  loop
          fetch w_rc into w_empname;
          exit when w_rc%notfound;
          dbms_output.put_line(w_empname);
      end loop;
    end;
      

  2.   

    SQL SERVER 一条语句就解决了 ,ORACLE 原来这么麻烦。学习。
      

  3.   

    1  declare
      2  sql1 varchar2(100);
      3  begin
      4  sql1 :='select * from b';
      5  execute immediate(sql1);
      6* end;
    SQL> /PL/SQL 过程已成功完成。
      

  4.   

    这些 不是sql语句吗?难道oral跟sql差不多?哪个功能强大点?