sql >> データベース >  >> RDS >> Oracle

PL/SQLを使用してOracle11gのJSONファイルにデータをエクスポートする

    この記事では、PL/SQLを使用してOracle11gのJSONファイルにデータをエクスポートする例を示します。

    これらの手順に従って、Oracle11gのJSONファイルにデータをエクスポートします

    1. まず、次のリンクを使用して、GITHUBからAlexandria PL/SQLユーティリティパッケージをダウンロードします。alexandria_plsql_utilityパッケージをダウンロードします。
    2. zipファイルをダウンロードした後、それを抽出し、「alexandria-plsql-utils-master \ alexandria-plsql-utils-master\ora」ディレクトリでJSON_UTIL_PKGを見つけます。
    3. JSON_UTIL_PKGパッケージの仕様と本文をスキーマにインストールします
    4. その後、次のリンクから「WRITE_CLOB_TO_FILE」PL/SQLプロシージャをダウンロードします。Write_Clob_To_Fileをダウンロードします。
    5. この手順をスキーマにもインストールします。

    これで、以下の例に示すように、PL/SQLを使用してOracleテーブルからJSONファイルを生成できます。

    Oracle11gSQLからJSONへの例

    次の例では、JSON_UTIL_PKG.SQL_TO_JSON関数を使用してデータをCLOB変数に取得します。 次に、WRITE_CLOB_TO_FILEプロシージャを使用して、CLOBにJSONデータがあることをFILEに書き込みます。 。 WRITE_CLOB_TO_FILEプロシージャに3つのパラメータを渡します。これらのパラメータは、ファイル名、ディレクトリオブジェクト名、CLOB変数です。

    DECLARE
    c CLOB;
    BEGIN
    SELECT json_util_pkg.sql_to_json('select EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO from emp2')
    INTO c
    FROM DUAL;
    
    WRITE_CLOB_TO_FILE ('emp.json', 'JSON_DIR', c);
    END;
    /

    これで、ディレクトリオブジェクトJSON_DIRの場所を確認でき、以下の出力例に示すようなJSONファイルが見つかります。

    {"ROWSET":[{"EMPNO":7369,"ENAME":"SMITH","JOB":"CLERK","MGR":7902,"HIREDATE":"17-DEC-80","SAL":800,"COMM":null,"DEPTNO":21},{"EMPNO":7499,"ENAME":"ALLEN","JOB":"SALESMAN","MGR":7698,"HIREDATE":"20-FEB-81","SAL":1600,"COMM":300,"DEPTNO":30},{"EMPNO":7521,"ENAME":"WARD","JOB":"SALESMAN","MGR":7698,"HIREDATE":"22-FEB-81","SAL":1250,"COMM":500,"DEPTNO":30},{"EMPNO":7566,"ENAME":"JONES","JOB":"MANAGER","MGR":7839,"HIREDATE":"04-FEB-81","SAL":2975,"COMM":null,"DEPTNO":20},{"EMPNO":7654,"ENAME":"MARTIN","JOB":"SALESMAN","MGR":7698,"HIREDATE":"28-SEP-81","SAL":1250,"COMM":1400,"DEPTNO":30},{"EMPNO":7698,"ENAME":"BLAKE","JOB":"MANAGER","MGR":7839,"HIREDATE":"05-JAN-81","SAL":2850,"COMM":null,"DEPTNO":30},{"EMPNO":7782,"ENAME":"CLARK","JOB":"MANAGER","MGR":7839,"HIREDATE":"06-SEP-81","SAL":2450,"COMM":null,"DEPTNO":10},{"EMPNO":7788,"ENAME":"SCOTT","JOB":"ANALYST","MGR":7566,"HIREDATE":"19-APR-87","SAL":3000,"COMM":null,"DEPTNO":20},{"EMPNO":7839,"ENAME":"KING","JOB":"PRESIDENT","MGR":null,"HIREDATE":"17-NOV-81","SAL":5000,"COMM":null,"DEPTNO":10},{"EMPNO":7844,"ENAME":"TURNER","JOB":"SALESMAN","MGR":7698,"HIREDATE":"09-AUG-81","SAL":1500,"COMM":0,"DEPTNO":30},{"EMPNO":7876,"ENAME":"ADAMS","JOB":"CLERK","MGR":7788,"HIREDATE":"23-MAY-87","SAL":1100,"COMM":null,"DEPTNO":20},{"EMPNO":7900,"ENAME":"JAMES","JOB":"CLERK","MGR":7698,"HIREDATE":"12-MAR-81","SAL":950,"COMM":null,"DEPTNO":30},{"EMPNO":7902,"ENAME":"FORD","JOB":"ANALYST","MGR":7566,"HIREDATE":"12-MAR-81","SAL":3000,"COMM":null,"DEPTNO":20},{"EMPNO":7934,"ENAME":"MILLER","JOB":"CLERK","MGR":7782,"HIREDATE":"23-JAN-82","SAL":1300,"COMM":null,"DEPTNO":10}]}

    関連項目:

    • PLSQLを使用してデータをExcelにエクスポートする
    • PL/SQLを使用してデータをCSVにエクスポート
    1. mysqlのようなパフォーマンスの向上

    2. 削除されたDockerコンテナからデータを回復する方法は?それをデータに再接続する方法は?

    3. PostgreSQLでのFloor()のしくみ

    4. PostgreSQLでのpg_typeof()のしくみ