创建oracle存储过程,要求把一个表的数据导入另一个表中然后删除原表且要有异常处理和日志输出

2025-03-23 23:55:12
推荐回答(2个)
回答1:

又是你呀,我再把代码改改,很简单,代码如下
create or replace procedure test
is
begin
--两个表字段一样
insert into 表名1 select * from 表名2;
--字段不一样
insert into 表名1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表名2;
--删除原表数据
delete 表名2
或者
TRUNCATE TABLE 表名2
COMMIT;
WHEN OTHERS THEN --当运行出现异常
dbms_output.put_line(SQLERRM(SQLCODE));--输出到控制台
end

回答2:

CREATE OR REPLACE PROCEDURE SOLUTION IS
BEGIN
    -- 将TABLE1表的数据导入TABLE2表中
    INSERT INTO TABLE2 SELECT * FROM TABLE1;
    DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' 条记录插入。');
    -- 删除原表记录
    DELETE FROM TABLE1;
    DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' 条记录被删除。');
EXCEPTION
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('异常错误:' || SUBSTRB(SQLERRM, 1,240));
END;
/