Sqlplus oracle:如何在 1 行中在 bash 上运行 sql 命令?
Posted
技术标签:
【中文标题】Sqlplus oracle:如何在 1 行中在 bash 上运行 sql 命令?【英文标题】:Sqlplus oracle : How can I run sql command on bash in 1 line? 【发布时间】:2012-06-28 03:49:39 【问题描述】:我可以在 sqlplus 中将其转换为 bash 上的 1 个命令行吗?因为我想自动化它。
sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
【问题讨论】:
【参考方案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
命令放入脚本中。以上是关于Sqlplus oracle:如何在 1 行中在 bash 上运行 sql 命令?的主要内容,如果未能解决你的问题,请参考以下文章