declare    
lv_month  :=  '07'  
update  table  set  zzs¦¦lv_month='111111'  lv_month 是变量
 
为什么执行老是错误啊,我想实现的语句是  
update  table  set  zzs07='111111'

解决方案 »

  1.   

    tryEXECUTE IMMEDIATE 'update  table  set  zzs' || lv_month || '='111111' ' ;
      

  2.   

    declare 
    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?
      

  3.   

    那你的table 里得有zzs111111这一列啊。
      

  4.   

    lv_month := '07';
    lv_zzs := 256;
    v_sql:='update tbl_test set zzs' || lv_month || '=' || lv_zzs;
    EXECUTE IMMEDIATE  v_sql;
      

  5.   

    lv_month  :=  '07';  
    lv_zzs  :=  256;  
    v_sql:='update  tbl_test  set  zzs'    ¦  ¦  lv_month    ¦  ¦  '='    ¦  ¦  lv_zzs;  
    EXECUTE  IMMEDIATE    v_sql;  这样还是不行啊
      

  6.   

    lv_month  :=  '07';  
    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'; 
      

  7.   

    declare
    lv_month  :=  '07';  
    lv_zzs  :=  256;  
    EXECUTE IMMEDIATE 'update  table  set  zzs' || lv_month || '='''||lv_zzs||'''' ;
      

  8.   

    declare
    lv_month varchar2(10) :=  '07';  
    lv_zzs  varchar2(10) :=  '1111';  
    begin
    dbms_output.put_line('update  table  set  zzs' || lv_month || '='''||lv_zzs||'''' );
    end;
      

  9.   

    晕了具体看你字段的类型,原则就是拼出一条sql语句
    具体问题具体分析......
      

  10.   

    终于搞定了,谢谢楼上的,想问一下为什么lv_zzs旁边要有三个‘,有没有关于这方面的介绍帖子或者书发个连接给我看看,谢谢了。
      

  11.   

    ||是字符串的连接符
    ''中的内容表示文字
    如果字符串中需要有[']怎么办呢?就用['']来表示
    所以 
    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 || ''''