【发布时间】:2011-11-15 15:47:56
【问题描述】:
我有以下光标定义
cMultiplier NUMBER := 100000000000000000 ;
CURSOR CR_TABLE1 IS
SELECT to_char((COL_ID * cMultiplier) + SEQ,'0999999999999999999') "NEW_COL"
FROM TABLE1;
然后这个游标被提取为
FETCH CR_TABLE1
BULK COLLECT INTO AR_TABLE1 LIMIT I_BULK_LIMIT;
EXIT WHEN AR_TABLE1.COUNT = 0;
AR_TABLE1 的类型是
TYPE T_TABLE1 IS TABLE OF CR_TABLE1%ROWTYPE;
AR_TABLE1 T_TABLE1;
COL_ID 的测试值在所有情况下都是 1,SEQ 的测试值是 1234567654322(13 位数字)。该值被插入到另一个类型为VARCHAR 的表中,长度为19。
问题是光标刚到FETCH,它就会抛出异常声明ORA-06500: PL/SQL: storage error
我知道它必须对 select 语句做一些事情,但我正在将它转换为字符串 (varchar)。为什么我遇到这个问题?
【问题讨论】:
标签: oracle plsql cursor oracle11g