使用 .Net data provider对于 postgresql,我想创建一个 excel 工作簿,从给定模式加载一些表。架构是使用 Excel 工作簿中的命名范围设置的,每个架构的表名都相同。
我尝试了以下方法:
定义一个名为SchemaIdParam
的“来自其他来源”/“空白查询”的查询作为
let
rng= Excel.CurrentWorkbook(){[Name="schemaid"]}[Content]
in
rng
(名称“schemaid”在工作簿中定义。)
定义一个“来自 PostgreSQL 数据库”的查询,名为 mytable
as
let
src = PostgreSQL.Database("xxx.myhost.com:5235", "my_database"),
tbl = src{[Schema=SchemaIdParam,Item="mytable"]}[Data]
in
tbl
现在这行不通了。错误消息指出:“[Expression.Error]:表中的键和行之间不匹配”(自己的翻译)。然而,如果我将 SchemaIdParam
替换为引号中的文字值,它就会起作用。然后传递正确的表。
非常感谢我如何解决这个问题的任何提示!
我想为模式名称使用命名范围的原因是我想在 excel 之外以编程方式设置模式名称。我非常愿意接受如何以另一种方式做到这一点的建议。
最佳答案
这可能是类型错误。尝试将 SchemaIdParam
值转换为文本作为该查询的一部分,否则尝试
tbl = src{[Schema=Number.ToText(SchemaIdParam),Item="mytable"]}[Data]
关于excel - 连接到 PostgreSQL 数据库时在 Power Query 中参数化源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808464/