語境是否有可能在Oracle的FROM子句中使用CASE WHEN表達式?
使用Oracle 12c的標準版(其許可模式不允許使用表分區)。
目標
使用觸發器內動態地調度行不同的表。
例
CREATE OR REPLACE trigger TRG_DISPATCH
instead of insert or update on MY_VIEW
for each row
DECLARE
partition_id SIMPLE_INTEGER ;
BEGIN
partition_id := 1 ;
insert into
case
when partition_id = 1 then "my_table_1"
when partition_id = 2 then "my_table_2"
end ("id", "code", "msg")
values
(:new."id", :new."code", :new."msg")
;
END ;
/
注意 我已經知道this cannot be achieved using Microsoft SQL Server 2005但所有的RDBMS是不相等的。
我認爲你需要有兩個不同的插入語句的情況。 – jarlh
@jarlh嘿夥計,希望你做得很好。關於你的建議,是的,它是世界範圍內的工作,但最好知道你爲什麼想在這裏使用CASE表達式?我認爲,否則,已經有一個我正在指導的答案。 –