【发布时间】:2023-03-07 14:08:01
【问题描述】:
我正在编写一个简单的 PL SQL 过程。但是它抛出了我声明忽略的错误。我是否需要将它们调用到单个变量中,然后插入到最终表中?请检查下面的代码。
PROCEDURE EMP_MAIN IS BEGIN
FOR CUR1 IN
(SELECT STG.INT1 INT1
, STG.OPT1 OPT1
, STG.FDT1 DT1
, STG.HDR_SRC_LEAD_ID HDR_LEAD_ID
, STG.HDR_SRC_NAME HDR_SRC_NAME
FROM MAIN_EMP STG)
BEGIN IF (INT1 IS NOT NULL)
THEN
INSERT INTO EMP_FIN(
ROW_ID
, INT
, OPTION
, DATE
, TYPE
, RATING
)
VALUES
(
ROWNUM
, CUR1.INT1
, CUR1.OPT1
, CUR1.DT1
, 'Prospect'
, '1'
);
COMMIT;
END IF; END EMP_MAIN;
如果我遗漏了什么,请告诉我。
【问题讨论】:
-
一个提示:首先创建一个更简单的过程,检查
CREATE PROCEDURE的工作原理,然后,当您能够创建一个只执行null;的过程时,尝试添加一些代码。 -
您缺少
LOOP...END LOOP。FOR CUR1 IN (...) LOOP <statements> END LOOP;