【转-整理】win764bit plsql 登录oracle11g ora-12154 问题汇总

1.安装好oracle10客户端,配置好网络服务名称,用enterprsie manager console 连接服务器,一切正常,连接成功

接着安装plsql developer,安装完成后,运行plsql, 输入用户名和密码,数据库名称输入刚才配置的服务名称,点击登录,出现ora-12154错误。 随即上网搜索,查找资料。按照网上说的试了试,虽然没成功,大概知道了问题出在哪。

因为用manager console 能登录,plsql不能登录,说明网络服务名配置的没有问题,问题可能出在plsql不能找到网络服务名的配置文件,即找不到C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora。看了看系统环境变量,发现ORACLE_HOME的值为空,试着设置为ORACLE_HOME=c:\oracle\product\10.2.0\client_1。重新登录plsql,登录上去了。

没想到是ORACLE_HOME惹得祸!

总结:

碰到ora-12154错误,首先确认自己输入的服务名是不是正确,服务名不区分大小写。 然后,看看系统的环境变量中

ORACLE_HOME的值是不是正确,ORACLE_HOME的值要设置到client目录。
2.Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified

打开后我发现我当前的环境变量这样设置的:

path == E:\oraclient_2;E:\oracle\oradata\bin;E:\oracle\bin;E:\Program Files\Java\jdk1.5.0_04\bin;E:\Tomcat5028\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

问题出现了.随后我该成如下:

path == E:\oracle;E:\oracle\oradata\bin;E:\oracle\bin;E:\Program Files\Java\jdk1.5.0_04\bin;E:\Tomcat5028\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

TNS 无监听程序

查看app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN\tnsnames.ora

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = summerg)(PORT = 1522))

(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)

)

)

oracle11g 用exp命令不能导出空表

11G中有个新特性,当表无数据时,不分配segment,以节省空间

  解决方法:

  1、插入一条数据,提交,然后删除再次提交 (可以在plsql中,edit data ,插入一条数据,然后删除 delete from cms_user,最后plsql实现提交)。插入数据,再删除,则产生segment。导出时则可导出空表。

北化工项目实施过程中就出现这问题,用方法一解决了。

  2、设置deferred_segment_creation 参数

  该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

  需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

在PLSQL中执行命令就下面第一句查看deferred_segment_creation属性是否为true,如果为true则继续执行后面一句,即可。

show parameter deferred_segment_creation;

alter system set deferred_segment_creation = false;

3.ora-12154,链接没有设置好,在【开始 所有程序 Oracle - OraClient10g 配置和移植工具】里边,选Net Configuration Assistant,重新设置连接。

4.在win7 64-bit下安装oracle11g在解决
Initialhation orrlr SQK*NET properly installed
Oracle Homekey:
Oracle HomeDir:
问题后,随后又出现了问题:

ORA-12154: TNS:could not resolve the connect identifier specified
解决:添加环境变量解决:TNS_ADMIN ->> D:\app\YangJin\product\11.2.0\dbhome_1\NETWORK\ADMIN

5.当启动PL/SQL连接数据库时,会提示如下错误:

[Window Title]

(Not logged on)

[Content]

Initialization error

Could not initialize "C:\oracle\product\10.2.0\client_1\bin\oci.dll"

Make sure you have the 32 bits Oracle Client installed.

OracleHomeKey:

OracleHomeDir: C:\oracle\product\10.2.0\client_1

Found: oci.dll

Using: C:\oracle\product\10.2.0\client_1\bin\oci.dll

LoadLibrary(C:\oracle\product\10.2.0\client_1\bin\oci.dll) returned 0

错误产生的原因是PL/SQL可能不支持64位的oci.dll文件,因为安装的oracle客户端软件也是64位的。

解决方法:下载oracle提供的instant client,下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=ocomen

虽然是64位操作系统,但是可以下载32为即时客户端,下载完成后解压即可。

例如文件解压到D:\Oracle\instantclient_11_2

则启动PL/SQL→Tools→Preferences→Oracle→Connection,设置Oracle Home和OCI Library

 

之后保存,重新启动PL/SQL,连接数据库,问题解决!

登录报错:

不能登录为 uop_crm2
ORA-12154: TNS:could not resolve the connect identifier specified
变量名:TNS_ADMIN
变量值:Oracle安装目录中的 ....../product/11.2.0/dbhome_1/NETWORK/ADMIN
TNS_ADMIN=c:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

NLS_LANG 在客户端不能被确定字符集转变将造成不可预期的后果
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.ZHS16GBK
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK (注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8)

重新登录,OK!

 

posted @ 2016-07-18 11:30  No.uno  阅读(417)  评论(0编辑  收藏  举报