【问题标题】:Get SQL results from DB2 on cloud to Power Query via API通过 API 从云上的 DB2 获取 SQL 结果到 Power Query
【发布时间】:2021-09-09 20:18:00
【问题描述】:

我尝试通过 Excel Power Query 连接到云上的 db2。

基于documentation,这是 curl 请求的格式:

curl -X POST   https://hostname.com/dbapi/v4/sql_query_export   -H 'authorization: Bearer MyToken'   -H 'content-type: text/csv'   -d '{"command":"select * from mytable"}'

我试图通过 GUI 去,但这给了我错误

我很确定我做的不对,但我什至无法谷歌如何传递我的参数。

有人可以指导如何为此组装 M 代码吗?

我根据@nfgl 的回答试过了

let
    body  = [#"command"="select * from mytable"]
    ,json = Json.FromValue(body)
    ,wc = Web.Contents("https://hostname.com/dbapi/v4/sql_query_export", [Headers=[#"content-type"="text/csv", authorization="Bearer XXX"]])
    ,Source = Csv.Document(wc,[Delimiter=",", Encoding=65001, QuoteStyle=QuoteStyle.Csv])
in
    Source

但是不能匿名绕过凭据 ui:

当我尝试使用令牌的 Web API 时:

顺便说一句,一切都适用于 python:

import http.client

conn = http.client.HTTPSConnection("hostname.com")

payload = "{\"command\":\"select * from mytable\"}"

headers = {
    'content-type': "text/csv",
    'authorization': "Bearer XXX"
    }

conn.request("POST", "/dbapi/v4/sql_query_export", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

【问题讨论】:

  • 您可能想从您的问题中删除凭据...
  • 那些是假的,但还是谢谢。

标签: api db2 powerquery rest


【解决方案1】:

不能通过 GUI 来做,命令 JSON 必须在请求内容中,并且 content-type 是你发送的那个,即 JSON,打开高级编辑器并做这样的事情

let
    url = "https://showcase.api.linx.twenty57.net/UnixTime/fromunixtimestamp",
    body  = [#"UnixTimeStamp"= 1589772280, #"Timezone"=""],
    json = Json.FromValue(body),
    wc = Web.Contents(url, [Headers=[#"Content-Type"="application/json"], Content=json]),
    Source = Csv.Document(wc,[Delimiter=",", Encoding=65001, QuoteStyle=QuoteStyle.Csv])
in
    Source

【讨论】:

  • 非常感谢您的指导。但是仍然无法通过 PQ 凭据 UI。我尝试更新了我的问题。
  • @MichalPalko 抱歉帮不上忙
猜你喜欢
  • 2021-06-27
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
相关资源
最近更新 更多