PL/SQL插入数据报错:Access violation at address 00413A81 in module 'plsqldev.exe'. Read of address 00000000
前言
今天同事在使用plsql给oracl数据库插入记录时报错:Access violation at address 00413A81 in module 'plsqldev.exe'. Read of address 00000000
,百度查询大致有三种说法:
- 内存越界的问题,需要重新注册Windows的动态链接库
- oracle client版本问题需要重装plsql和oracle clinet
- 是tnsnames.ora文件格式不正确,ORACLE连接名不可使用中文字符,不可以存在空格
但是我这里最终解决方法跟上面三种均不相同,注意报错信息查看仔细。
一、报错信息
二、错误排查
插入记录保存时报错,想到上周有对plsql的时间设置做过调整,而且恰好是带有时间的记录插入报错,猜想可能是plsql时间格式造成的,所以尝试把记录中含有时间的字段内容去掉,发现去掉时间字段的记录能正常插入保存,基本确定是时间格式问题。
下图是部分表内容(图片是调整了plsql时间格式之后的图片,调整之前时间字段里面的内容全不显示)
查看plsql时间设置,如下图,果然之前将日期/时间格式设置成了自定义但是未设置具体参数,所以plsql中表的日期/时间字段不能正常显示,插入时也报错。
三、对症下药
修改plsql日期/时间格式为窗口格式,应用--确定 重启plsql连接数据库,表中日期/时间字段能正常显示,插入也能正常保存。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步