前言
今天同事在使用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連接數據庫,表中日期/時間字段能正常顯示,插入也能正常保存。