我听说有可能使用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;
例如我的情况是:
表some_table_1
列s_name
正在根据some_table_2
列s_name
中的数据进行更新,我想要
创建更新状态,但仅适用于需要它的行。
如何正确完成?
编辑: 看看我的回答,了解我的意思非常有帮助。
答案 0 :(得分:6)
我找到了如何正确地做到这一点,一般例子:
select 'update table_name set column_name =
'||variable_from_target_table||' where column_code =
'||variable_from_target_table_2||';' from target_table;
例如:
select 'update some_table_1 set
s_name = ''' ||s_name|| ''' where s_code = ''' ||s_code|| ''';' from some_table_2;
这会产生更新:
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';
我认为当你想要发表许多陈述时,这是有用的。
答案 1 :(得分:2)
select 'update some_table_1 t1 set t1.s_name = ''' + D.CODE + '''
where some_table_2.s_code = some_table_1.code; ' from ADMDEPTMAST D;
我在 SQL2008
中执行上述查询