Oracle Forms 12C设置单元格颜色触发ORA-06502错误求助
Oracle Forms WHEN_LIST_CHANGED触发器ORA-06502错误问题
- 长期使用Stack Overflow但很少提问,Oracle Forms新手。
- 在表格页面
TAB_CONTRACTS_TABLE(画布TAB_CONTRACTS)中加载了5000行合同数据,表格填充正常。 - 配置了下拉列表
DDL_EXPIRED(选项30、60、90)用于指定合同到期提前检查天数,该控件属于数据块CBLK_TB(不确定是否是问题根源)。 - 编写
WHEN_LIST_CHANGED触发器先实现30天到期标记逻辑,代码如下:
DECLARE EXPIRE_CHECK VARCHAR2 (10000); BEGIN EXPIRE_CHECK := get_block_property ('DB_CONTRACTS_TABLE', first_item); WHILE (EXPIRE_CHECK IS NOT NULL) LOOP IF :DB_CONTRACTS_TABLE.CONTRACT_END_DATE > (SYSDATE + 30) THEN SET_ITEM_INSTANCE_PROPERTY ('DB_CONTRACTS_TABLE.CONTRACT_END_DATE', BACKGROUND_COLOR, 'r255,g255,b000'); END IF; :DB_CONTRACTS_TABLE.CONTRACT_END_DATE := get_item_property ('DB_CONTRACTS_TABLE.CONTRACT_END_DATE', nextitem); END LOOP; END;
- 表单编译无问题,但选择下拉框中的30时,触发错误:
WHEN_LIST_CHANGE trigger raised unhandled exception ORA-06502(通常因变量值超出容量导致)。 - 已尝试将循环变量
EXPIRE_CHECK声明为较大长度,也试过多种网上适配的代码,均未解决问题,上述为最新测试版本。
请问需要补充哪些信息来协助解决此问题?抱歉今早刚戒咖啡因,可能遗漏了关键信息。
内容的提问来源于stack exchange,提问作者Ravenphoenixxx
相关产品推荐
相关产品推荐

