存储过程输出一般是 输出到文件或者insert表里面 我现在有个项,我不想输出到文件也不想输出到表 我想问下能不能像 select语句那样输出到 数据控件里呢??? 然后我就可以直接复制数据粘贴到excel里。

解决方案 »

  1.   

    存储过程里面不允许直接用select语句如果需要用就用游标输出存储过程里面的Select语句
      

  2.   

    不是  楼上这位大哥 没明白我的意思我的意思是说 我们平时 比如 select * from tab 然后执行,会在下面的数据控件里出现结果嘛。我想问存储过程能不能把结果像那样显示出来
      

  3.   

    直接用sql语句,不需要用存储过程
      

  4.   

    用utl_file 直接输出到excel就可以了
      

  5.   

    用utl_file 直接输出到excel就可以了
    其实不想输出到文件里  是因为我得让客户建directory 我现在连到客户的数据库服务器上生成的文件都在服务器端那边,,,现在就像不要让客户去取这些生成的数据
      

  6.   

    --写点SB的东西
    SQL> ed
    已写入 file afiedt.buf  1  create or replace procedure testPrl
      2  as
      3  cursor mycur is select * from emp;
      4  var_emp emp%rowtype;
      5  begin
      6  dbms_output.put_line('EMPNO     '||'  ENAME     '||'  SAL    ');
      7  dbms_output.put_line('----------'||'  ----------'||'  -------');
      8  open mycur;
      9  loop
     10  fetch mycur into var_emp;
     11  exit when mycur%notfound;
     12  dbms_output.put_line(rpad(var_emp.empno,12,' ')||
     13  rpad(var_emp.ename,12,' ')||rpad(var_emp.sal,7,' '));
     14  end loop;
     15  close mycur;
     16  exception
     17  when no_data_found then
     18  dbms_output.put_line('NO DATA');
     19  when others then
     20  dbms_output.put_line('EXCEPTION');
     21* end;
    SQL> /过程已创建。SQL> exec testPrl;
    EMPNO       ENAME       SAL
    ----------  ----------  -------
    7369        SMITH       800
    7499        ALLEN       1600
    7521        WARD        1250
    7566        JONES       2975
    7654        MARTIN      1250
    7698        BLAKE       2850
    7782        CLARK       2450
    7788        SCOTT       3000
    7839        KING        5000
    7844        TURNER      1500
    7876        ADAMS       1100
    7900        JAMES       950
    7902        FORD        3000
    7934        MILLER      1300PL/SQL 过程已成功完成。
      

  7.   

    楼上 这方法也。而且你明显是在sqlplus下执行的你如果在toad里执行 估计出不了这样的结果。