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(?,?) 或者修改数据库表中字段的个数。

这样问题就能解决了。

时间: 2024-10-13 11:40:03

oracle ORA-00913: 值过多的相关文章

Sql与oracle中null值的区别

原贴链接请点击: 1 null值的介绍 NULL 是数据库中特有的数据类型,当一条记录的某个列为 NULL ,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此, NULL 并不是一个确定的值. 这是 NULL 的由来.也是 NULL 的基础,所有和 NULL 相关的操作的结果都可以从 NULL 的概念推导出来. 2 oracle中的null值介绍 在不知道具体有什么数据的时候,即未知,可以用NULL, 称它为空,ORACLE中,含有空值的表列长度为零.允许任何一种数据

ORA-00913: 值过多

前些天写的sql 都是可以用的,但是今天放入代码中却报了下面的错误: org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query 于是把生成的sql复制出来放到数据库里执行下报了”ORA-00913: 值过多“的错误.开始还以为是插入的数据量大呢,但是之前也插这么多也没有问题啊, 同事提醒了我,今天给提取数据的一张表加了一列,但是插入的这张表没有加,所以报了如上的错误.

[Oracle]根据字段值全库搜索相关数据表和字段

这个需求比较冷门,但对于在某些特定的情况下,还是会有这样的需要的.好在Oracle实现还比较方便,用存储过程则轻松实现. 查询字符串: create or replace procedure search_string(pString in varchar) as cursor all_tab_cursor is select a.owner, a.table_name, b.column_name from dba_tables a, dba_tab_columns b, dba_object

Oracle插入数据报错 (ORA-00913: 值过多)

原语句,表面没有双引号:INSERT INTO xm_ftp_lvl_mgr_hr VALUES('191','457','张A810','080072','1','null','null','null','1','null','系统管理员','2018-06-21 11:47:59','null','null','null','null','null','null','null','null','null','null','null','null','null','null','null','

用python读取oracle函数返回值

在oracle中创建一个函数,本来是想返回一个index table的,没有成功.想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格式. 考虑到返回数据量可能会很大,varchar2类型长度吃紧,于是将返回值类型设置为clob. 我是用scott用户的测试表,这个是函数定义情况: create or replace function test_query_func(dept varchar2) return clob is        type test_record is recor

细说Oracle中NULL值

1.NULL是什么? NULL表示UNKNOW(未知),其不代表不论什么值. 比如一行中某列没有不论什么值即为NULL. ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况: 1)主键字段(primary key), 2)定义时已经加了NOT NULL限制条件的字段 2.NULL有什么用? 1)NULL可用于条件推断: SELECT * FROM EMP WHERE COMM IS NULL; 或 SELECT * FROM EMP WHERE COMM IS NOT NULL;

JDBC读取新插入Oracle数据库Sequence值的5种方法

Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. 测试用的数据库脚本: SQL> create table T1 2 ( 3 ID NUMBER 4 ); Table created SQL> create sequence SEQ_T1; Sequence created //公共代码:得到数据库连接 public Connection get

Oracle ORA 12541 报错解决过程

? ? ? ? Oracle 导入全库之后使用plsql登陆时报错 ? ? 版本12C版本2 ? ? ORA-12541:?TNS:?No?Listener ? ? ? ? ? ? 再oracle主机本地可以使用sqlplus 登陆,但是使用plsql无法登陆,报错如上. ? ? 首先考虑是防火墙问题,查看防火墙和selinux均为关闭状态 ? ? 然后查看监听状态 查看 监听状态的命令为首先使用oracle 用户登陆操作系统,命令lsnrctl 进入监听程序,关键status 查看监听状态 ?

Oracle 多键值分区测试

分区可以按照两个字段分区,先比较第一个列,如果满足,则忽略第二列,如果第一个不满足,则需要比较第二个列.这种分区的方式有点难以让人理解,建议不要使用. SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.