=============================================================================================sql
錯誤: ORA-28040: No matching authentication protocol數據庫
緣由:客戶端版本與服務器端版本不一致致使,好比客戶端是11g,而服務器端是12c服務器
解決方案:session
最根本的解決辦法是安裝與服務器端版本一致的客戶端函數
網上也有其餘的辦法,如修改sqlnet.ora文件追加下列配置,但修改後並無解決該問題編碼
錯誤:ORA-12704: character set mismatchspa
緣由:字符集不匹配,在使用Union all合併時,若A集合中某列爲nvarchar2或nvarchar類型,code
而B集合中對應字段爲varchar2,或使用了to_char(),或用''來代替時,會致使該問題內存
解決方案:it
方案1:都統一使用函數cast('字段' as nvarchar2(10))轉換爲nvarchar2或nvarchar類型
方案2:都統一使用函數to_char('字段')轉換爲varchar2或varchar類型
方案3:若是是用''來代替時,在''前加一個N,,N''表示將''轉換爲Unicode編碼
=============================================================================================
錯誤:ORA-32034: unsupported use of WITH clause
緣由:With子句使用錯誤,主要有如下幾點緣由:
1 with子句內還嵌套一個with,一個查詢腳本內只能有一個with,而且是在開頭的位置,其餘子查詢則不須要顯式的用with
2 對於set query, with子句不能用在分支裏
3 with被用在了圓括號裏
解決方案: 根據緣由對腳本一一進行排查
=============================================================================================
錯誤:ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
緣由:初始化參數pga_aggregate_limit是用於指定實例在運行時該實例專用內存的上限值
若是實例在運行時超過了這個上限,就會經過中斷Session的最大Program Global Area (PGA)內存讓實例專有內存達到上限值如下
解決方案:增長pga_aggregate_limit初始化參數值或減小內存使用
=============================================================================================
錯誤:ORA-00918: column ambiguously defined
緣由:select 查詢的字段在from的兩張表中都存在,致使數據庫沒法區別須要查詢的字段來自於哪張表
最終執行的select語句中若是有重複的字段,結果顯示時會在重複字段後追加_1,但若是是在嵌套臨時表有重複字段,而後select * from 嵌套臨時表,則會報該錯誤
=============================================================================================
錯誤:ORA-12537: TNS:connection closed
緣由:緣由多是processes和session值設置過小或者dispatcher使用率太高
執行以下語句查看process和session的數量是否超過預設值,若是超過則要關閉不使用的會話
select count(1) from v$session
select count(1) from v$process