我試圖插入行到table1中select * from table2,最後使用oracle sql開發者中的函數刪除table2中的行。我沒有得到如何去做。insert into table1 select * from another table2,then delete the row from table2
follwing是我的函數:
create or replace FUNCTION DELETEROW(GODOWN_DIST_CODE IN
TEST_TABLE.GODOWN_DIST_CODE%TYPE) return varchar2
AS
returned_value varchar2(50);
BEGIN
begin
INSERT INTO TEST_TABLE_BACKUP SELECT * FROM TEST_TABLE WHERE
GODOWN_DIST_CODE=GODOWN_DIST_CODE;
DELETE TEST_TABLE WHERE GODOWN_DIST_CODE = GODOWN_DIST_CODE;
INSERT INTO NEW_TABLE_BACKUP SELECT * FROM NEW_TABLE WHERE GODOWN_DIST_CODE
= GODOWN_DIST_CODE;
DELETE FROM NEW_TABLE WHERE GODOWN_DIST_CODE = GODOWN_DIST_CODE;
exception
WHEN no_data_found THEN
returned_value := '#';
end;
RETURN returned_value;
END;
顯示你曾試圖迄今未工作或提供錯誤的結果觀衆。 – XING
你不能在'PROCEDURE'裏面使用'RETURN'。如果你想返回一些東西,你需要創建'FUNCTION'。 'FUNCTION'和'PROCEDURE'是兩個不同的東西。 –
@XING,我已經創建了上面的函數,當我執行函數時,所有的行都被插入到TEST_TABLE_BACKUP和NEW_TABLE_BACKUP中,但是我傳遞了一些值作爲參數,並將其用作where條件,甚至所有記錄都被刪除。 –