我正在使用客户端提供的笔记本电脑(Windows XP专业版2002),并且没有管理权限(因此也不能使用任何必需的环境变量):
提供了SQL Developer,我可以从SQL开发人员访问oracle服务器xaal5 @:1521 /,
我需要使用SQL LOADER来执行一些繁重的加载 . 我决定下载即时客户端,看看我是否可以节省一些时间,而我的oracle客户端安装请求需要很长时间才能通过审批 .
我转到了链接:http://www.oracle.com/technetwork/topics/winsoft-085727.html for Windows并下载了以下针对Microsoft Windows的Instant Client下载(32位)
版本10.2.0.4
Instant Client Package - 基本:运行OCI,OCCI和JDBC-OCI应用程序所需的所有文件Download instantclient-basic-win32-10.2.0.4.zip(34,742,358 bytes)
- Instant Client Package - SQL * Plus:使用Instant Client运行SQL * Plus的附加库和可执行文件下载instantclient-sqlplus-win32-10.2.0.4.zip(725,418 bytes)
将这两个zip文件提取到C:\ instantclient-win32文件夹中,得到以下文件(是的,其中没有SQL LOADER,但我决定首先设置oracle客户端,然后查找SQL LDR)
sqlplus.exe oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10.dll Orasqlplusic10.dll classes12.jar ojdbc14.jar glogin.sql
我跑了以下Windows机器的CMD提示:
sqlplus xaal5 @:1521 / SID
并得到以下错误:
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
我创建了一个tnsnames.ora文件,其中包含以下条目:
PLMS = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521))
(CONNECT_DATA =
(SID = sblcusdv)
))
并设置一个USER VARIABLES指向tnsnames.ora文件的路径(在环境变量窗口中),因为我无法创建系统变量 . $ TNS_ADMIN = C:\ instantclient-win32的
我再次出现以下CMD提示:
sqlplus xaal5 @:1521 / SID
并再次出现以下错误:
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
我究竟做错了什么 !!还是有另一种方法让SQL加载器在我的系统上工作,考虑到约束(长时间等待oracle客户端安装的批准) .
2 回答
使用此格式时:
...你正在使用'easy connect' syntax,绕过
tnsnames.ora
并连接到服务名称SID
- 我假设你实际上正在使用你的TNS文件中的SID,/sblcusdv
. SID和服务名称并不总是相同,错误表明它们在此环境中不同 .要使用
tnsnames.ora
条目,请使用以下语法:也就是说,使用您定义的TNS别名 . 如果您不想使用该文件,则需要知道服务名称 . 从服务器,您可以使用
lsnrctl services
查看已注册的服务名称,但您可能无权访问 . 如果您具有权限,则可以从SQL * Plus执行show parameters service_names
(通过TNS连接时),或者您可以查询性能视图以获取该信息 . 但您的帐户可能无法访问该信息 . 在这种情况下,您也假设SQL Developer通过SID连接,但它可能正在使用服务名称,因此您可以复制它) .但是,您不能使用来自imstant客户端的SQL * Loader,因此您仍需要等待安装完整的客户端 . 您可能希望将external tables视为SQL * Loader的替代方法;然后你可以坚持使用即时客户端(或者确实是SQL Developer) . 但是您需要能够将数据文件放入服务器上数据库识别的目录中,这可能会产生问题 .
您必须按照说明使用说明 .
在你的情况下:
这应该足够了,不需要提到主机名或端口 .
如果它不起作用,请检查您的系统变量PATH是否在第一个位置包含oracle安装文件夹 . 当您在同一台计算机上安装Oracle DB和Oracle Client时,查看两个TNSNAMES是否都有您要查找的连接 .