【发布时间】:2016-09-14 17:18:31
【问题描述】:
我正在尝试使用旧视图中的 BLOB 列(包含 JSON)从旧视图创建视图。 我有这样的声明:
CREATE OR REPLACE VIEW new_view AS
(
SELECT ov.a, ov.b, ov.c, data.* FROM old_view ov,
JSON_TABLE
(
ov.my_column,
'$'
columns
something VARCHAR2(50 CHAR) format json path '$.a.b.c'
)
as data);
新视图未填充任何内容。但是,如果我将 blob 转换为 clob,则视图将插入行。另外,如果我将上述语句更改为:
SELECT ov.a, ov.b, ov.c, data.* FROM old_view ov,
JSON_TABLE
(
ov.my_column,
'$'
columns
something VARCHAR2(50 CHAR) format json path '$.x.y.z'
)
as data;
我收到以下错误:
SQL 错误:ORA-40499:没有为二进制数据类型定义格式 40499. 00000 - “没有为二进制数据类型定义格式” *原因:提供的 JSON 输入是二进制类型,但格式是 没有定义的。 *操作:定义二进制输入的格式。
有人知道如何解决这个问题吗?
我知道在使用 BLOB 列时必须定义“格式 json”,但之后我不确定。我想我正确地遵循了 orcale docs 中定义的格式。
【问题讨论】: