问题描述
嗨,问汤姆团队,
我有一个要求将JSON文件加载到Oracle数据库中的表中。
已经看到了一些使用外部表并从JSON文件填充它的示例,然后通过JSON函数提取字段以将数据加载到关系表中。
需要你对任何其他可用选项的建议。
谢谢,
普拉山特
我有一个要求将JSON文件加载到Oracle数据库中的表中。
已经看到了一些使用外部表并从JSON文件填充它的示例,然后通过JSON函数提取字段以将数据加载到关系表中。
需要你对任何其他可用选项的建议。
谢谢,
普拉山特
专家解答
json只是clob
SQL> host cat c:\temp\json.dat
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
SQL> create table t ( my_json clob, constraint chk check ( my_json is json ));
Table created.
SQL> declare
2 b bfile := bfilename('TEMP','json.dat');
3 c clob;
4 begin
5 dbms_lob.open(b);
6 dbms_lob.createtemporary(c,true);
7
8 dbms_lob.loadfromfile(c,b,dbms_lob.getlength(b));
9 insert into t values (c);
10 commit;
11 dbms_lob.freetemporary(c);
12 end;
13 /
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
MY_JSON
--------------------------------------------------------------------------------
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup l
anguages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




