declare
lv_month := '07'
update table set zzs¦¦lv_month='111111' lv_month 是变量
为什么执行老是错误啊,我想实现的语句是
update table set zzs07='111111'
lv_month := '07'
update table set zzs¦¦lv_month='111111' lv_month 是变量
为什么执行老是错误啊,我想实现的语句是
update table set zzs07='111111'
lv_month varchar2(20);
lv_zzs number(16,2);
v_sql varchar2(200);
begin lv_month := '07'
v_sql:='update table set zzs'||lv_month||'=lv_zzs;
EXECUTE IMMEDIATE v_sql;
...
end;请问如果update语句中,如果111111也是变量,怎么写,我写的为什么老是提示invalid column name?
lv_zzs := 256;
v_sql:='update tbl_test set zzs' || lv_month || '=' || lv_zzs;
EXECUTE IMMEDIATE v_sql;
lv_zzs := 256;
v_sql:='update tbl_test set zzs' ¦ ¦ lv_month ¦ ¦ '=' ¦ ¦ lv_zzs;
EXECUTE IMMEDIATE v_sql; 这样还是不行啊
lv_zzs := 256;
v_sql:='update tbl_test set zzs'¦¦lv_month¦¦' =' ¦¦lv_zzs;
EXECUTE IMMEDIATE v_sql; 这样还是不行啊。
如果我这样就行了
v_sql:='update tbl_test set zzs'¦¦lv_month¦¦'=null';
lv_month := '07';
lv_zzs := 256;
EXECUTE IMMEDIATE 'update table set zzs' || lv_month || '='''||lv_zzs||'''' ;
lv_month varchar2(10) := '07';
lv_zzs varchar2(10) := '1111';
begin
dbms_output.put_line('update table set zzs' || lv_month || '='''||lv_zzs||'''' );
end;
具体问题具体分析......
''中的内容表示文字
如果字符串中需要有[']怎么办呢?就用['']来表示
所以
update table set zzs07 = '256' =>>>[update table set zzs] + [07] + [='] + [256] + [']在将[]中的'替换成'' =>>>[update table set zzs] + [07] + [=''] + [256] + ['']将[]替换成'',将+替换成|| =>>>'update table set zzs' || [07] || '=''' || [256] || ''''
'update table set zzs' || lv_month || '=''' || lv_zzs || ''''