【发布时间】:2017-05-25 19:22:28
【问题描述】:
我有一个脚本需要连接到托管在不同服务器上的 oracle db。我可以使用 sqldeveloper 连接到这个 oracle db。但是我无法在我的 bash 脚本中对其进行配置。 SQLDEVELOPER 4.0 是我用来通过 gui 连接的工具。如何在我的脚本中使用它。还有其他方法吗?我需要任何其他软件(sqlplus)
【问题讨论】:
我有一个脚本需要连接到托管在不同服务器上的 oracle db。我可以使用 sqldeveloper 连接到这个 oracle db。但是我无法在我的 bash 脚本中对其进行配置。 SQLDEVELOPER 4.0 是我用来通过 gui 连接的工具。如何在我的脚本中使用它。还有其他方法吗?我需要任何其他软件(sqlplus)
【问题讨论】:
尝试使用以下一次:
sqlplus db_user_name/password_for_user@DB_schema < Input_file.sql > Output
【讨论】:
您需要 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)))'
【讨论】:
在 *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/
【讨论】: