我使用的工具是PL/SQL,数据库是oracle10g的
在command windows模式下,我做的以下操作
SQL> variable x refcursor
结果却报 REFCURSOR not supported这个错误
我尝试改成
SQL> variable x ref cursor
结果还是报一样的错误
我感觉我定义这个游标应该没什么问题啊,上论坛看帖子,其他人也遇到了这个问题,但是好像都没有有效解决的。
麻烦有解决过的人帮忙指点一下,小弟在这里谢过了。
在command windows模式下,我做的以下操作
SQL> variable x refcursor
结果却报 REFCURSOR not supported这个错误
我尝试改成
SQL> variable x ref cursor
结果还是报一样的错误
我感觉我定义这个游标应该没什么问题啊,上论坛看帖子,其他人也遇到了这个问题,但是好像都没有有效解决的。
麻烦有解决过的人帮忙指点一下,小弟在这里谢过了。
以下是我写的,都不可以
SQL> variable x sys_refcursor
SYS_REFCURSOR unknown datatype
SQL> variable x refcuror
REFCUROR unknown datatype
SQL> variable x sys_refcuror
SYS_REFCUROR unknown datatype
x sys_refcursor;
begin
-- do whatever you want
end;
/
2 x sys_refcursor
3 begin
4 open :x for select * from dev_info;
5 end;
6 /
报错:
declare
open :x for select * from zzdT;
end;
ORA-06550: line 5, column 6:
PLS-00103: Encountered the symbol "" when expecting one of the following: constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestamp interval date binary national character
nchar
SQL> declare
2 x sys_refcursor;
3 begin
4 open x for select * from dev_info
5 end;
6 /
declare
x sys_refcursor;
begin
open x for select * from dev_info
end;
ORA-06550: line 8, column 0:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
2 type xx is ref cursor;
3 x xx;
4 begin
5 open x for select * from dev_info
6 end;
7 /
SQL> set serveroutput on;
SQL> var x refcursor;
SQL>
但是是:refcursor,不是SYS_REFCURSOR,当你在sqlplus下输入sys_refcursor时候,会提出哪些是可以输入的:
SQL> var x sys_refcursor;用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR |
BINARY_FLOAT | BINARY_DOUBLE ] ]
在PL/SQL中执行同一个数据库时提示:
SQL> var r_cur refcursor;
REFCURSOR not supportedSQL> var r_cur sys_refcursor
SYS_REFCURSOR unknown datatype