【问题标题】:How to create sh script which will run SQL file on CentOS without sqlplus lib如何创建将在没有 sqlplus lib 的 CentOS 上运行 SQL 文件的 sh 脚本
【发布时间】:2020-05-28 11:33:15
【问题描述】:

我需要创建一个 sh 脚本,它将连接到 Oracle DB,然后执行一个 SQL 文件。 问题是 sqlplus 没有安装在该 Cent-OS 机器上,很可能也不会安装。 有没有办法做到这一点?

【问题讨论】:

  • 操作系统本身没有任何东西会知道如何连接到 oracle 和处理 sql 语句。您必须安装一个 oracle 客户端,包括 sqlplus。为什么说不会安装呢?
  • @EdStevens,假设这台机器不再由我们管理。但是问问那里是否安装了oracle客户端是值得的。
  • 虽然我猜设置问题可能不适合您,但一种通用方法是在数据库上安装 Oracle 的 REST 服务“ORDS”,然后通过 REST 调用执行每个语句。除此之外,正如其他人所提到的,您必须安装某种客户端堆栈。 Instant Client 可能是最小的,但如果您安装了 Java,您可以使用 JDBC。

标签: sql bash oracle sh centos7


【解决方案1】:

您可以轻松安装 Oracle Instant Client,包括 sqlplus 可执行文件(“免费下载、部署和分发”)。

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

【讨论】:

    【解决方案2】:

    如果在服务器上安装了一些java版本,您可以创建一个简单的类,该类将通过JDBC连接到oracle DB,加载sql脚本并执行。

    1. 创建和编译java类
    2. 上传class文件,sql脚本+oracle_driver(jar文件)(https://www.oracle.com/database/technologies/jdbcdriver-ucp-downloads.html
    3. 执行java程序

    【讨论】:

      【解决方案3】:

      你不能。您需要安装包含 sqlplus 或 sqlloader 的 oracle 客户端。 或者你可以使用 Python 和库 Cx_Oracle,但你仍然需要 sqlclient 来连接数据库。 如果不想安装oracle客户端,可以使用外部表加载数据到数据库或者其他一些etl工具。

      【讨论】:

        猜你喜欢
        • 2020-08-31
        • 2020-04-16
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 2018-08-10
        • 2013-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多