1.安装好oracle10客户端,配置好网络服务名称,用enterprsie manager console 连接服务器,一切正常,连接成功
接着安装plsql developer,安装完成后,运行plsql, 输入用户名和密码,数据库名称输入刚才配置的服务名称,点击登录,出现ora-12154错误。 随即上网搜索,查找资料。按照网上说的试了试,虽然没成功,大概知道了问题出在哪。
因为用manager console 能登录,plsql不能登录,说明网络服务名配置的没有问题,问题可能出在plsql不能找到网络服务名的配置文件,即找不到C:oracleproduct10.2.0client_1NETWORKADMIN nsnames.ora。看了看系统环境变量,发现ORACLE_HOME的值为空,试着设置为ORACLE_HOME=c:oracleproduct10.2.0client_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:oracleoradatain;E:oraclein;E:Program FilesJavajdk1.5.0_04in;E:Tomcat5028in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem
问题出现了.随后我该成如下:
path == E:oracle;E:oracleoradatain;E:oraclein;E:Program FilesJavajdk1.5.0_04in;E:Tomcat5028in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem
TNS 无监听程序
查看appAdministratorproduct11.2.0dbhome_2NETWORKADMIN nsnames.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:appYangJinproduct11.2.0dbhome_1NETWORKADMIN
5.当启动PL/SQL连接数据库时,会提示如下错误:
[Window Title]
(Not logged on)
[Content]
Initialization error
Could not initialize "C:oracleproduct10.2.0client_1inoci.dll"
Make sure you have the 32 bits Oracle Client installed.
OracleHomeKey:
OracleHomeDir: C:oracleproduct10.2.0client_1
Found: oci.dll
Using: C:oracleproduct10.2.0client_1inoci.dll
LoadLibrary(C:oracleproduct10.2.0client_1inoci.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:Oracleinstantclient_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:oracleproduct11.2.0dbhome_1NETWORKADMIN
NLS_LANG 在客户端不能被确定字符集转变将造成不可预期的后果
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.ZHS16GBK
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK (注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8)
重新登录,OK!