首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从nodejs和节点-firebird执行多个过程?

如何从nodejs和节点-firebird执行多个过程?
EN

Stack Overflow用户
提问于 2019-09-11 13:11:31
回答 1查看 472关注 0票数 2

我使用Firebird 2.5和节点-firebird 0.8.6。我必须运行带有多个存储过程的SQL文件,但总是会出现以下错误

错误:动态SQL错误,SQL错误代码= -104,令牌未知-第1行,第5列,(/home/somasys/Downloads/testefb/node_modules/node-firebird/lib/index.js:1234:18) at /home/somasys/Downloads/testefb/node_modules/node-firebird/lib/index.js:2929:21 at /home/somasys/Downloads/testefb/node_modules/node-firebird/lib/messages.js:151:25 at search (/home/somasys/Downloads/testefb/node_modules/node-firebird/lib/messages( /home/somasys/Downloads/testefb/node_modules/node-firebird/lib/messages.js:54:21 at FSReqCallback.wrapper as oncomplete )

这里是我的SQL文件的一些部分:

代码语言:javascript
复制
set term ^;
CREATE OR ALTER PROCEDURE PRC_CALCULATRIBUTA() 
   BEGIN 
      ...
   END^
set term ;^
commit work;

set term ^;
CREATE OR ALTER PROCEDURE PRC_CORRIGEENCERR() 
   BEGIN 
      ...
   END^
set term ;^
commit work;

我已经尝试删除这些set termcommit work,并在

代码语言:javascript
复制
EXECUTE BLOCK AS 
BEGIN
  ...
END

但即便如此,我还是得到了与上面描述的相同的错误。是否有任何指令或语句放在我的SQL脚本中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 14:49:44

Firebird的语句API只能执行单个语句。此外,SET TERM语句不是Firebird语法的一部分。它只是ISQL和其他Firebird工具中的客户端特性,用于确定语句何时完成。另见firebird procedural query throwing "token unknown" error at "SET TERM #;"

你需要:

  • 在单独的语句中拆分SQL脚本,
  • 删除SET TERM语句
  • 移除程序主体之外的任何语句终止符,以及
  • 单独执行语句。

我还建议不要执行commit work,而是使用节点-火鸟的事务控制选项。我不确定执行commit work是否能在节点-firebird中工作,但是一些驱动程序会中断,因为您只是在没有使用它们的事务API的情况下关闭了它们上的事务。

换句话说,您需要执行:

代码语言:javascript
复制
CREATE OR ALTER PROCEDURE PRC_CALCULATRIBUTA() 
   BEGIN 
      ...
   END

可以选择使用节点-firebird API执行提交或显式提交,然后

代码语言:javascript
复制
CREATE OR ALTER PROCEDURE PRC_CORRIGEENCERR() 
   BEGIN 
      ...
   END

等。

您不能为此使用execute block,因为execute block不支持DDL的执行。这个限制有一些解决办法(使用execute statement),但它通常不是execute block的好使用。

顺便说一句,在创建存储过程之间提交是不必要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57890006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档