操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误

操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误,如下图所示:

出现的原因是由于,在插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处不允许异常。 可以创建TestUser表,如下:

  1. create table TestUser (
  2. usercode char(5),
  3. username varchar2(20)
  4. )

以下例子请注意第一个字段usercode的值

1、正常例子:usercode为纯数字。可以正常插入TestUser表:

  1. insert into TestUser values (11111,‘张三‘);

2、异常例子:usercode第一位出现字符A。就会出现ORA-00984列在此处不允许错误:

  1. insert into TestUser values (A1111,‘张三‘);

3、解决例子:usercode两端加上了单引号。解决办法很简单,只要给字段值前后加上单引号即可:

  1. insert into TestUser values (‘A1111‘,‘张三‘);

总之,对于字符型字段,大家在插入数据时最好在字段值两端加上单引号,这样就可以很好的避免ORA-00984错误了。

原文地址:https://www.cnblogs.com/turnip/p/11757993.html

时间: 2024-10-25 20:26:59

操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误的相关文章

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法 打开CMD输入以下命令: mysql –u root –p 然后输入密码: 在导入脚本文件之前,对字符编码进行设置: charset gbk; 说明:上面的这条语句非常关键,这样不论你在cmd窗口,还是使用客户端输入中文,都能够正确保存了. 建议初学者不要使用SQLyog或者Navicat Premium等客户端连接工具.

关于oracle 11g导出数据时 报 ORA 1455错误的处理

由于导出的该用户的表可能存在空数据表,那么可能就会出现此其异常. 首先: 查看: SQL>show parameter deferred_segment_creation; 如果为TRUE,则将该参数改为FALSE: 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 然后: 可以针对数据表.索引.物化视图等手工分配Extent SQL>Select 'alter table '||table_n

Oracle数据库插入数据出错:ORA-06550

wpf应用调用oracle的存储过程,出错“ORA-06550:参数个数或参数类型出错”,如下图: 反复检查,存储过程的参数个数和参数类型都没错,觉得非常蹊跷.最后终于解决, 原因是当参数的值为null时要传入DBNull.Value,如下图: 总结: 如果是sql server数据库,字段是可空的字段,当传入参数是null,这样传值是可以成功插入到数据库的. 但是oracle数据库,传入参数是null,则需传入DBNull.Value,如下图:

SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题

近期弄了一个小项目,也不是非常复杂,须要将一个数据库的一些数据备份到另外一个库.不是本地,可能是网络上其它的数据库.想了一下,用了存储过程和触发器. 也不是非常复杂,首先我须要操作远程数据库,于是写了一个存储过程: CREATE PROCEDURE sendInfoToRemoteDb @CardNo varchar(50), @CardStyle varchar(20), @userId varchar(20), @UserName varchar(30), @passDate datetim

向数据库中插入数据时字符集或查询是数据无法正常显示出现乱码问题

当向数据库插入数据出错或出局无法正常显示出现乱码时.首先应该想到的是数据库的编码问题.查看当前数据库服务器默认对数据库处理的字符集 show variables like  'character_set%'; character_set_client: 默认客户端来的数据格式 character_set_connection : 连接层字符集 character_set_database:  当前数据库字符集 character_set_results:服务器给外部的字符集 假如客户端字符集与数

向Oracle数据库插入一条数据

这几天搞了一下Oracle数据库,可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 ,既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来.不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲突了,唯一的 'Cms', 'Cms 网站', 'Cms', 2 , 'CMS', '广告内容管理系统' ,

PHP操作Oracle数据库

原文出处 (这是来自“百度文库”中的文章写得很不错) PHP操作Oracle数据库(OCI数据抽象层)OCI(Oracle 8 Call-Interface)是PHP中内置的数据库抽象层函数.下面针对连接Oracle数据库操作数据库的常见任务举例说明:=======================基本查询:无条件查询===================1.数据库连接:函数:oci_connect()函数:resource oci_connect ( string username, strin

关于oracle批量插入数据遇到的问题

截取部分日志信息: 2015-09-01 14:48:47,132 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]2015-09-01 14:48:47,178 INFO [org.spr

Oracle数据库用户数据完整备份与恢复

使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导出用户对象,选项如图 常用的用户对象包括: TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER 选择需要导入的用户对象,导出.sql文件,此步骤导出的是建表语句,包括存储过程.触发器.视图等 . 1.2  PL/SQ