我正在嘗試編寫一個腳本,將兩個表(table2
,table3
)的內容合併爲一個常見的腳本(table1
)。語法錯誤:期望name_wo_function_call
我在一個Oracle實例上。
這是我的代碼。
DECLARE
region VARCHAR2 :='REG1'; -- just for testing
BEGIN
CASE
WHEN region = 'REG1' THEN
BEGIN
MERGE INTO table1 USING (
SELECT
field1 table2field1,
field2 table2field2
FROM table2
) ON (
field1 = table2field1
)
WHEN MATCHED THEN
UPDATE SET
field2 = table2field2
WHEN NOT MATCHED THEN
INSERT (
field1,
field2
) VALUES (
table2field1,
table2field2
);
COMMIT;
END;
WHEN region = 'REG2' THEN
BEGIN
MERGE INTO table1 USING (
SELECT
field1 table3field1,
field2 table3field2
FROM table3
) ON (
field1 = table3field1
)
WHEN MATCHED THEN
UPDATE SET
field2 = table3field2
WHEN NOT MATCHED THEN
INSERT (
field1,
field2
) VALUES (
table3field1,
table3field2
);
COMMIT;
END;
END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE;
END;
SQL開發人員說:
Syntax error. Expected:
name_wo_function_call
name
procedure_call
現在,我很新的PLSQL,我敢肯定,一定有我丟失的東西。
我該如何解決這個錯誤?
會幫助,如果你發佈你的實際代碼 – Sathya
@Sathya這是我的實際代碼,我只是改變表/字段名稱 – BackSlash