zoukankan      html  css  js  c++  java
  • oracle ORA-00913: 值过多

    --oracle中查看表是否被锁 查看表是否被锁 
      SELECT /*+ rule*/ 
      a.sid, b.owner, object_name, object_type 
      FROM v$lock a, all_objects b 
      WHERE TYPE = 'TM' 
      and a.id1 = b.object_id; 
    --这样可以把它杀掉 
    SELECT sid,serial# FROM v$session WHERE sid =1027; 
    alter system kill session '1027,14272';

     今天做项目时碰到了关于Oracle 的一个小问题:ORA-00913: 值过多。现在已经解决了,问题虽小但是解决完后心情还是挺不错的,想分享出来,希望跟我有同样问题的朋友可以有所借鉴。 

    当oracle中报“ORA-00913: 值过多”错误的时候,那么说明写的sql语句中出了问题,这是由于我们向数据库中传递的参数的个数和数据库中相应的字段的数量不一致,所以就产生了一对多,或多对一的现象,

    下面举个例子:

    Insert into XX(?,?,?) values(?,?,?)

    上面是我们自己写的sql语句,我们要插入的值是3个。而数据库中对表XX的定义字段却只有两个,即XX(?,?)。所以我们传的参数的个数多出一个,这样数据库就会报“ORA-00913: 值过多”。

    所以我们需要把上面的sql语句改为

    Insert into XX(?,?) values(?,?) 或者修改数据库表中字段的个数。

    这样问题就能解决了。

  • 相关阅读:
    字符串提取数字/汉字/英文字母
    CHARINDEX,PATINDEX,STUFF函数
    raiserror的用法
    数据库备份与还原(通过命令)
    查询某个字段属于哪些表
    设备驱动基础1:设备模型之总线,驱动,设备
    设备模型之kobject,kset及其关系
    模拟电路创新设计
    cdev、udev
    PCB阻抗调节
  • 原文地址:https://www.cnblogs.com/sparkbj/p/5802713.html
Copyright © 2011-2022 走看看