我需要在Firebird 2.5中运行一个涉及变量的大脚本。
是否可以在不使用EXECUTE BLOCK的情况下执行此操作?
在.NET中,使用FbBatchExecution失败并显示“从连接读取数据时出错”。
在我的SQL Manager客户端中,它失败,“查询文本的大小超过64k限制。客户端库管理将无法继续”。
所以看来EXECUTE BLOCK也受到64kb限制的约束,这对于任何大的都没用。
除了使用临时表之外,有没有办法在大型(甚至非常大)的脚本中声明和使用变量?
答案 0 :(得分:0)
通过利用(全局)变量并迭代执行sql命令,可以在没有EXECUTE BLOCK
的情况下执行此操作。
在Firebird中,您可以使用rdb$set_context('USER_SESSION','VAR_NAME', VALUE)
和rdb$get_context(...)
声明和使用临时会话全局变量(或者事务全局变量)。
但是有一些限制,more details here。