当前位置: 首页 > 知识库问答 >
问题:

如何在Oracle中获取JSON字符串的一部分

傅雪松
2023-03-14

我有类似这样的数据来自一个领域-

{"AddressLine1":"Example Dr "," AddressLine2 ":"," City":"Paradise City "," State":"State Name "," PostalCode":"12345 "," Zip5":"67891 "," zip 4 ":" }

{"地址线1":"Ex Ln","地址线2":"Adr 22","城市":","州":"州名","邮政编码":"12345","Zip5":"67891","Zip4":"}

我需要在“城市”旁边的引号中提取值:。在上述情况下,我需要值 - 天堂城和 NULL。

共有1个答案

郦昆
2023-03-14

您可以使用JSON_TABLE

SELECT t.id,
       jt.*
FROM   table_name t
       OUTER APPLY JSON_TABLE(
         t.value,
         '$'
         ERROR ON ERROR
         COLUMNS (
           AddressLine1 VARCHAR2(200) PATH '$.AddressLine1',
           AddressLine2 VARCHAR2(200) PATH '$.AddressLine2',
           City         VARCHAR2(200) PATH '$.City',
           State        VARCHAR2(200) PATH '$.State',
           PostalCode   VARCHAR2(7)   PATH '$.PostalCode',
           Zip5         VARCHAR2(5)   PATH '$.Zip5',
           Zip4         VARCHAR2(4)   PATH '$.Zip4'
         )
       ) jt;

对于样本数据:

CREATE TABLE table_name ( id INT, value CLOB CHECK ( value IS JSON ) );

INSERT INTO table_name ( id, value )
SELECT 1, '{"AddressLine1":"Example Dr","AddressLine2":"","City":"Paradise City","State":"State Name","PostalCode":"12345","Zip5":"67891","Zip4":""}' FROM DUAL UNION ALL
SELECT 2, '{"AddressLine1":"Ex Ln","AddressLine2":"Adr 22","City":"","State":"State Name","PostalCode":"12345","Zip5":"67891","Zip4":""}' FROM DUAL UNION ALL
SELECT 3, NULL FROM DUAL;

输出:

ID | ADDRESSLINE1 | ADDRESSLINE2 | CITY          | STATE      | POSTALCODE | ZIP5  | ZIP4
-: | :----------- | :----------- | :------------ | :--------- | :--------- | :---- | :---
 1 | Example Dr   | null         | Paradise City | State Name | 12345      | 67891 | null
 2 | Ex Ln        | Adr 22       | null          | State Name | 12345      | 67891 | null
 3 | null         | null         | null          | null       | null       | null  | null

db

 类似资料:
  • 问题内容: 解决方案 :这是我的错误。 正确的方法是 response.body()。string() 而不是 response.body.toString() 我正在使用Jetty servlet,URL是,每次请求此URL都会返回 当在浏览器中键入url时,它会显示出来,不幸的是,当我使用时,它会显示除json字符串以外的其他内存地址。 Okhttp代码Im使用: 有人可以帮忙吗? 问题答案:

  • 问题内容: 我有一个字符串,我想从中获取一些值。 我的字符串看起来像: 字符串1: 字串2: 不幸的是,存在这样一种情况,字符串将具有相同的概念,但是没有一些参数: 字串3: 我怎样才能得到的值:,,,,? 任何帮助表示赞赏! 问题答案: 您的字符串是JSON格式的,因此您需要将其 解析 为一个对象。为此,您可以使用JSON.NET。 这是有关如何将JSON字符串解析为动态对象的示例: 编码愉快!

  • 问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。

  • 问题内容: 如何将(度)字符转换为字符串? 问题答案: 将此行放在源代码的顶部 如果您的编辑器使用其他编码,请替换为utf-8 然后,您可以直接在源代码中包含utf-8字符

  • 问题内容: 我想尝试从Go中的JSON获取键值,但是我不确定该怎么做。 我已经能够使用simplejson来读取json值,但是我却无法找出如何获取键值。 谁能指出正确的方向和/或帮助我? 谢谢! 问题答案: 您可以通过执行以下操作来获取JSON结构的顶级密钥: 请注意,键的顺序不得与JSON结构中的键顺序相对应。它们在最后一片中的顺序甚至会在完全相同的代码的不同运行之间有所不同。这是由于地图迭代

  • 我需要从获取一些数据,并在中显示这些数据。我成功地从API获得了,但这只是数据的一部分,还有更多。如何获取的其余部分?是否应该在客户端处理?我是否应该使用不同的URL来获取更多数据?提前谢谢你。