資料庫中如何在同一張表中,複製已經存在的記錄,只有主鍵不同,其餘欄位均相同,不變
FAS_BILL_INFO表的主鍵為BILL_CODE,新生成一個new_bill_code,把old_bill_code對應的全部複製到新生成new_bill_code的記錄中;
declare
old_bill_code varchar2(44); --舊借據號 舊主鍵
new_bill_code varchar2(44); --新借據號 新主鍵
...
begin
old_bill_code := '已存在的借據號XXXXX';
new_bill_code := '使用已有規則等或呼叫儲存過程生成一個新的借據號';
INSERT INTO FAS_BILL_INFO (BILL_CODE,
CINO,
LOAN_PROTOCOL_CODE,
EMPLOYEE_CODE,
LOAN_BAL,
....
)
SELECT
new_bill_code,
CINO,
LOAN_PROTOCOL_CODE,
EMPLOYEE_CODE,
LOAN_BAL,
....
FROM FAS_BILL_INFO
WHERE BILL_CODE = old_bill_code;
exception
when others then
dbms_output.line('INSERT INTO FAS_BILL_INFO 時,發生異常:' || SQLCODE || ':' || SQLERRM || ':' || DBMS_UTILITY.format_error_backtrace());
end;