我听说有可能使用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_1列s_name由从数据更新some_table_2列 s_name,我想创建更新statments,但仅适用于需要行.
怎么做正确?
编辑:看看我的回答,理解我的意思是非常有帮助的.
我找到了如何正确地做到这一点,一般例子:
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)
我想当你想要编写许多语句时,这很有用.