当前位置: 代码迷 >> Oracle管理 >> oracle存储过程怎么输出结果集
  详细解决方案

oracle存储过程怎么输出结果集

热度:17   发布时间:2016-04-24 05:20:05.0
oracle存储过程如何输出结果集
SQL code
create or replace procedure sp_test1(DWMC in VARCHAR2, LX in VARCHAR2)ISv_sql VARCHAR2(1000);begin  v_sql := 'select * from test_table where dwmc:='+DWMC+' and lx:='+LX+'';  execute immediate v_sql;end sp_test1;

我这样写的有问题,据说要游标还要包什么的,为什么?
谁给我写一下,最好加注释让我明白为什么这样写!

------解决方案--------------------
SQL code
--声明包头CREATE OR REPLACE PACKAGE PACK_TESTAS --这个是游标    TYPE TESTCUR IS REF CURSOR;--这个是过程     PROCEDURE sp_test1(DWMC in VARCHAR2, LX in VARCHAR2,P_CUR OUT TESTCUR); END PACK_TEST; --声明包体CREATE OR REPLACE PACKAGE BODY PACK_TESTASPROCEDURE sp_test1(DWMC in VARCHAR2, LX in VARCHAR2,P_CUR OUT TESTCUR) isstrsql varchar2(1000);beginstrsql:='select * from test_table where dwmc='':dwmc'' and lx='':lx''';open p_cur for strsql using dwdc,lx;--上一句的:及这一句为绑定变量end sp_test1; end PACK_TEST;
------解决方案--------------------
探讨
出现这个错误:
Compilation errors for PACKAGE PG.PACK_TEST

Error: PLS-00103: 出现符号 "CREATE"
Line: 10
Text: CREATE OR REPLACE PACKAGE BODY PACK_TEST


------解决方案--------------------
探讨
我是楼主
我把package和package body分成2段分别执行,执行成功了。
可是我该在pl/sql中如何执行sp_test1这个存储?在procedures列表中没有找到sp_test1这个存储。
在package body中找到了PACK_TEST包体,view打开,在program window左边窗口中找到了sp_test1,我在上面右键选择了test(我想这是不是测试存储过程的,像sqlserver一样),然后弹出了test window,test window下方是2个传入变量和一个传出的游标,在Value列这…
  相关解决方案