问题标签 [sqlcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

python - 使用气流中的 popen 调用 sqlcl 时挂起

我们在启动subprocess.Popen气流操作员时遇到问题。我们使用以下代码启动 sqlcl:

上面的代码片段在从 ipython 运行时有效,但在从气流中运行时挂起且没有输出。有什么建议么?

0 投票
0 回答
984 浏览

database - sqlcl-20.4.2.35 Error Message = no ocijdbc21 in java.library.path , when trying to connect as SYSDBA

i try to connect as SYSDBA to private oracle 11g which running remotely in docker
when i connect with a simple user everything working the problem is only with SYSDBA but i keep getting :

i doanloded the [instantclient-basic-windows.x64-19.10.0.0.0dbru][1]

i try from windows 10 to linux [1]: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

0 投票
0 回答
586 浏览

oracle - 从 sqlcl 运行 liquibase 更新时找不到 SQL 文件

问题很简单:liquibase 找不到我的变更集 sqlfile 来针对我的数据库运行它。

路径如下:

  • SqlCl:C:\Oracle\sqlcl
  • 用户环境变量中没有定义 CLASSPATH
  • 主要变更日志文件:C:\repos\odb\db-scripts\main.yaml
  • 变更集 sqlfile:C:\repos\odb\db-scripts\test.sql

main.yaml 包含:

test.sql 包含:

当我通过 sqlcl 运行 liquibase 更新时得到什么:

不知何故,它选择了C:\repos\odb\db-scripts\路径,但只是想象中的罐子不会在那里持续存在。顺便说一下C:\jdbc\lib\,我的机器C:\jlib\C:\rdbms\jlib\xdb6.jar甚至都不存在路径。

添加relativeToChangelogFile: truemain.yaml没有帮助。

我应该如何告诉从当前目录中sqlcl获取test.sql文件或至少提供完整路径?

编辑:

我决定自己运行它liquibase。我下载了 liquibase 安装 zip 存档并liquibase.bat从中取出并将其放入sqlcl安装路径。然后我将此路径添加到我的PATH变量中,以便我可以从命令行调用它。

我还在C:\repos\odb\db-scripts\文件liquibase.properties中创建了以下内容:

请注意,和C:\repos\odb\db-scripts\的目录相同。之后我运行了 liquibase:test.sqlmain.yaml

请参阅:没有错误。之后,我决定将不存在的路径设置为 sql 文件并猜测我得到了什么:

请注意,liquibase 在查找列表中添加了当前目录。这就是它设法找到我的test.sql文件的原因。看起来sqlcl是一个未能使用 SQL 文件的当前路径的人。

0 投票
1 回答
50 浏览

sql - 我怎样才能最简单地在 Windows 中自动执行 Oracle 查询?

我需要每天运行相同的该死的 Oracle 查询(并导出输出,我可以从 sql 文件本身执行此操作)。我想使用 Windows 任务计划程序实现自动化,但它只打开脚本,而不运行它。

这是可行的还是有更简单的方法?

0 投票
0 回答
153 浏览

jenkins - 使用 SQLcl 在 Jenkins 中运行 sql 脚本

我是 Jenkins 的新手,我想在开始工作之前使用 Oracle SQLcl 运行 sql 查询。
早些时候我计划使用 SQLPlus Script Runner,但它需要额外的软件(Oracle SQL*Plus),我无法在机器上安装它。
Oracle SQLcl 不再需要任何东西,所以我认为它可以成为解决方案。
是否可以在“执行 Windows 批处理命令”文本框中使用 SQLcl 运行 sql 查询?(或执行命令以从文件中运行 sql 脚本)
或者我可以通过使用“执行 shell”来做到这一点?

到目前为止,我做到了:
在“执行 Windows 批处理”文本框中,我输入了:

test.sql 包含简单的简单 sql 查询。
运行我的 Jenkins 工作后,我看到:

0 投票
1 回答
77 浏览

oracle - 如何将 SQLcl 提示配置为 2 行?

很长一段时间以来,我已经将我的 login.sql 文件配置为将 SQLPLUS 中的提示设置为两行,因此它看起来像这样:

login.sql 中完成此操作的代码如下(chr(10) 是创建第二行的内容):

但是,这对 SQLcl 不起作用,并且相同的代码导致 SQLcl 提示符全部出现一行,就像这样

我尝试将 chr(10) 替换为 chr(13)、chr(13)||chr(10) 和 u'\000A',但无论如何 SQLcl 提示都会显示在一行上。我已经确认 SQLcl 实际上是通过对提示进行其他更改(例如用 SQL1 替换 SQL)来读取有问题的 login.sql,并且这些更改有效。

有谁知道是否可以将 SQLcl 提示符分成 2 行?如果是这样,怎么办?

(ps,我意识到这是一个非常小的烦恼,但是虽然我喜欢在提示中包含连接信息,但让我的所有 sql 的第一行开始向右只是......呸 :)

0 投票
0 回答
188 浏览

oracle - sqlcl 无法为简单的更改日志执行 liquibase 更新

我真的停留在从Oracle-Base获取的最简单的 liquibase 迁移示例上。所以我创建了两个文件并将其放入文件夹preset中。

文件内容controller.xml

文件内容test.sql

我在此文件夹中打开 Windows Terminal Preview 并尝试执行迁移:

即使我sqlcl从同一个目录运行,我也会收到上面的错误。可以看到该目录C:\Users\%USERNAME%\Desktop\preset\不在列表中。相反,有一堆jar文件不会保留在此目录中。

我的操作系统版本是 Windows 10。这是我使用的工具版本:

任何想法将不胜感激。

编辑:

我尝试使用 Windows 10 Linux 子系统运行它并且它有效:

看起来在 Windows 环境下运行它有些东西。

0 投票
1 回答
152 浏览

oracle - 我们可以直接从命令行在 sqlcl 中运行 javascript,还是需要一个 sql 包装脚本?

我知道我可以直接从命令行运行一个 sql 文件,如下所示:

/sql -LOGON 用户/密码@tnsname ./scripts/sql_script.sql 参数1

而且我知道我可以从 sqlcl shell 中调用 javascript 程序,如下所示:

/sql>脚本脚本/js_script.js &1

问题是我是否必须使用 sql-wrapper 脚本,或者如何在没有包装器的情况下直接从命令行运行 javascript,如下所示:

/sql -LOGON 用户/密码@tnsname ./scripts/js_script.js 参数1

0 投票
1 回答
129 浏览

oracle - 使用 sqlcl 运行时使 liquibase 输出假脱机到当前假脱机文件

假设我们有以下一组脚本:

测试.sql

控制器.xml

主.sql

调用main.sql文件时,我得到以下输出:

我看到的是output.log

相反,我想查看我在屏幕上看到的整个日志输出。我可以以某种方式强制sqlcl将其写入我假脱机的文件吗?

我尝试添加-log选项,lb updatesqlcl只是创建名称末尾带有时间戳的文件,但该文件为空。

0 投票
1 回答
279 浏览

oracle - 在远程 Windows 主机上通过 SQLcl 启动 oracle .sql 脚本

在 Oracle 数据库服务器上,我已经能够安排一个夜间作业,该作业运行从具有以下行的 powershell 脚本启动的 oracle 脚本:

现在我需要在另一台 Windows 机器上实现相同的功能,其中 Oracle 唯一的东西是 SQLcl 客户端。我可以调用initial_script.sqlSQL 脚本,但到目前为止只能通过三个步骤以交互方式调用:

我需要的是从 powershell 启动 oracle initial_script.sql 脚本。我有两个障碍。

  1. 要连接到远程数据库,我必须先通过PS> sql /nologpowershell命令提示符下的命令获取SQLcl的SQL>提示符,然后SQL> connect id_maint/password@111.22.33.44:1521/sid在SQL>提示符下运行该命令。
  2. SQL> connect id_maint/password@111.22.33.44:1521/sid工作正常。但是我需要同时调用oracle脚本initial_script.sql。然而,

引发错误。

所以我正在寻求完成三件事(获取 SQL> 提示符 -> 连接到远程数据库 -> 调用 oracle 脚本),所有这些都由 PS> 提示符处的电源脚本启动。

如果有人可以帮助我,非常感谢。