strsql4:=  'INSERT INTO tb_dovou'||voucher_name||' 
(fd_dovou_dealnum  ,  fd_dovou_deptid  ,fd_dovou_memo)
values
( '||dealnum||'     ,'||dept_login||'  ,'||memos||')';
execute immediate strsql4;
执行的时候会出错
Warning: ociexecute(): OCIStmtExecute: ORA-00984: 列在此处不允许 ORA-06512: 在"TEST.PRO_PZ_ADD", line 34 ORA-06512: 在line 1 in C:\Program Files\Apache Group\Apache2\htdocs\banking\ck\pz_add.php on line 37但是我将'||memos||'改为随便插入一个字符窜“sdfsd”就不会出错,memos是一个输入参数,我确认过它是有值的

解决方案 »

  1.   

    改用'''||memos||'''插入表里的记录是“||memos||“,而不是memos变量的值
    我的dealnum也是字符串,照样可以插入没错啊
      

  2.   

    两个''算一个'
    改用'''||memos||'''
      

  3.   

    哦,是我看错了 bluelamb(bluelamb) 写的,把他看成用''||memos||''
    现在改成用'''||memos||'''可以了谢谢bluelamb(bluelamb) 和freddy2003()