您的位置:首页 > 数据库 > Oracle

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

2016-07-18 11:30 861 查看
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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: