PROCEDURE main (
id NUMBER
) IS
i VARCHAR2(255);
flag NUMBER(1) := 0;
flag1 VARCHAR2(10) ;
CURSOR one01 IS
SELECT
name,
id,
sex,
addr,
shigoto
FROM xx_test_wk ;
BEGIN
FOR i IN one01 LOOP
IF length(i.name) > 10 THEN
flag := 1;
END IF;
IF i.id > 11111110 THEN
NULL;
END IF;
-- IF i.SEX > 0 THEN
-- FLAG := 1;
-- END IF ;
IF flag = 1 THEN
NULL;
ELSE
-- INSERT01 (TRUE) ;
XX_TEST01.INSERT01 (TRUE) ; --这里调用了下面的procedure,但报错了
END IF;
END LOOP;
END;
PROCEDURE INSERT01 (flag1 VARCHAR2
)
IS
BEGIN
INSERT INTO xx_test (
name,
id,
sex,
addr,
shigoto)
VALUES (
i.name,
i.id,
i.sex,
i.addr,
i.shigoto
);
END ;
END xx_test01;
当然会报错,应该编译都是失败的,列举几个肉眼可见的问题
用plsqldev去编译这个对象,然后查看它,工具会告诉你哪里写得不对