1

我在执行触发器时遇到以下错误:

SQL Error: ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "Test.ADD_DUMMY_RULE", line 13


create or replace
TRIGGER "ADD_DUMMY_RULE" 
BEFORE DELETE ON testTable
   FOR EACH ROW
WHEN (
old.product_id != 0
      )
DECLARE
 pcnt  NUMBER(14);

BEGIN
 pcnt := 0;

trig_pkg.rowIndex := trig_pkg.rowIndex + 1;

 -- STORING IMAGE_ID
 trig_pkg.old_image_id := :OLD.image_id;

 IF (trig_pkg.rimage_id IS NOT NULL) THEN
  FOR i IN 1..(trig_pkg.hold_imid_tablsize) LOOP
   IF (trig_pkg.old_image_id = trig_pkg.rimage_id(i)) THEN
    pcnt := pcnt + 1;
   END IF;
  END LOOP;
 END IF;

END;

请提出问题的原因。

编辑

数据类型:

trig_pkg.rowIndex - Number
trig_pkg.rimage_id - IS TABLE OF INTEGER INDEX BY binary_integer;
trig_pkg.hold_imid_tablsize- NUMBER(14)
4

1 回答 1

3

尝试删除以下 IF 部分字符串

IF (trig_pkg.rimage_id IS NOT NULL) THEN

INDEX BY- 表不需要初始化

于 2013-10-15T10:49:35.910 回答