如何在 bash 脚本中连接到 Oracle 数据库?
Posted
技术标签:
【中文标题】如何在 bash 脚本中连接到 Oracle 数据库?【英文标题】:how to connect to a oracle db in bash script? 【发布时间】:2017-05-25 19:22:28 【问题描述】:我有一个脚本需要连接到托管在不同服务器上的 oracle db。我可以使用 sqldeveloper 连接到这个 oracle db。但是我无法在我的 bash 脚本中对其进行配置。 SQLDEVELOPER 4.0 是我用来通过 gui 连接的工具。如何在我的脚本中使用它。还有其他方法吗?我需要任何其他软件(sqlplus)
【问题讨论】:
How do you execute SQL from within a bash script?的可能重复 【参考方案1】:尝试使用以下一次:
sqlplus db_user_name/password_for_user@DB_schema < Input_file.sql > Output
【讨论】:
【参考方案2】:您需要 sqlplus 来实现您想要做的事情。您需要放入 shell 脚本的命令的语法应该是这样的:
sqlplus 'USER/PASSWORD@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=DB_HOST)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SERVICE_NAME_YOU_USE_IN_SQLDEVELOPER)))'
【讨论】:
【参考方案3】:在 *nix 系统上,这将创建一个 csv 的结果流到标准输出:
java -Djava.security.egd=file///dev/urandom -jar jdbcsql.jar -d oracledb_SID -h $host -p 1521 -U some_username -m oracle -P "$PW" -f excel -s "," "$1"
请注意,添加 -Djava.security.egd=file///dev/urandom
会大大提高性能
Windows 命令类似:见http://jdbcsql.sourceforge.net/
【讨论】:
以上是关于如何在 bash 脚本中连接到 Oracle 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
Perl 无法在 cronjob 中连接到 Oracle DB