从Excel调用DB2表值函数

时间:2018-11-28 14:39:47

标签: excel db2 db2-400

我在DB2中创建了一个用户定义的表值函数,该函数接受两个参数并返回一个表。

IBM i Access Client解决方案(版本:1.1.7.1内部版本:7290)中调用UDTVF >> 运行SQL脚本可以很好地返回结果表:< / p>

-- SELECT *
-- FROM TABLE(<library>.<udtvf>(<param. 1>,<Param. 2>)) AS ResultsTable

SELECT *
FROM TABLE(DPLIB06.FISMOSLSWAR(1,2017)) AS ResultsTable

我定义了一个指向DB2的ODBC DSN。该DSN可以很好地用作MS Excel,Crystal Reports等中的数据连接,并且到目前为止,即使在某些非常复杂的查询中也可以正常工作。

当我尝试通过MS查询编辑器将上述查询添加到Excel工作表时,收到以下警告/错误消息:

SQL Query can't be represented graphically. Continue anyway?

对此警告没什么大不了的:我总是单击确定,生活仍在继续... 但后来我得到了

Could not add the table 'TABLE(DPLIB06.FISMOSLSWAR(1'.

所以...有人可以给我语法从Microsoft Excel调用DB2用户定义的表值函数(带有两个参数)吗?

1 个答案:

答案 0 :(得分:1)

这是一个可行的解决方案:

使用“ MS查询编辑器”输入一个简单查询:

SELECT 'A' FROM SYSIBM.SYSDUMMY1

关闭编辑器,将结果返回到Excel

从Excel 数据>>连接菜单中选择您的连接,并显示其属性。在定义中,将命令文本替换为引用UDTVF的查询