Bash 不在tnsnames.ora中输入就执行sqlplus,独立命令起作用,脚本被删除

Bash 不在tnsnames.ora中输入就执行sqlplus,独立命令起作用,脚本被删除,bash,oracle,unix,sqlplus,tnsnames,Bash,Oracle,Unix,Sqlplus,Tnsnames,我正在运行unix脚本,该脚本执行SQL命令以获取报告,因为我在tnsnames.ora中没有条目,所以我在sqlplus命令和sqlfile中给出了门户的完整描述。当我试图运行脚本时,控件被击中 我使用sqlplus-s选项使用户名和密码提示静音。 我使用ksh-xmyscript.ksh运行脚本,当脚本被执行时,我复制了sqlplus行并独立运行,它工作正常 $ORACLE_HOME/sqlplus -S 'username/password@(DESCRIPTION=(ADDRESS_LI

我正在运行unix脚本,该脚本执行SQL命令以获取报告,因为我在
tnsnames.ora
中没有条目,所以我在
sqlplus
命令和
sqlfile
中给出了门户的完整描述。当我试图运行脚本时,控件被击中

我使用
sqlplus-s
选项使用户名和密码提示静音。 我使用
ksh-xmyscript.ksh运行脚本,当脚本被执行时,我复制了sqlplus行并独立运行,它工作正常

$ORACLE_HOME/sqlplus -S 'username/password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS= 
(COMMUNITY=tcp.world)(PROTOCOL=TCP)(Host=umyhostname)(Port=1599))) 
(CONNECT_DATA=(SID=idb)))' @/usr/local/myrpt.sql
请试试这个

$ORACLE\u HOME/sqlplus-S“用户名/password@umyhostname:1599/idb“@/usr/local/myrpt.sql
如果可能,请显示脚本。

请尝试此操作

oracle@esmd:/opt/oracle> more test3.ksh
#!/usr/bin/ksh

username=SCOTT
#password lowercase
password=\"tiger\"

TNS_ALIAS='(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = zzzz.yyy.xxx)(PORT = 1521))
        (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = ESMD)
    )
)'

echo username:  $username
echo password:  $password
echo TNS_ALIAS: $TNS_ALIAS

sqlplus -s $username/$password@"$TNS_ALIAS" @test.sql



oracle@esmd:~> ksh
oracle@esmd:/opt/oracle> ./test3.ksh
username: SCOTT
password: "tiger"
TNS_ALIAS: (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = zzzz.xxx.yyy)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ESMD) ) )

TO_CHAR(SYSDATE,'DD
-------------------
24-06-2019 09:51:27
$ORACLE\u HOME/sqlplus-S“用户名/password@umyhostname:1599/idb“@/usr/local/myrpt.sql

如果可能,请显示脚本。

尝试不使用
-S
,可能会看到错误消息。说明中是否有新行?试试
$ORACLE\u HOME/sqlplus-S username/password@“(DESCRIPTION=…)”
有没有理由不简单地将说明放入
tnsnames.ora
文件中?问题在更改为“sqlplus-S”并指向正确的$ORACLE\u HOME后得到解决。请不要使用
-S
进行尝试,也许这时您会看到一条错误消息。您的描述中有新行吗?请尝试
$ORACLE\u HOME/sqlplus-S username/password@“(DESCRIPTION=…)”
是否有理由不简单地将说明放入
tnsnames.ora
文件中?更改为“sqlplus-S”并指向正确的$ORACLE\u HOME后,问题得到解决。
oracle@esmd:/opt/oracle> more test3.ksh
#!/usr/bin/ksh

username=SCOTT
#password lowercase
password=\"tiger\"

TNS_ALIAS='(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = zzzz.yyy.xxx)(PORT = 1521))
        (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = ESMD)
    )
)'

echo username:  $username
echo password:  $password
echo TNS_ALIAS: $TNS_ALIAS

sqlplus -s $username/$password@"$TNS_ALIAS" @test.sql



oracle@esmd:~> ksh
oracle@esmd:/opt/oracle> ./test3.ksh
username: SCOTT
password: "tiger"
TNS_ALIAS: (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = zzzz.xxx.yyy)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ESMD) ) )

TO_CHAR(SYSDATE,'DD
-------------------
24-06-2019 09:51:27