文章目录

  • 报错:ORA-00923: 未找到要求的 FROM 关键字
  • 报错: ORA-00909: 参数个数无效
  • RA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
  • ORA-02083: database name has illegal character ' '
  • OCI_INVALID_HANDLE
  • ORA-00028: your session has been killed
  • ORA-00001: unique constraint (USER.UIDX_USER_CODE_NUM) violated
  • 无法将null插入 *.*
  • ORA-02289: sequence does not existORA-02289: sequence does not exist
  • ORA-01830: 日期格式图片在转换整个输入字符串之前结束
  • ORA-01843:无效的月份 和 ORA-01855:要求 AM/A.M. 或 PM/P.M.
  • ORA-12505:tns:监听程序当前无法识别链接描述符中锁给出的SID
  • ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
  • ORA-01034: ORACLE not available
  • ORA-30484: 丢失的此函数窗口说明
  • ORA-01747: user.table.column, table.column 或列说明无效 异常解决方法总结
  • 报错 ORA-00972: 标识符过长
  • ORA-01830: 日期格式图片在转换整个输入字符串之前结束
  • ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER
    • ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR
    • ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR
  • ORA-01861: 文字与格式字符串不匹配
  • ORA-01810: 格式代码出现两次
  • 异常信息:ORA-02299: cannot validate (T_USER.UNIQUE_A_B) - duplicate keys found
  • ORA-06512、ORA-01830

报错:ORA-00923: 未找到要求的 FROM 关键字

这是最基本的报错了。
一般是因为语句不正确。
例如: sql语句列少了个逗号

报错: ORA-00909: 参数个数无效

一般是使用函数的时候,参数个数不对。

RA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

找到oracle安装目录下的listener.ora 文件,如地址为:
F:\app\chushiyun\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
添加:

(SID_DESC =(GLOBAL_DBNAME = ORCL)(ORACLE_HOME = F:\app\chushiyun\product\11.2.0\dbhome_1)  (SID_NAME = ORCL)
)

重启listener即可。

docker的oracle11g listener.ora :

LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))))

ORA-02083: database name has illegal character ’ ’

在创建dblink的时候报这个错。
首先要注意别有特殊字符。
然后还是不行。
百度下说是跟GLOBAL_NAME有关。

OCI_INVALID_HANDLE

场景: 执行sql出现这个提示
关闭连接,然后重新打开,还是这样。 发现是vpn没有连接。
一般是连接不上的问题。

ORA-00028: your session has been killed

session被杀掉。
一般出现在执行某个sql操作的时候,session突然被杀掉,导致页面一直无法获取响应。
刷新下即可。

ORA-00001: unique constraint (USER.UIDX_USER_CODE_NUM) violated

这是因为插入的时候,违反唯一约束的原则。
但是为什么update的时候也会报这个错啊?
这个也是有可能的,例如除了id之外还有code,number的联合主键。 需要根据id,修改code或者number,这个时候修改的code或number有可能会和已存在的冲突。

无法将null插入 .

说明该字段是主键,或者限制了非空。
这个问题不只出现在oracle中。

ORA-02289: sequence does not existORA-02289: sequence does not exist

一看就是少了sequence。

create sequence T_USER_SEQ
minvalue 1
maxvalue 99999999999
start with 1
increment by 1
cache 20;

ORA-01830: 日期格式图片在转换整个输入字符串之前结束

使用to_char 或 to_date的时候出现这个问题。

ORA-01843:无效的月份 和 ORA-01855:要求 AM/A.M. 或 PM/P.M.

-- 原sql:
'01-SEP-20 11.37.50.000000 AM',
报错:ORA-01843:无效的月份
-- 调整后sql(这里改了月份):
'01-9月 -20 09.20.47.000000 AM',
还是报错:ORA-01855:要求 AM/A.M. 或 PM/P.M.
-- 最终sql(这里把AM改为上午):
'01-9月 -20 09.20.47.000000 上午'

注: 其实只要把数据库的格式查出来,参照着写即可。

ORA-12505:tns:监听程序当前无法识别链接描述符中锁给出的SID

1、oracle服务可能挂了。
2、oracle监听启动没。
3、sid确实写错了?

ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

创建索引语句的时候报这个错:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

可能是因为改表有数据正被锁定,查询锁表并kill掉session即可。

ORA-01034: ORACLE not available

oracle命令行,输入关闭命令的时候报这个错,例如 shutdown immediate
可能原因,oracle服务根本就没启动,输入shutdown当然报错了,直接输入startup即可。

ORA-30484: 丢失的此函数窗口说明

执行的语句为:

select category,price,ROW_NUMBER()
from t_prodt_product

报错提示信息:
ORA-30484: 丢失的此函数窗口说明

这是因为ROW_NUMBER() 是配合开窗函数使用的。
这里语法显然不对。

ORA-01747: user.table.column, table.column 或列说明无效 异常解决方法总结

一般是字段名和oracle的关键字名冲突了。
执行以下语句查看关键字有哪些,然后对比下:

select * from v$reserved_words;

方案一:修改字段名为非关键字(推荐)
方案二:关键字字段使用的时候要加双引号(比较麻烦,不推荐)

报错 ORA-00972: 标识符过长

创建触发器的时候提示: ORA-00972: 标识符过长
这是因为触发器的长度要求在30个字符以内,超过就会报这个错。
把名字改短点即可。

另外,表名长度过长也会报这个错。

ORA-01830: 日期格式图片在转换整个输入字符串之前结束

一般是日期格式不对,例如:
传入的是 ‘2021-06-15 00:00:00’,
用的函数是 create_date = to_date(#{createDate,jdbcType=VARCHAR},‘yyyy-MM-dd’),那么就会报错。

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

这2个是一类问题,说明类型不对应,一般出现在case when语句中。

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR

case when route=100
then 100
else '50' end
AS route

该字段应该为number,但是返回的确是字符串,所以会报这个错。

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR

相似,略。

ORA-01861: 文字与格式字符串不匹配

一般是类型不一致。
最常见的就是date和字符串不对应,优先查这个。
如果不是date的问题,那么再看其他的。

ORA-01810: 格式代码出现两次

说明oracle日期的格式化不正确,最常见的就是分钟mi错写为mm。

错误代码:
select to_date('2021-08-23 00:00:00','yyyy-MM-dd hh24:mm:ss')  from dual;正确代码:
select to_date('2021-08-23 00:00:00','yyyy-MM-dd hh24:mi:ss')  from dual;

异常信息:ORA-02299: cannot validate (T_USER.UNIQUE_A_B) - duplicate keys found

一般是添加唯一约束时,有重复值。 删掉表的重复数据再试下。

ORA-06512、ORA-01830

ORA-06512: at line 6; nested exception is java.sql.SQLDataException: ORA-01830: date format picture ends before converting entire input string
一般是日期格式化不对。
例如:

SELECT to_date('2022-07-20 00:00:00','yyyy-mm-dd') FROM dual;

如果是在mybatis中,可以采用兼容性写法。 即: 可以先判断下长度,如果19位就用带时分秒的。

之前的写法:

<if test="createDate != null">CREATE_DATE = to_date(#{createDate,jdbcType=VARCHAR},'yyyy-mm-dd'),
</if>

兼容性写法:

<if test="createDate != null"><choose><when test="19==createDate.length">CREATE_DATE = to_date(#{createDate,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss'),</when><otherwise>CREATE_DATE = to_date(#{createDate,jdbcType=VARCHAR},'yyyy-mm-dd'),</otherwise></choose>
</if>

oracle报错笔记,如12514相关推荐

  1. oracle pls 00905,【案例】Oracle报错PLS-00714 PLS-00951原因和解决办法笔记

    [案例]Oracle报错PLS-00714 PLS-00951原因和解决办法笔记 时间:2016-11-14 11:07   来源:Oracle研究中心   作者:代某人   点击: 次 天萃荷净 P ...

  2. oracle 被另一用户锁定,Oracle报错记录被另外一个用户锁定的解决方案

    原因 当一个用户对数据进行修改时,若没有进行提交或者回滚,Oracle不允许其他用户修改该条数据,在这种情况下修改,就会出现:"记录被另外一个用户锁定"错误. 解决 查询用户.数据 ...

  3. CentOS 6安装Oracle报错解决方案

    CentOS 6安装Oracle报错解决方案 参考文章: (1)CentOS 6安装Oracle报错解决方案 (2)https://www.cnblogs.com/lonecloud/p/689568 ...

  4. oracle 增加ora容量_案例:Oracle报错ORA-01144 详解数据文件大小32GB的限制的原因

    天萃荷净 Oracle数据文件大小的限制,运维DBA在向Oracle数据库添加一个32G的数据文件的时候报错ORA-01144,分析原因为数据库针对文件有32G限制 1.添加数据文件报错ORA-011 ...

  5. oracle01507报错,oracle报错ORA-01507

    Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结 ...

  6. oracle ogg00423,【案例】Oracle报错PLS-00378 PLS-00439产生原因和MOS官方解决办法

    [案例]Oracle报错PLS-00378 PLS-00439产生原因和MOS官方解决办法 时间:2016-11-12 21:31   来源:Oracle研究中心   作者:代某人   点击: 次 天 ...

  7. oracle ora 00283,【案例】Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库处理非归档模式,redo文件损坏常规修复无法正常open数据库. 本站文章除注明转载外,均为本站原创: 转载自love wife ...

  8. 连接oracle报错:Invalid connection string format, a valid format is: host:port:sid

    1. 背景 我使用java jdbc 连接Oracle报错如下 java.sql.SQLRecoverableException: IO 错误: Invalid connection string f ...

  9. ORACLE报错(5)ORA-01102: cannot mount database in EXCLUSIVE mode

    ORACLE报错(5)ORA-01102: cannot mount database in EXCLUSIVE mode SQL> conn /as sysdba Connected to a ...

最新文章

  1. 再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
  2. Save a tree as XML using XmlSerializer
  3. ContentPlaceHolder必须放在具有 runat=server 的窗体标记内
  4. android 触摸监听重写_Android监听屏幕的滑动事件
  5. 基于JSON Web Tokens的单点登录(SSO)或通行证(Passport)系统方案
  6. 《美团点评编程题》整数加法
  7. 柔性机械臂_CSR论文精选 | 基于视觉的双连杆柔性机械臂末端位置跟踪控制
  8. C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
  9. html vue分页,Vue.js bootstrap前端实现分页和排序
  10. Qt实现全屏下玫瑰花(含详细注释)
  11. linux mysql5.7.18多实例_mysql5.7.13二进制包安装多实例
  12. CSS隐藏内容的三种方法比较
  13. “集百度AI技术之大成的终极硬件形态”发布
  14. 上海,不算太郁闷的地方
  15. 二维数组求最小值_求一列中满足条件的最大最小值
  16. 太赞了!终于有人把怎么在IDEA中使用Java热部署插件JRebel讲清楚了...
  17. STC单片机编程软件安装教程
  18. PDF文件转换成excel文件的三种方法
  19. Halcon常用图像预处理算子总结
  20. 维多利亚计算机研究生,2020年惠灵顿维多利亚大学计算机信息硕士申请条件

热门文章

  1. thinkphp6 生成下载动态Excel模板,导出excel文件
  2. 键盘上各种符号的英文名称与发音
  3. 1.5数学基础-概率计算
  4. 月薪10k,20k,30k,40k及以上的程序员分别有何不同?
  5. 递归算法实现角谷定理
  6. win7计算机连接xp计算机,将win7计算机连接到xp共享打印机的教程
  7. DEDE建站如何去掉首页的index.html后缀?
  8. dede织梦CMS常用语法整理
  9. 如何在word中插入PDF文件
  10. 国内手机厂商:挑骡子不干了,买都不买,还能愉快地玩耍吗?