首页 文章

从Instant Client通过CMD提示连接到Oracle Server时出错,但SQL Developer连接?

提问于
浏览
1

我正在使用客户端提供的笔记本电脑(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 回答

  • 1

    使用此格式时:

    sqlplus xaal5@HOST:1521/SID
    

    ...你正在使用'easy connect' syntax,绕过 tnsnames.ora 并连接到服务名称 SID - 我假设你实际上正在使用你的TNS文件中的SID, /sblcusdv . SID和服务名称并不总是相同,错误表明它们在此环境中不同 .

    要使用 tnsnames.ora 条目,请使用以下语法:

    sqlplus xaal5@PLMS
    

    也就是说,使用您定义的TNS别名 . 如果您不想使用该文件,则需要知道服务名称 . 从服务器,您可以使用 lsnrctl services 查看已注册的服务名称,但您可能无权访问 . 如果您具有权限,则可以从SQL * Plus执行 show parameters service_names (通过TNS连接时),或者您可以查询性能视图以获取该信息 . 但您的帐户可能无法访问该信息 . 在这种情况下,您也假设SQL Developer通过SID连接,但它可能正在使用服务名称,因此您可以复制它) .

    sqlplus xaal5@//HOST:1521/SERVICE_NAME
    

    但是,您不能使用来自imstant客户端的SQL * Loader,因此您仍需要等待安装完整的客户端 . 您可能希望将external tables视为SQL * Loader的替代方法;然后你可以坚持使用即时客户端(或者确实是SQL Developer) . 但是您需要能够将数据文件放入服务器上数据库识别的目录中,这可能会产生问题 .

  • 0

    您必须按照说明使用说明 .

    sqlplus Username/Password@description
    

    在你的情况下:

    sqlplus Username/Password@PLMS
    

    这应该足够了,不需要提到主机名或端口 .

    如果它不起作用,请检查您的系统变量PATH是否在第一个位置包含oracle安装文件夹 . 当您在同一台计算机上安装Oracle DB和Oracle Client时,查看两个TNSNAMES是否都有您要查找的连接 .

相关问题