【发布时间】:2020-07-13 16:28:19
【问题描述】:
我正在尝试将 Json 数据数组插入 DB2 的临时表中。我开始知道我可以使用 Json_Table 函数来实现这一点。我找到了 2 个不同语法的函数链接。
有人可以帮助理解它们之间的区别吗?
根据我的用例,我发现链接 1 是合适的,所以我在 DB2 LUW V11.1/V11.5 环境中尝试了该示例,我收到语法错误,提示 JSON_Table 无效。 DB2 LUW V11.1/V11.5 不支持 Link 1 中的语法吗?我在这里有什么遗漏吗?
我刚刚从链接 1 (https://www.ibm.com/support/producthub/db2/docs/content/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0070414.html?pos=2) 中获取了示例代码,如下所示
SELECT U."id", U."first name", U."last name", U."phone number"
FROM EMPLOYEE_TABLE E
JSON_TABLE(E.jsondoc, 'strict $'
COLUMNS( "id" INTEGER,
"firstname" VARCHAR(20),
"lastname" VARCHAR(20),
"phoneno" VARCHAR(20))
ERROR ON ERROR) AS U
我收到诸如“此行有多个标记”之类的标记错误
- 适用于 Linux、UNIX 和 Windows 的 DB2:“
”应该构成一个完整的范围。 - 用于 Linux、UNIX 和 Windows 的 DB2:"U."id"、U."first name"、U."last name"、U."phone number" 来自 JSON_EMP E JSON_TABLE(E.EMP_DATA, '严格 $' COLUMNS("id..."
当我尝试执行上述查询时,我收到错误,因为“An unexpected token“E” was found following “呃” FROM JSON_EMP”。预期的标记可能包括:“EXCEPT”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.19.56”
我尝试使用模式 sysibm 作为 JSON_TABLE 的前缀,但仍然没有运气。我遇到了同样的错误。
【问题讨论】:
-
您使用的是什么 Db2 版本和平台?什么语句导致了错误?
-
请在您的问题中发布您尝试过的确切代码。链接可能会失效,如果没有完整的上下文,问题将毫无意义,更不用说您复制和粘贴成功的证明,没有用错字转录等;-) 请还包括收到的完整错误,因为那个看起来它可能已经被删节了。
-
对不起,我只是在描述中添加了额外的信息,其中包含我遇到的错误。
标签: db2-luw