-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 に答える