ORA-00947 not enough values
Cause: This error occurs when a SQL statement requires two sets of values equal in number, but the second set contains fewer items than the first set. This can occur in a WHERE or HAVING clause in which a nested SELECT returns too few columns as in: WHERE (A,B) IN (SELECT C FROM ...) Another common cause of this error is an INSERT statement in which the VALUES or SELECT clause does not contain enough values needed for the INSERT, as in INSERT INTO EMP(EMPNO,ENAME) VALUES(谷ONES・ Action: Check the number of items in each set and change the SQL statement to make them equal 还是sp有问题把

解决方案 »

  1.   

    存储过程不存在问题
    只是因为换了数据库后造成的后果请教: lianhg(lianhg) 
    sp的问题是什么样的问题
      

  2.   

    行号= 22 列号= 17 错误文本= PL/SQL: ORA-00947: 没有足够的值
    行号= 22 列号= 5 错误文本= PL/SQL: SQL Statement ignored
      

  3.   

    lianhg(lianhg) :
    请问哪里有oracle 完整的帮助文件下
      

  4.   

    1)“请问哪里有oracle 完整的帮助文件下”:
      http://otn.oracle.com/documentation/content.html
    2)第22行的内容?
      

  5.   

    INSERT INTO dtCollectOilMonthStockdtCollectOilMonthStock表已经事先建好
    并且该存储过程在另一个数据库中已经测试通过,正确无误!
      

  6.   

    "INSERT INTO dtCollectOilMonthStock",如果该语句不是很长的话,“另一个数据库中已经测试通过“,取得所有值,然后在当前数据库,用sqlplus 调试
      

  7.   

    或者注释原文,改为:INSERT INTO dtCollectOilMonthStock(fld) values('xxx');
    编译,看是否出错?
      

  8.   

    改了也不行
    我的其它存储过程中也有 带values的语句,也是同样的问题问题的根源不在这里
    我写了有50几个存储过程
    都能够运行!能被程序调用,并且通过了多次的测试 结果正确 !“绝对”不存在语法方面的错误
    只是我将原来的数据库搞坏了
    新建了一个数据库重新导入存储过程后出现的问题那些存储过程中只要出现了insert into 的都出了问题
      

  9.   

    "或者注释原文,改为:INSERT INTO dtCollectOilMonthStock(fld) values('xxx');
    编译,看是否出错?" :
     往dtCollectOilMonthStock表中只输入几个字段,然后编译,是否有错,及错误信息。
      

  10.   

    说不清了
    lianhg(lianhg)   加我
    qq:18744165
      

  11.   

    有立即联系方式吗
    tel除外
      

  12.   

    1)如果新建了一个数据库重新导入存储过程后都出现的问题,那么是你没有重新编译存储过程,在sqlpuls sql>@yoursp.sql。
    2)如果仅仅是个别有问题,而且错误号是ORA-00947,那么是语句的问题
      

  13.   

    “有立即联系方式吗 tel除外” --没有
      

  14.   

    imp 什么意思
    我用SQL PLUS写入
    以前也是这么做的
    没有问题
      

  15.   

    1)你新建数据库后,原来的表都导入了吗?
    2)sql> desc dtCollectOilMonthStock
      有结果的话,把这sp做个备份,修改 “INSERT INTO dtCollectOilMonthStock( “
     往dtCollectOilMonthStock表中只输入几个字段,然后编译,是否有错,及错误信息。
      

  16.   

    我用了优化大师清理注册表
    结果oracle就挂了
    现在有个apache服务起不来
    于是新建了一个将原来的数据和存储过程导入
      

  17.   

    http://www.bliao.com:2001/gen/special5.html -->香山一叶
      

  18.   

    结帖了  非常感谢lianhg(lianhg)论坛上下的鼎立相助