Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:oracle12c_json_in_datenbank

JSON in der 12c / 18 cDatenbank verarbeiten

12c / 18c / 19c

Neben der Eigenschaft als Beschreibungssprache für Datenstrukturen zu dienen, setzt sich json auch immer mehr bei der Datenspeicherung und -übertragung durch.

Ein Frosch lernt JSON

Mit der Oracle Datenbank 12c hat auch Oracle einen json Parser in SQL integriert.

Ein eigener Datentyp existiert dazu nicht, die Daten werden in VARCHAR2,CLOB oder BLOB gespeichert.

Es kann ein Constraint auf die Spalte in der Tabelle mit den Json Daten gelegt werden der üerprüft ob das Dokument auch wirklich wohl geformt ist.

Ein erstes Beispiel

Um den Unterschied zwischen traditionellen Datenhandling mit SQL und dem mit JSON aufzuzeigen, legen wir uns zuvor die Inhalte der EMP Tabelle als JSON Strukturen ab.

Anlegen der Tabelle für die JSON Struktur

Eine Tabelle mit einem CLOB Feld für die JSON Daten, diese werden beim Einfügen über eine Constraint auf Gültigkeit geprüft:

CREATE TABLE JSON_EMP (  empno NUMBER(11)
                       , emp_value  CLOB CONSTRAINT emp_valid_json CHECK (emp_value IS JSON));

Soll ein BLOB Feld zur Datenspeicherung verwendet werden muss bei den Abfragen mit SQL ein Cast auf Json mit „FORMAT JSON“ erfolgen!

Daten aus der EMP Tabelle übertragen

Aus dem Emp Daten das Json Dokument pro Eintrag in der Tabelle erzeugen und dann einfügen:

INSERT INTO JSON_EMP (empno,emp_value)
SELECT empno
	  ,'{'
		||' "EMPNO":"'||EMPNO||'"'
		||' ,"ENAME":"'||ENAME||'"'
		||' ,"JOB":"'||JOB||'"'
		||' ,"MGR":"'||MGR||'"'
		||' ,"SAL":"'||SAL||'"'
		||' ,"COMM":"'||COMM||'"'
		||' ,"DEPTNO":"'||DEPTNO||'"'
		||'}' 
FROM emp
/
 
commit;

In den Daten nun suchen

Im einfachsten Fall können die Json Elemente direkt in SQL referenziert werden:

SELECT j.emp_value.ENAME, j.emp_value.DEPTNO FROM JSON_EMP j;

Auf die GROSS/klein Schreibung achten! Muss genau zu dem JSON Dokument passen!

Welchen SQL Funktionen stehen uns zur Verfügung?

ab 12c Release 1 (12.1.0.2)

Abfragen:

Demnächst mehr

Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
dba/oracle12c_json_in_datenbank.txt · Zuletzt geändert: 2019/05/16 08:43 von gpipperr