oracle游标里的字段能使用变量吗?如何实现,请高手赐教!

sindy520 2013-04-17 02:58:40
有一张表的一条信息有24段一样的数据,现在想遍历循环这24段,想使用字段变量,但一直报错,不知道能否实现,请高手赐教,在线等,谢谢了!! 程序如下:
create or replace procedure test_09 as
TYPE CURSOR_TYPE IS REF CURSOR;
C_T_ANP_AMWKPL09 CURSOR_TYPE;
R_T_ANP_AMWKPL09 T_ANP_AMWKPL09%ROWTYPE;
V_SQLSTR VARCHAR2(300);
V_BL_FRST_DUE_DATE CHAR(10);--最初到期日
V_BL_STOP_DATE CHAR(10);--停止日期
V_BL_NUM_PMTS NUMBER(12);--还款次数
V_BL_FREQ CHAR(1);--还款频率
V_BL_INCR NUMBER(12);--还款增量
V_NUM INT;--第几段还款计划(共24段)
V_INDX VARCHAR2(100);
V_FLAG CHAR(1);--更新标志
V_DATE CHAR(10);--当前业务日期
begin
SELECT substr(curr_date,1,4)||'-'||substr(curr_date,5,2)||'-'||substr(curr_date,7,2) INTO V_DATE FROM SYSTEM_INFO S;
V_SQLSTR := 'SELECT * FROM T_ANP_AMWKPL09 where rownum=1';
--打开游标
OPEN C_T_ANP_AMWKPL09 FOR V_SQLSTR;
LOOP
FETCH C_T_ANP_AMWKPL09 INTO R_T_ANP_AMWKPL09;
EXIT WHEN C_T_ANP_AMWKPL09%NOTFOUND;
V_INDX := R_T_ANP_AMWKPL09.TR_CTL1||R_T_ANP_AMWKPL09.TR_CTL2||R_T_ANP_AMWKPL09.TR_CTL3||R_T_ANP_AMWKPL09.TR_CTL4||R_T_ANP_AMWKPL09.RT_ACCT_NUM;
V_FLAG := 0;
for i in 1..24 loop
V_BL_FRST_DUE_DATE := 'BL_FRST_DUE_DATE'||i;
V_BL_STOP_DATE := 'BL_STOP_DATE'||i;
V_BL_NUM_PMTS := 'BL_NUM_PMTS'||i;
V_BL_FREQ := 'BL_FREQ'||i;
V_BL_INCR := 'BL_INCR'||i;
DBMS_OUTPUT.put_line(R_T_ANP_AMWKPL09.'||V_BL_FREQ||');--这个报错
end loop;
END LOOP;
CLOSE C_T_ANP_AMWKPL09;
end test_09;
...全文
237 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2013-04-22
  • 打赏
  • 举报
回复
可以使用游标变量,配合动态SQL一起使用
陈字文 2013-04-17
  • 打赏
  • 举报
回复
这个报错.....报什么错?
bonlog 2013-04-17
  • 打赏
  • 举报
回复
游标,就是一个结果集, 变量你可以初,传入。 游标是输出啊。。

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧