insert into btc_ClientInfo_tmp select * from btc_clientinfo a where (a.sorgid=p_sorgid or a.sl1orgid=p_sorgid or a.sl2orgid=p_sorgid or a.sl3orgid=p_sorgid or a.sl4orgid=p_sorgid);其中btc_ClientInfo_tmp和btc_clientinfo 表结构完全相同,但是这条语句在编译的时候报错,错误信息如下:
Error: PL/SQL: ORA-00913: too many values
是不是语句结构不正确啊,应该怎么改啊,请高手指教。。

解决方案 »

  1.   

    如果btc_ClientInfo_tmp和btc_clientinfo 表结构完全相同,应该没什么问题啊,你先简单的测度下,比如
    insert into btc_ClientInfo_tmp select * from btc_clientinfo a where a.sorgid=p_sorgid看能行不。有可能是
    二个表中存在字段长度不一致的问题
      

  2.   

    分析:
    你先检查两个表的表结构(挨个column的检查),看是否完全一致。
      

  3.   

    看语句没什么问题。我觉得较好的编程习惯是不要用select *, 而是写全字段名。那么就算出错也会一目了然。