我使用的是客户端提供的笔记本电脑(Windows XP专业版2002)并且没有管理权限(因此也不能使用任何必需的环境变量):
提供了SQL Developer,我可以从SQL开发人员访问oracle服务器xaal5 @:1521 /,
我需要使用SQL LOADER来执行一些繁重的加载。我决定下载即时客户端,看看我是否可以节省一些时间,而我的oracle客户端安装请求需要很长时间才能通过审批。
我转到了链接:http://www.oracle.com/technetwork/topics/winsoft-085727.html 对于Windows并下载了以下适用于Microsoft Windows(32位)的Instant Client下载
版本10.2.0.4
Instant Client Package - Basic:运行OCI,OCCI和JDBC-OCI应用程序所需的所有文件 下载instantclient-basic-win32-10.2.0.4.zip(34,742,358字节)
* Instant Client Package - SQL * Plus:使用Instant Client运行SQL * Plus的附加库和可执行文件 下载instantclient-sqlplus-win32-10.2.0.4.zip(725,418字节)
将这两个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文件的路径(在Environment variables窗口中),因为我无法创建系统变量。 $ 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客户端安装的批准)。
答案 0 :(得分:1)
使用此格式时:
sqlplus xaal5@HOST:1521/SID
...您正在使用'easy connect' syntax,绕过tnsnames.ora
并连接到服务名称 SID
- 我认为您&#39 ;实际使用您的TNS文件/sblcusdv
中的SID。 SID和服务名称并不总是相同,错误表明它们在此环境中不同。
要使用tnsnames.ora
条目,请使用以下语法:
sqlplus xaal5@PLMS
也就是说,使用您定义的TNS别名。如果您不想使用该文件,则需要知道服务名称。从服务器,您可以使用lsnrctl services
查看已注册的服务名称,但您可能无权访问。如果您有权限,可以从SQL * Plus执行show parameters service_names
(通过TNS连接时),或者您可以查询性能视图以获取该信息。但您的帐户可能无法访问该信息。在这种情况下,您需要询问您的DBA。 (我也假设SQL Developer是通过SID连接的,但它可能正在使用服务名称,所以你可以复制它。)
sqlplus xaal5@//HOST:1521/SERVICE_NAME
您不能使用来自imstant客户端的SQL * Loader,因此您仍需要等待安装完整的客户端。您可能希望将external tables视为SQL * Loader的替代方法;然后你可以坚持使用即时客户端(或者确实是SQL Developer)。但是您需要能够将数据文件放入服务器上数据库识别的目录中,这可能会产生问题。
答案 1 :(得分:0)
您必须按照说明使用说明。
sqlplus Username/Password@description
在你的情况下:
sqlplus Username/Password@PLMS
这应该足够了,不需要提及主机名或端口。
如果它不起作用,请检查您的系统变量PATH是否在第一个位置包含oracle安装文件夹。当您在同一台计算机上安装Oracle DB和Oracle Client时,查看两个TNSNAMES是否都有您要查找的连接。