暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

将JSON数据文件加载到Oracle 12c中

askTom 2017-02-25
892

问题描述

嗨,问汤姆团队,

我有一个要求将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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论