【问题标题】:Executing sqlplus without entry in tnsnames.ora, standalone command works and script get struck在没有进入 tnsnames.ora 的情况下执行 sqlplus,独立命令有效并且脚本被击中
【发布时间】:2019-11-04 14:23:06
【问题描述】:

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

我使用sqlplus -s 选项来静音用户名和密码的提示。 我用ksh -x myscript.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

【问题讨论】:

  • 尝试不使用-S,可能会看到错误消息。
  • 您的描述中有换行符吗?试试$ORACLE_HOME/sqlplus -S username/password@"(DESCRIPTION=...)))"
  • 您是否有理由不简单地将描述放入您的tnsnames.ora 文件中?
  • 更改为“sqlplus -s”并指向正确的 $ORACLE_HOME 后问题已解决。

标签: bash oracle unix sqlplus tnsnames


【解决方案1】:

请试试这个

$ORACLE_HOME/sqlplus -S "username/password@umyhostname:1599/idb" @/usr/local/myrpt.sql

如果可能,请向您展示脚本。

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 2016-11-01
      • 2019-02-25
      • 2016-05-27
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多