Sql Oracle中FROM子句中的表达式是否可以使用大小写?

Sql Oracle中FROM子句中的表达式是否可以使用大小写?,sql,oracle,plsql,Sql,Oracle,Plsql,上下文 使用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 cas

上下文

使用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 ;
/
注意
我已经知道了,但是所有的RDBMS都不相等。

首先,为什么不使用Oracle中内置的分区功能呢?容易多了

Oracle支持先插入

insert first
    when partition_id = 1 then
        into my_table_1( "id", "code", "msg" )
            values ( :new."id", :new."code", :new."msg" )
    when partition_id = 2 then
        into my_table_2( "id", "code", "msg" )
            values ( :new."id", :new."code", :new."msg" );

首先,为什么不使用Oracle中内置的分区功能呢?容易多了

Oracle支持先插入

insert first
    when partition_id = 1 then
        into my_table_1( "id", "code", "msg" )
            values ( :new."id", :new."code", :new."msg" )
    when partition_id = 2 then
        into my_table_2( "id", "code", "msg" )
            values ( :new."id", :new."code", :new."msg" );

我想你需要一个包含两个不同insert语句的案例。@jarlh嘿,伙计,希望你做得不错。关于你的建议,是的,它在世界范围内起作用,但是如果你知道为什么你认为在这里使用CASE表达式,那就好了?我不这么认为,我所指的问题已经有了答案。我想你需要一个包含两个不同insert语句的案例。@jarlh嘿,伙计,希望你做得不错。关于你的建议,是的,它在世界范围内起作用,但是如果你知道为什么你认为在这里使用CASE表达式,那就好了?我不这么认为,我的目标已经有了答案。谢谢。我编辑了这个问题来解释我们为什么不使用表分区。@Gordon Mate,感谢您将
insert first
带出坟墓;-)IIRC,我上一次用它是…哦,我想是很久以前:-)一个普通的汉克。我编辑了这个问题来解释我们为什么不使用表分区。@Gordon Mate,感谢您将
insert first
带出坟墓;-)IIRC,我上一次用它是……哦,我想是很久以前了:-)像往常一样向上投票