-1

我需要使用 pl/sql 过程自动执行以下指令集:

SET DEFINE OFF;

TRUNCATE TABLE EMP.dept;

INSERT INTO EMP.dept values....;

Commit;

另外,我需要将活动(成功/失败)记录到表 EMP.Log 中。

有人可以帮我吗?

4

1 回答 1

1

根据表中的列,EMP.dept我将使用定义为的过程:

--The parameters to this procedure depend on the fields in EMP.dept
--This example assumes EMP.dept has only 2 VARCHAR fields, but
--the parameter list can easily be modified:
--
CREATE OR REPLACE PROCEDURE PROC_NAME1(INPUT1 IN VARCHAR2, INPUT2 IN VARCHAR2)  AS
    V_FAILURE INTEGER;
BEGIN
    V_FAILURE := 0;
    BEGIN
       EXECUTE IMMEDIATE 'TRUNCATE TABLE EMP.dept';
       INSERT INTO EMP.dept (FIELD1, FIELD2) VALUES (INPUT1, INPUT2);
       COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
        V_FAILURE := 1;
        ROLLBACK;
    END;

    BEGIN
        --DEPENDING ON THE COLUMNS IN YOUR LOG_TABLE
        --
        INSERT INTO LOG_TABLE(STATUS, RUN_DATE) 
        VALUES (V_FAILURE, SYSDATE);
        COMMIT;

    EXCEPTION 
    WHEN OTHERS THEN NULL;
    END;

END;
于 2013-01-03T19:11:54.013 回答