麻烦给我看一下问题出在什么地方。 
vTableName,vTHKcdm,vYKcdm都是varchar2类型。 
sqlstr:='UPDATE ' ¦ ¦vTableName ¦ ¦' SET ' ¦ ¦'kcdm=:vTHK WHERE kcdm=:vYK'; 
execute immediate sqlstr using vTHKcdm,vYKcdm; 
执行时总是提示:缺失 SET 关键字。

解决方案 »

  1. 把sqlstr输出看一下不就知道了...
      

  2. sqlstr:='UPDATE ' ¦ ¦'vTableName' ¦ ¦' SET ' ¦ ¦'kcdm=:vTHK WHERE kcdm=:vYK';
    就对了,vTableName少了单引号。
      

  3. ¦' SET ' ¦¦' kcdm=:vTHK WHERE kcdm=:vYK'; 
      

  4. 按照4楼的想法,
    sqlstr输出来是这样的,
    UPDATE  BCJPMKCB  SET  KCDM='089999'  WHERE  KCDM='089550'
    execute immediate sqlstr 时还是提示:缺失 SET 关键字。
      

  5. 本来这是简单问题。
    不过要输出的不是你想要表达,而应该是
    dbms_output.put_line(sqlstr)
    然后把参数值带入再到其它窗口下执行,就知道到底怎么回事了。    
      

类似问题 »