设为首页 加入收藏

TOP

Oracle常见错误
2019-09-17 18:53:14 】 浏览:27
Tags:Oracle 常见 错误

 =============================================================================================

错误: ORA-28040: No matching authentication protocol

原因:客户端版本与服务器端版本不一致导致,比如客户端是11g,而服务器端是12c

解决方案:

   最根本的解决办法是安装与服务器端版本一致的客户端

   网上也有其他的办法,如修改sqlnet.ora文件追加下列配置,但修改后并没有解决该问题

   SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
   SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
 
=============================================================================================

错误:ORA-12704: character set mismatch

原因:字符集不匹配,在使用Union all合并时,若A集合中某列为nvarchar2或nvarchar类型,

   而B集合中对应字段为varchar2,或使用了to_char(),或用''来代替时,会导致该问题

解决方案:

  方案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

  

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇kubernetes实践之三:深入理解Pod.. 下一篇java.sql.SQLSyntaxErrorExceptio..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目