【问题标题】:Sqlplus oracle : How can I run sql command on bash in 1 line?Sqlplus oracle:如何在 1 行中在 bash 上运行 sql 命令?
【发布时间】:2012-06-28 03:49:39
【问题描述】:

我可以在 sqlplus 中将其转换为 bash 上的 1 个命令行吗?因为我想自动化它。

sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit

【问题讨论】:

    标签: oracle sqlplus


    【解决方案1】:

    您不需要自动退出,因为无论如何它都应该在文件末尾退出。因此,您可以在一行中这样做:

    echo 'EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);' | sqlplus / as sysdba
    

    【讨论】:

    • 谢谢。这将是最好的答案,因为我根本不想创建额外的 .sh 或 .sql
    • 我用选择查询尝试这个命令,但什么也没发生。它只是登录然后断开连接。我该怎么办?
    • 听起来您缺少 ;/ (单独一行)来实际运行命令。只是猜测,您需要提供更多详细信息才能获得更好的答案
    【解决方案2】:
    sqlplus user/password@host @file.sql
    

    【讨论】:

      【解决方案3】:

      你可以在 shell 中通过 follow 来写

      #!/bin/bash
      sqlplus / as sysdba <<EOF
      EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
      exit
      EOF
      

      或者你可以把这个command放到一个过程中

      【讨论】:

        【解决方案4】:

        sqlplus /nolog @your_script.sql

        【讨论】:

        • 那行不通,因为 /nolog 会阻止 SQL*Plus 登录到数据库。
        • 当然不会 - 如果不将connect 命令放入脚本中。
        猜你喜欢
        • 1970-01-01
        • 2013-11-30
        • 1970-01-01
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 2015-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多