存过过程如下
create or replace procedure TESTTABLE_Select(v_CX out SYS_REFCURSOR )
as
begin
OPEN v_CX FOR select * from TESTTABEL;
end TESTTABLE_Select;这样执行看不到结果撒
declare V_CX SYS_REFCURSOR;
begin
TESTTABLE_Select(V_CX);
end;
create or replace procedure TESTTABLE_Select(v_CX out SYS_REFCURSOR )
as
begin
OPEN v_CX FOR select * from TESTTABEL;
end TESTTABLE_Select;这样执行看不到结果撒
declare V_CX SYS_REFCURSOR;
begin
TESTTABLE_Select(V_CX);
end;
已连接。
eygle@SZTYORA> desc emp;
名称 是否为空? 类型
----------------------------------------------------------------------------------------- -------- ------------------------------------------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NOT NULL NUMBER(2)
LOC NOT NULL VARCHAR2(13)eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
2 as
3 begin
4 open emp_cur for 'SELECT * FROM EMP ';
5 end;
6 /过程已创建。eygle@SZTYORA> var emp_cur refcursor;
eygle@SZTYORA> exec emp_proc(:emp_cur);PL/SQL 过程已成功完成。eygle@SZTYORA> print emp_cur; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 400 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGOeygle@SZTYORA> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 400 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGO
begin
TESTTABLE_Select(V_CX);
print V_CX;
end;报错 符号:=被替换为V_CX后继续
var V_CX SYS_REFCURSOR;
TESTTABLE_Select(:V_CX);
/
print V_CX;
存储过程应该没问题 我在C#程序里调用是有结果的
var v_cx refcursor;
exec TESTTABLE_Select(:v_cx);
print v_cx;-- 这么简单也不会,你还能做点什么呢?
-- 进入cmd,执行类似于下面的操作:
C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 4月 21 10:18:45 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.idle> conn eygle/eygle
已连接。
eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
2 as
3 begin
4 open emp_cur for SELECT * FROM EMP;
5 end;
6 /过程已创建。eygle@SZTYORA>
eygle@SZTYORA> var v_emp refcursor;
eygle@SZTYORA> exec emp_proc(:v_emp);PL/SQL 过程已成功完成。eygle@SZTYORA> print v_emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 400 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGOeygle@SZTYORA>