我在package头声明了
TYPE cur IS ref CURSOR;在package的一个procedure中有如下代码db_Cur cur;
wStr := 'select * from ' || in_tablename;
open db_Cur for wStr;
LOOP
FETCH db_Cur INTO Rec; --pls-00201
EXIT WHEN db_Cur%notfound;
//处理
END LOOP;貌似对于db_Cur的定义错误,求达人问我解决问题
另收关于oracle调试资料一样给分
TYPE cur IS ref CURSOR;在package的一个procedure中有如下代码db_Cur cur;
wStr := 'select * from ' || in_tablename;
open db_Cur for wStr;
LOOP
FETCH db_Cur INTO Rec; --pls-00201
EXIT WHEN db_Cur%notfound;
//处理
END LOOP;貌似对于db_Cur的定义错误,求达人问我解决问题
另收关于oracle调试资料一样给分
wStr := 'select * from ''' || in_tablename ||'''';
CREATE OR REPLACE PACKAGE ll_test AS
TYPE cur IS ref CURSOR;
procedure ll_cur;
END ll_test;CREATE OR REPLACE PACKAGE body ll_test ASprocedure ll_cur
is
db_Cur cur;
wStr varchar2(200);
in_tablename varchar2(200);
rec b_brands%rowtype;
begin
in_tablename :=' b_brands ';
wStr := 'select * from ' || in_tablename;
open db_Cur for wStr;
LOOP
FETCH db_Cur INTO rec;
EXIT WHEN db_Cur%notfound;
dbms_output.put_line(rec.brand_id);
END LOOP;end;END ll_test;
db_Cur cur;
--注意;要用半角
今天早上我已经自己解决了
少了
rec b_brands%rowtype;另外
open db_Cur for wStr;
LOOP
FETCH db_Cur INTO Rec;
EXIT WHEN db_Cur%notfound;
//处理
END LOOP;
这一段昨天慌乱中被我改成了
open db_Cur for wStr;
FOR Rec IN db_Cur LOOP;
//处理
END LOOP;
发现如下问题:
动态sql不能用 FOR Rec IN db_Cur LOOP;
ENDLOOP;
这样的语句进行循环
只能用 LOOP
FETCH db_Cur INTO Rec
ENDLOOP;
进行循环还是要感谢楼上的几位兄弟,仗义啊
昨天被这两个问题搞在一起很是狼狈,2个问题交替错,想当然的以为是一个问题
谁能发一点关于编译分析的材料给我,一样给分,现在还不结贴。