在oracle中,可以利用「alter system set "_optimizer_connect_by_cost_based" = false scope=both;」語句來解決無法從套接字讀取更多的資料的異常,該語句將「_optimizer_connect_by_costbase_d」的值設定為both,修改後目前起作用,下次重啟資料庫也起作用。
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
問題現象:
日誌中出現如下報錯誤:
遇到這個問題,可以查看oracle日誌,分析問題的原因。
oracle資料庫最常用的問題定位日誌是alert日誌,oracle資料庫的日誌檔案alert_$ORACLE_SID.log記錄了重作日誌的轉換,資料庫啟動和關閉,資料庫結構的改變,回退段的修改,死鎖,內部錯誤等資訊。
路徑是:ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log
新的Oracle資料庫的日誌檔案在ORACLE_BASE/diag/rdbms 下方,如:D:appAdministratordiag dbms#racecl
#也可以透過sql語句來找出位置:Alert log XML檔案位置:select value from v$diag_info where name ='Diag Alert';#Alert log文字檔位置: select value from v$diag_info where name ='Diag Trace';解決方法:##alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
_optimizer_connect_by_cost_based 為使用基於成本的轉換進行連接,預設為true scope 就是這個參數修改的SQL的影響的範圍,總共有三個值:both、memory,spfile。
1.scope=memory修改後目前就起作用,重啟資料庫不起作用
2.scope=spfile修改後目前不起作用,下次重啟資料庫才起作用
3.scope=both修改後目前起作用,下次重啟資料庫也起作用
推薦教學:《
Oracle影片教學以上是oracle無法從套接字讀取更多的資料怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!