电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何在“当前账套”类型的连接器中执行SQL从存储过程获得查询结果

来源:金蝶云社区作者:金蝶2024-09-235

如何在“当前账套”类型的连接器中执行SQL从存储过程获得查询结果

作者:禹老师

1 背景

在某客户项目中,开发人员在苍穹的数据库中设计了一个存储过程 fuc_cas_voucherinf 获取查询结果,并希望通过SELECT语句对查询结果进行过滤。在SQL查询分析器执行,验证该SQL是数据库上是可以执行的,如下图:


在服务流程的脚本中,该开发输入如下SQL语句,通过execute_call函数调用。执行失败,错误原因如下图所示。





2 原因分析

因为当前账套不支持调用存储过程。考虑到苍穹适配多种数据库,为防止数据库私有技术导致数据库迁移的复杂性,苍穹平台原则上禁止使用数据库的函数、存储过程、触发器。但在项目上,使用数据库的私有技术在特定情况下可以简化业务实现,仍然具有一定的必要性。比如:此文档所示使用存储过程返回查询结果。

 

为避开平台的限制,对于返回临时表的存储过程,可以当成普通的SELECT语句执行,但要注意数据库分库标识必须附加在存储过程名后面,且分库标识后必须加上空格与括号分隔,类似下面的写法。并使用 query_list 函数执行查询。

SELECT * FROM fuc_cas_voucherinf@fi  () WHERE fnumber='xxx'

注意数据库分库 @fi 与后面的括号之间必须有空格,否则将发生如下异常。



在成功的将SQL传递

如何在“当前账套”类型的连接器中执行SQL从存储过程获得查询结果

作者:禹老师1 背景在某客户项目中,开发人员在苍穹的数据库中设计了一个存储过程 fuc_cas_voucherinf 获取查询结果,并希望通过SELECT...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信