excel - 连接到 PostgreSQL 数据库时在 Power Query 中参数化源
问题描述
使用 postgresql 的.Net 数据提供程序,我想创建一个从给定模式加载一些表的 excel 工作簿。架构是使用 excel 工作簿中的命名范围设置的,每个架构的表名相同。
我尝试了以下方法:
定义一个查询“来自其他来源”/“空白查询”,命名SchemaIdParam
为
let
rng= Excel.CurrentWorkbook(){[Name="schemaid"]}[Content]
in
rng
(名称“schemaid”在工作簿中定义。)
mytable
定义一个名为“来自 PostgreSQL db”的查询
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]
推荐阅读
- docker - 如何在 Docker 中本地使用循环设备
- google-sheets - 使用具有实时刷新功能的 API 连接表格
- angular-cli - 将路由器添加到 Angular 9 项目
- reactjs - ReactJS - 将部分 onClick 函数作为来自父组件的道具传递
- c# - 电阻两端电压
- python - 为什么将日期时间功能设置为默认时不需要迁移?
- c++ - 如何在 2 个数组之间打印不常见的值?
- spring-boot - 使用 Minikube 在本地 dev 上一起运行多个微服务 docker 映像
- java - 如何在不使用 Toast 的情况下向播放器屏幕显示总分
- build - yocto 内核模块配方