程序如下:
        qryTmp.Close;
        qryTmp.SQL.Clear;
        qryTmp.SQL.Add('insert into sale_plan(dept_no,plan_date)');
        qryTmp.SQL.Add(' select dept_no,'+tmpDate+' as plan_date from dept where upper_dept_no='+tmpDeptNo+' and dept_type<>2 ');
        qryTmp.ExecSQL;
生成的sql在PL/SQL Developer中运行无误,可是在delphi中就老报这个错误,我是adoquery直接访问的oracle8,不知道是否是ado控件的问题?请各位高手指点迷津!表sale_plan中dept_no和plan_date是关键字索引

解决方案 »

  1.   

    你把你的'insert into sale_plan(dept_no,plan_date)'和' select dept_no,'+tmpDate+' as plan_date from dept where upper_dept_no='+tmpDeptNo+' and dept_type<>2 '放到一个变量里,输出来看看也许就知道错误了
    还不知道的话就把这个输出结果放到plsql中运行一下看有没有错误
      

  2.   

    你的tmpDate是什么值?
    还有,你最后的sql中有没有什么怪字符什么的。
    记得我原先遇到一次,“`”符号不能出现在“:”后面,那怕是在字符串,做update都更新不进去。
    但是在pl/sql中能执行。
      

  3.   

    我曾经是先写到字符串strSql中,即strSql:='insert into sale_plan(dept_no,plan_date) select dept_no,'+tmpDate+' as plan_date from dept where upper_dept_no='+tmpDeptNo+' and dept_type<>2 ';也不行的。
    没有什么怪字符的。
    两个变量是这样负值的:
    tmpDate:=''2005-08-31'',tmpDeptNo:='1073'
      

  4.   

    换了一个command就好用了,郁闷。到底是什么问题呢?