ORA-04036怎么解决oracle12c?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-04036怎么解决oracle12c?相关的知识,希望对你有一定的参考价值。
项目实施中遇到这个问题,怎么解决,烦请高手指点
PLSQL不可以直接连接64位Oracle数据库,只能连接32位的。想要连接64位Oracle数据库,需要借助32位的Oracle客户端,解决方法:
1、PLSQL Developer无法连接64位Oracle数据库,PLSQL数据库选项为空,如下图所示:
2、到Oracle官网上下载32位Oracle客户端,如下图所示:
3、一定要下载32位的Instant Client,点进去之后找到适合自己数据库版本的文件下载,我装的是Oracle12.2.0.1.0,如下图所示:
4、解压Instant Client。下载完成后解压到某个目录下,如下图所示:
5、复制oracle12c的tnsnames.ora文件到Instant Client相关目录。在instantclient_12_2文件夹下新建两层文件夹\NETWORK\\ADMIN,将Oracle根目录\product\\12.2.0\\dbhome_1\\network\\admin\\tnsnames.ora复制过来,如下图所示:
6、打开PLSQL,点击取消不进行登录,选择“工具”菜单下“首选项”,Oracle主目录名:D:\\instantclient_12_2。OCI库:D:\\instantclient_12_2\\oci.dll,如下图所示:
7、测试,如下图所示:
参考技术A PGA设置太小了> show parameter pga
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
pga_aggregate_limit big integer 1000M
SQL>alter system set pga_aggregate_limit=3000M scope=both;
ora-64203 怎么解决
参考技术A ORA-64203错误, 可以通过分块再拼接的方式来解决。可参考如下:
使用to_char(wm_concat(item))的时候报ORA-64203错误
出错原因:由于concat的item项目太多,导致合成后的字符串长度超出数据库char字段的缓冲区限制
通过DBMS_LOB.SUBSTR把wm_concat(item)分成10块,取到后再拼接起来
Sql代码
DBMS_LOB.SUBSTR(wm_concat(item),1000,1),
DBMS_LOB.SUBSTR(wm_concat(item),1000,1001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,2001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,3001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,4001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,5001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,6001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,7001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,8001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,9001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,10001)
或者直接在oracle中用||连接起来,直接返回
Sql代码
DBMS_LOB.SUBSTR(wm_concat(item),1000,1) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,1001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,2001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,3001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,4001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,5001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,6001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,7001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,8001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,9001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,10001) 参考技术B ORA-64203: 目标缓冲区太小, 无法容纳字符集转换之后的 CLOB 数据。
字符串长度超出数据库栏位缓冲区限制, 修改缓冲区,或者调整栏位长度。
以上是关于ORA-04036怎么解决oracle12c?的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE 12C 插入数据遇到 Error getting generated key or setting result to parameter object错误
安装oracle12c时出现无法检测指定的位置是不是位于cfs上,怎么解决
12C -- ORA-01033: ORACLE initialization or shutdown in progress
12C -- ORA-01033: ORACLE initialization or shutdown in progress