我在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调试资料一样给分
解决方案 »
- 多行记录变为一行记录的问题
- 关于ORA-01001: 无效的游标。的问题
- 请教在Oracle里,怎么判断一个字符串是否为日期格式的?(急)
- 来了就有分,很急,救命
- 已orcale 语句在 pl/plus 中执行没问题,但写在 java代码中 就没反映了??
- Oracle 有没有SQL语句将数据表导成一个文本文件,以及将他导入的代码!
- 请问Database,Schema,Catalog三者之间的区别
- 表空间最大值问题,弱水老大及各位高人请进
- 关于用ADO在ORACLE中进行DISTINCT检索的问题
- 如何解析不规则地址结构,生成树状结构的小区表
- 如何进行键盘输入(类似于read)
- 求助! 数据批量导入问题
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个问题交替错,想当然的以为是一个问题
谁能发一点关于编译分析的材料给我,一样给分,现在还不结贴。