国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Oracle解析JSON字符串

這篇具有很好參考價值的文章主要介紹了Oracle解析JSON字符串。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Oracle解析JSON字符串

假設某個字段存儲的JSON字符串,我們不想查出來后通過一些常見的編程語言處理(JSON.parse()或者是JSONObject.parseObject()等),想直接在數(shù)據庫上處理,又該如何書寫呢?

其實在ORACLE中也支持多種機制去處理JSON數(shù)據,例如有操作函數(shù)JSON_ARRAY、JSON_EXISTS、JSON_VALUES、JSON_TABLE、JSON_QUERY等可以像MongoDB一樣操作JSON數(shù)據。

但是一般開發(fā)中很少使用JSON操作函數(shù),都是像其他語言一樣直接解析成JSON對象或數(shù)組靈活操作數(shù)據,例如:

DECLARE
    -- 申明一個json字符串
    V_STR NVARCHAR2(1000) := '[
    { "name": "alex", "age": 15, "high": 10, "phone": 1358226000000 },
    { "name": "jan", "age": 16, "high": 92, "phone": 1358226000000 },
    { "name": "jan", "age": 17, "high": 45, "phone": 1358226000000 },
    { "name": "alex", "age": 18, "high": 87, "phone": 1358226000000 },
    { "name": "jan", "age": 15, "high": 10, "phone": 1358226060000 },
    { "name": "alex", "age": 16, "high": 87, "phone": 1358226060000 },
    { "name": "alex", "age": 17, "high": 45, "phone": 1358226060000 },
    { "name": "jan", "age": 18, "high": 92, "phone": 1358226060000 }]';
    -- 申明一個json數(shù)組變量(相當于const v_array = [])
    V_ARRAY JSON_ARRAY_T;
    -- 申明一個json對象變量(相當于const v_object = {})
    V_OBJECT JSON_OBJECT_T;
    -- 用于接收json key集合(相當于const keyList = Object.keys())
    V_KEY_LIST JSON_KEY_LIST;
    -- 記住這幾個關鍵字就行了,實際開發(fā)中已經夠用了
BEGIN
    -- V_ARRAY := JSON_ARRAY_T(V_STR); -- 解析成json數(shù)組(這樣書寫也可以)
    -- 解析成json數(shù)組
    V_ARRAY := JSON_ARRAY_T.PARSE(V_STR);
    -- 遍歷json數(shù)組
    FOR I IN 0 .. V_ARRAY.GET_SIZE - 1 LOOP
        -- 解析成json對象
        -- V_OBJECT := JSON_OBJECT_T.PARSE('{"A":1}'); 如果是字符串可以直接使用parse()
        V_OBJECT := JSON_OBJECT_T(V_ARRAY.GET(I));
        -- 獲取 phone 屬性值
        DBMS_OUTPUT.PUT_LINE('phone' || ' = ' || V_OBJECT.GET_STRING('phone'));
        -- 新增 password 屬性
        V_OBJECT.PUT('password', '1');
        DBMS_OUTPUT.PUT_LINE('password' || ' = ' || V_OBJECT.GET_STRING('password'));
        -- 刪除 high 屬性
        V_OBJECT.REMOVE('high');
        DBMS_OUTPUT.PUT_LINE('high' || ' = ' || V_OBJECT.GET_STRING('high'));

        -- 獲取json對象的 key_list
        V_KEY_LIST := V_OBJECT.GET_KEYS;
        -- 變量 key_list
        FOR KEY_INDEX IN 1 .. V_KEY_LIST.COUNT LOOP
            DBMS_OUTPUT.PUT_LINE(V_KEY_LIST(KEY_INDEX)); -- 輸出 key
        END LOOP;
    END LOOP;
END;


JSON_OBJECT_TGET開頭的API

Oracle解析JSON字符串,Oracle,oracle,json,數(shù)據庫

JSON_ARRAY_TGET開頭的API

Oracle解析JSON字符串,Oracle,oracle,json,數(shù)據庫

當然兩種類型的API遠不止如此,用到的時候查閱一下即可。

在自定義函數(shù)上的使用示例文章來源地址http://www.zghlxwxcb.cn/news/detail-570649.html

CREATE OR REPLACE FUNCTION YTGZHDB.FUN_GET_TDYT_NAME(TDYT IN NVARCHAR2) RETURN NVARCHAR2
AS
    V_NAME NVARCHAR2(100);
    V_KEY_LIST JSON_KEY_LIST;
    V_JSON JSON_OBJECT_T;
    V_TEMP NVARCHAR2(100);
    V_DIC_ID  VARCHAR2(50)  := '402886cb84ae206e0184be15c1590753'; -- 土地用途(后續(xù)變更調整即可)
    V_DIC_SQL VARCHAR2(255) := 'SELECT DI.F_NAME FROM YTGZHDB.DC_DIC_ITEM DI WHERE DI.F_VALUE = :1 AND DI.FK_DIC_ID = :2';
BEGIN
    V_JSON := JSON_OBJECT_T.PARSE(TDYT);
    V_KEY_LIST := V_JSON.GET_KEYS;
    FOR I IN 1 .. V_KEY_LIST.COUNT
    LOOP
        EXECUTE IMMEDIATE V_DIC_SQL INTO V_TEMP USING V_KEY_LIST(I), V_DIC_ID;
        V_NAME := CONCAT(V_NAME, CONCAT(V_TEMP, ','));
    END LOOP;
    RETURN SUBSTR(V_NAME, 1, (LENGTH(V_NAME) - 1));
END FUN_GET_TDYT_NAME;

到了這里,關于Oracle解析JSON字符串的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Golang校驗字符串是否JSON格式方法json.Valid源碼解析

    上篇文章《Golang中如何校驗字符串是否為JSON格式?》主要講解了使用json.Valid校驗字符串是否JSON格式的使用方法,本文來剖析一下json.Valid方法的源碼。 json.Valid方法定義: scan := newScanner() 獲取一個 scanner 類型的對象,關鍵的是checkValid方法,checkValid源碼如下: 首先調用了sc

    2023年04月26日
    瀏覽(19)
  • Hive 解析 JSON 字符串數(shù)據的實現(xiàn)方式

    Hive 解析 JSON 字符串數(shù)據的實現(xiàn)方式

    在 Hive 中提供了直接解析 JSON 字符串數(shù)據的方法 get_json_object(json_txt, path) ,該方法參數(shù)解析如下: json_txt :顧名思義,就是 JSON 字符串; path :指的是匹配 JSON 字符串的格式,通過固定的語法獲取 JSON 字符串中的內容。 常用的 path 參數(shù)匹配符號有四個,分別是: $ :表示獲

    2024年02月05日
    瀏覽(22)
  • Java 解析多層嵌套json數(shù)據及json字符串與對象的相互轉換

    Java 解析多層嵌套json數(shù)據及json字符串與對象的相互轉換

    本文主要介紹java解析多層嵌套json數(shù)據以及字符串與JSON對象之間的相互轉換,包括:json字符串的取值,json對象與字符串的相互轉換,字符串轉化為java對象,字符串轉化為javaList列表等。 提示:以下是本篇文章正文內容,下面案例可供參考 數(shù)據格式:JSON實際上就是鍵值對(

    2024年02月04日
    瀏覽(32)
  • C#2010 .NET4 解析 json 字符串

    C#2010 .NET4 解析 json 字符串

    下載Newtonsoft.Json.dll ?

    2024年02月11日
    瀏覽(22)
  • 五分鐘學會如何用java解析json字符串!

    在工作中我們常常使用json來存儲和傳輸結構化的數(shù)據,如用戶信息、配置信息等。它通常以string的方式進行傳輸,因此如何將string解析并得到我們想要的信息是一項必備且常用的功能。 JSON(JavaScript Object Notation)是一種輕量級的、基于文本的、與語言無關的數(shù)據交換格式,

    2024年02月11日
    瀏覽(23)
  • 【微信小程序】使用 JSON.parse 方法將返回的 JSON 字符串解析為對象

    在微信小程序中,你可以使用 JSON.parse 方法將返回的 JSON 字符串解析為對象。以下是實現(xiàn)類似功能的示例代碼: 在上述代碼中,我們使用 JSON.parse 方法將返回的 JSON 字符串解析為對象。然后,我們可以通過點語法或方括號語法訪問解析后的對象的屬性,例如 data.result 。 請注

    2024年02月15日
    瀏覽(20)
  • 大數(shù)據技術之Spark SQL——解析JSON字符串

    大數(shù)據技術之Spark SQL——解析JSON字符串

    目錄 一、數(shù)據準備 1)Department ?2)School 3)Student 4)Teacher 5)實例化對象 結構如下: 二、加載數(shù)據 數(shù)據展示? 三、日志數(shù)據加載 輸出結果? sc.textFile讀取數(shù)據源,并對結構化數(shù)據進行拆分 ? ? ? ? ? 同樣的,除了json格式字符串,我們也可以用類似的方法來加載日志數(shù)據。

    2024年02月04日
    瀏覽(25)
  • gin 解析 formData帶文件和json字符串的一起的方式

    基礎不好真的難受,這點問題折騰半天… 網上看到很多單獨解析文件的,網上的資料確實都能找到。但是結合gin解析文件和json字符串(或其他類型的參數(shù),但字符串最好)一起的,就不好找。 需求是前端使用 Content-Type: multipart/form-data 的形式上傳文件以及需要的參數(shù)。后端

    2024年02月16日
    瀏覽(18)
  • Oracle——SUBSTR()截取字符串,INSTR()查找字符串

    使用語法:SUBSTR( string , start ,?[length]) string :需要截取的字符串。 start :? 起始位置, -3 表示從倒數(shù)第三個字符開始, 從左往右 截取。 length:截取長度(默認截取到末尾)。 使用語法:INSTR( string , str ,?[start],[which]) string :源字符串。 str :查找的子字符串(可以

    2024年02月12日
    瀏覽(33)
  • jquery和php json字符串轉數(shù)組對象 和 數(shù)組對象轉json字符串

    要實現(xiàn)從對象轉換為 JSON 字符串,使用 JSON.stringify( ) 方法: 要實現(xiàn)從 JSON 轉換為對象,使用 JSON.parse() 方法: 數(shù)組變字符串 字符串變數(shù)組 json轉數(shù)組?? json_decode(? string $json ,? bool $assoc = false ,? int $depth = 512 ,? int $options = 0 ) $json:待解碼的 json string 格式的字符串。這個函數(shù)

    2024年02月13日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包