我的这句动态sql错在哪里了呀,请各位高人指点:
str_sq:='insert into '||table_name||'(aa,bb,cc) values(ax,'||a_table(j)||','||b_table(i)||')';
execute immediate str_sq;
报错是缺失逗号!
a_table,b_table是两个表变量。  

解决方案 »

  1.   

    没看出来。
    str_sq:='insert into ' ¦ &brvbartable_name ¦ ¦'(aa,bb,cc) values(ax,' ¦ &brvbara_table(j) ¦ ¦',' ¦ &brvbarb_table(i) ¦ ¦')';
    dbms_output.put_line(str_sq);
    --execute immediate str_sq; 动态sql的时候,看下最后的sql是什么样的
    执行下
      

  2.   

    dbms_output.put_line(str_sq);
    把它打出来看看.
      

  3.   

    我用的是双线的,不知道为什么提问后的格式不对:
    sql_sq:='insert into'||table_name||'(aa,bb,cc)'values(ax,'||a_table(i)||','||b_table(j)||')';
      

  4.   

    str_sq:='insert into ' ¦| &brvbartable_name ¦ ¦'(aa,bb,cc) values(ax,' ¦| &brvbara_table(j) ¦ ¦',' ¦ &brvbarb_table(i) ¦ ¦')';
    execute immediate str_sq; 
      

  5.   

    我执行过结果是:
    insert into exd080526(aa,bb,cc) values(ax,02-6月 -08,654151)
    看起来没有错啊,为什么还是报错:缺失逗号呢??
      

  6.   

    SQL> desc test;
    Name Type   Nullable Default Comments 
    ---- ------ -------- ------- -------- 
    A    DATE   Y                         
    B    NUMBER Y                         
     
    SQL> insert into test values (02-6月 -08,1);
     
    insert into test values (02-6月 -08,1)
     
    ORA-00917: 缺失逗号
     
    SQL> insert into test values (to_date('02-6月 -08','yyyymmdd'),1);
     
    insert into test values (to_date('02-6月 -08','yyyymmdd'),1)
     
    ORA-01843: 无效的月份
     
    SQL> insert into test values (to_date('02-6月 -08','dd-mon-yy'),1);
     
    1 row inserted
     
    SQL> 
      

  7.   

    SQL> desc test;
    Name Type   Nullable Default Comments 
    ---- ------ -------- ------- -------- 
    A    DATE   Y                         
    B    NUMBER Y                         
     
    SQL> insert into test values (02-6月 -08,1);
     
    insert into test values (02-6月 -08,1)
     
    ORA-00917: 缺失逗号
     
    SQL> insert into test values (to_date('02-6月 -08','yyyymmdd'),1);
     
    insert into test values (to_date('02-6月 -08','yyyymmdd'),1)
     
    ORA-01843: 无效的月份
     
    SQL> insert into test values (to_date('02-6月 -08','dd-mon-yy'),1);
     
    1 row inserted
     
    SQL> 
      

  8.   


    str_sq:='insert into '||table_name||' (aa,bb,cc) 
                     values(ax,to_date('||a_table(j)||',''dd-mon-yy''),'||b_table(i)||')';
    改成这样为什么又报错缺失右括号了呢?
          
      

  9.   

    打印出来这样:insert into table (aa,bb,cc)
                     values(40,02-6月 -08,654151)
    报错:缺失逗号
    打出来这样:insert into table(aa,bb,cc)
                     values(40,to_date(02-6月 -08('dd-mon-yy'),654151)
    报错:缺失右括号
      

  10.   


    明明这个sql语句有错误呀
      

  11.   

    SQL> insert into test values (to_date('02-6月 -08 12:11:10','dd-mon-yy hh24:mi:ss'),1); 
     
    1 row inserted
      

  12.   

    亲,你使用的ORCL吧,在语句后面加个;号就OK了、