如何解决使用 OPENJSON 获取 next_url
我是 sqlserver 函数 openjson 的新手,需要一些帮助。试图从polygon.io 获取代码,但不知道从“next_url”获取值的语法
这是我正在尝试的,如果您配置了 xp_cmdshell,您应该能够复制并粘贴运行此程序
-- STEP1 -- Declare Variables
declare @op table (op nvarchar(max))
declare @url VARCHAR(255) = 'https://api.polygon.io/v3/reference/tickers?active=true''&''sort=ticker''&''order=asc''&''limit=1000''&''apiKey=IFeGnTjxZrTOheIS5UQi1pgyx84ndTQG'
declare @payload NVARCHAR(max)
declare @c varchar(1000) = N'powershell.exe -noprofile -executionpolicy bypass'
+ N'-command (Invoke-WebRequest -Uri "'+ @url+'" -UseBasicParsing).content'
-- STEP2 -- Insert first 1000 tickers into table
insert into json_op exec xp_cmdshell @c
-- STEP3 -- View output from API
exec xp_cmdshell @c
-- STEP4 -- Concatenate json values from table into string. Had to do this from physical table as
-- using a table variable ran into cahracter limit. I tried everything and physical table is the only
-- thing that worked
SELECT @payload = STRING_AGG(CAST(op AS nvarchar(Max)),'') FROM json_op
-- Step5 -- View contents of variable,only first 8000 characters will show in results grid but it's all there
-- see output fropm step3
SELECT @payload
-- Step6 -- View json table
SELECT *
FROM OPENJSON (@payload,'$')
-- Step7 -- Parse out ticker info
SELECT *
FROM
OPENJSON (@payload,'$.results')
WITH
(
[Ticker] Varchar(150) '$.ticker',[name] Varchar(150) '$.name',[market] Varchar(150) '$.market',[locale] Varchar(150) '$.locale',[primary_exchange] Varchar(150) '$.primary_exchange',[type] Varchar(150) '$.type',[active] Varchar(150) '$.active',[currency_name] Varchar(150) '$.currency_name',[cik] Varchar(150) '$.cik',[composite_figi] Varchar(150) '$.composite_figi',[share_class_figi] Varchar(150) '$.share_class_figi',[last_updated_utc] Varchar(150) '$.last_updated_utc'
)
-- Step8 -- Trying to parse out next_url but this returns no data
SELECT *
FROM OPENJSON (@payload,'$.next_url')
WITH
(
[next_url] Varchar(250) '$.next_url'
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。