-2

Node.js 版本:9.2 Oracledb 驱动程序版本:2.0.15 我编写了一个匿名 PL/Sql 过程,其中包含 200 行代码的声明、执行和异常部分。

当直接在 Oracle 服务器上运行或使用任何可以运行它的工具时,它运行得非常好。但是,从 .js 文件中运行会出现错误:

"detailed_message":"ORA-06550:第 1 行,第 3681 列:\nPL/SQL:ORA-00905:缺少关键字\nORA-06550:第 1 行,第 3467 列:\nPL/SQL:忽略 SQL 语句\nORA-06550:第 1 行,第 3736 列:\nPLS-00103:在预期以下情况之一时遇到符号 \"ELSE\":\n\n ( begin case declare end exception exit for goto if loop mod\n null pragma raise return select update而与\n

由于代码直接在服务器上运行良好,我不会怀疑过程本身有任何问题。而且我还有另一个不到 100 行代码的匿名程序似乎可以从 .js 文件中正常运行。

我想知道运行这么长的过程的数据库驱动程序是否有任何限制。(我也不想将此过程存储在数据库中)

4

1 回答 1

1

node-oracledb 中的 PL/SQL 块大小没有人为限制。

检查您的语法,例如报价处理。请注意,当前示例使用反引号

如果您将带引号的字符串连接在一起,请确保每个字符串以空格结尾或开头:

"BEGIN " +
"FORALL ... " +
...
于 2017-12-19T22:05:33.477 回答