如何通过选择生成更新?

Ice*_*Ice 2 sql oracle

我听说有可能使用select from dual table生成更新/插入语句.我试图创建一些声明但是,我总是得到无效的标识符.

我的声明:

    select 'update some_table_1 t1 set t1.s_name = ' || some_table_2.s_name ||' 
where some_table_2.s_code = some_table_1.code; ' from dual;
Run Code Online (Sandbox Code Playgroud)

例如我的情况是:表some_table_1s_name由从数据更新some_table_2s_name,我想创建更新statments,但仅适用于需要行.

怎么做正确?

编辑:看看我的回答,理解我的意思是非常有帮助的.

Ice*_*Ice 8

我找到了如何正确地做到这一点,一般例子:

   select 'update table_name set column_name = 
'||variable_from_target_table||' where column_code = 
'||variable_from_target_table_2||';' from target_table;
Run Code Online (Sandbox Code Playgroud)

例如:

  select  'update some_table_1 set
  s_name = ''' ||s_name|| ''' where s_code = ''' ||s_code|| ''';' from some_table_2;
Run Code Online (Sandbox Code Playgroud)

这会产生更新:

udpate some_table_1 set s_name = 'Jon' where s_code = 'Y';
udpate some_table_1 set s_name = 'Adam' where s_code = 'Y';
udpate some_table_1 set s_name = 'Matt' where s_code = 'Y';
udpate some_table_1 set s_name = 'Jess' where s_code = 'Y';
udpate some_table_1 set s_name = 'Carl' where s_code = 'Y';
Run Code Online (Sandbox Code Playgroud)

我想当你想要编写许多语句时,这很有用.