JSON_TABLE

Die Tabellenfunktion JSON_TABLE gibt eine Ergebnistabelle aus der Auswertung von SQL/JSON-Pfadausdrücken zurück. Jedes Element in der Ergebnissequenz des Zeilen-SQL/JSON-Pfadausdrucks stellt eine oder mehrere Zeilen in der Ergebnistabelle dar.

Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringen JSON_TABLE ( JSON-Ausdruck FORMAT JSONFORMAT BSON ,sql-json-pfadausdruck ASpfadname COLUMNS( ,json-tabelle-regulär-spalte-definitionjson-tabellenformat-spaltendefinitionjson-tabelle-ordinality-spalte-definitionjson-tabelle-verschachtelte-spalte-definition )EMPTY ON ERRORERROR ON ERROR1)
Anmerkungen:
  • 1 Die Klausel ON ERROR kann optional vor der Klausel COLUMNS angegeben werden.
json-tabelle-regulär-spalte-definition
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenspaltennamedatentypPATHSpaltenpfadausdruckskonstanteNULL ON EMPTYERRORDEFAULTstandardausdruckON EMPTYNULLERRORDEFAULTstandardausdruckON ERROR
json-tabellenformatierte-spaltendefinition
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenspaltennamedatentypFORMAT JSON PATHSpaltenpfadausdruckskonstanteWITHOUTARRAYWRAPPERWITHUNCONDITIONALCONDITIONALARRAYWRAPPERKEEP QUOTESON SCALAR STRINGOMIT QUOTESON SCALAR STRINGNULL ON EMPTYERROREMPTY ARRAYEMPTY OBJECTON EMPTYNULLERROREMPTY ARRAYEMPTY OBJECTON ERROR
json-tabelle-ordinalität-spalte-definition
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenspaltennameFOR ORDINALITY
json-tabelle-verschachtelte-spalte-definition
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenNESTEDPATHverschachtelter-pfadausdruck-konstante ASverschachtelter-pfadnameCOLUMNS( ,json-tabelle-regulär-spalte-definitionjson-tabellenformat-spaltendefinitionjson-tabelle-ordinality-spalte-definitionjson-tabelle-verschachtelte-spalte-definition )
datentyp
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenSMALLINTINTEGERINTBIGINTDECIMALDECNUMERICNUM(5,0)(integer,0, Ganzzahl)FLOAT(53)(integer)REALDOUBLEPRECISIONDECFLOAT(34)(16)CHARACTERCHAR(1)(integer)CHARACTERCHARVARYINGVARCHAR(integer)FOR SBCS DATAFOR MIXED DATAccsid-klauselCHARACTERCHARLARGE OBJECTCLOB(1M)(integerKMG)FOR SBCS DATAFOR MIXED DATAccsid-klauselGRAPHIC(1)(integer)GRAPHIC VARYINGVARGRAPHIC(integer)DBCLOB(1M)(integerKMG)ccsid-klauselNATIONAL CHARACTERNATIONAL CHARNCHAR(1)(integer)NATIONAL CHARACTERNATIONAL CHARNCHARVARYINGNVARCHAR(integer)NATIONAL CHARACTERNCHARLARGE OBJECTNCLOB(1M)(integerKMG)Klausel für NormalisierungDATETIME(0)TIMESTAMP(6)(integer)BOOLEAN
ccsid-klausel
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenCCSIDintegerKlausel für Normalisierung
normalize-klausel
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringenNOT NORMALIZEDNORMALIZED
JSON-Ausdruck
Gibt einen Ausdruck an, der einen Zeichen-, Grafik-oder Binärzeichenfolgewert zurückgibt. Wenn ein Zeichen-oder Grafikwert zurückgegeben wird, muss er ein ordnungsgemäß formatiertes JSON-Objekt enthalten. Wenn ein binärer Wert zurückgegeben wird, muss er die BSON-Darstellung eines JSON-Objekts enthalten.
Der JSON-Ausdruck gibt das Ausgangskontextelement für sql-json-pfadausdruckan, das in sql-json-pfadausdruck als $angegeben wird.
Wenn json-ausdruck ein JSON-Array ist, wird es implizit mit dem Schlüsselnamen SYSIBM_ROOT_ARRAY eingeschlossen, wobei der json-ausdruck ein JSON-Objekt ist. Alle Pfadausdrücke für JSON_TABLE werden implizit geändert, um diesen zusätzlichen Schlüssel zu berücksichtigen.
Wenn JSON-Ausdruck keine ordnungsgemäß formatierten Daten enthält, gibt JSON_TABLE eine leere Tabelle zurück, sofern nicht ein anderes Fehlerverhalten mit einer Klausel ON ERROR angegeben wird.
FORMAT JSON oder FORMAT BSON
Gibt an, wie JSON-Ausdruck interpretiert werden soll.
JSON FORMATIEREN
Gibt an, dass JSON-Ausdruck JSON-Daten enthält. Wenn JSON-Ausdruck Binärdaten ist, werden die Daten als UTF-8 oder UTF-16interpretiert. Die Binärdaten können nicht mit einer EBCDIC-CCSID codiert werden.
BSON FORMAT
Gibt an, dass JSON-Ausdruck die BSON-Darstellung von JSON-Daten enthält. Wenn FORMAT BSON angegeben wird, muss JSON-Ausdruck ein binärer Zeichenfolgedatentyp sein.
Wenn die Klausel FORMAT nicht angegeben wird und json-ausdruck eine Zeichen-oder Grafikzeichenfolge ist, wird json-ausdruck als JSON behandelt. Wenn JSON-Ausdruck eine Binärzeichenfolge ist, wird JSON-Ausdruck als BSON behandelt.
sql-json-pfadausdruck
Gibt einen Zeichen-oder Grafikzeichenfolgeausdruck an, der als SQL/JSON-Pfadausdruck interpretiert wird. Schlüsselwörter in sql-json-path-expression müssen in Kleinbuchstaben angegeben werden. Dieser Ausdruck gibt eine Ausgabesequenz zurück, in der jedes Element in der Sequenz von den Spaltendefinitionen verwendet wird, um eine oder mehrere Zeilen in der Ausgabetabelle zu generieren. Wenn die Ausgabesequenz leer ist, ist das Ergebnis von JSON_TABLE eine leere Tabelle. sql-json-pfadausdruck darf keine leere Zeichenfolge oder nur aus Leerzeichen bestehen.
Informationen zum Inhalt eines SQL/JSON-Pfadausdrucks finden Sie unter sql-json-path-expression.
AS pfadname
Gibt einen Namen an, der verwendet werden soll, um den sql-json-pfadausdruckanzugeben.
EMPTY ON ERROR oder ERROR ON ERROR
Gibt das gewünschte Verhalten von JSON_TABLE an, wenn ein Fehler auf Tabellenebene auftritt.
LEER BEI FEHLER
Eine leere Tabelle wird zurückgegeben, wenn ein Fehler auf Tabellenebene auftritt. Dies ist der Standardwert.
FEHLER BEI FEHLER
Wenn ein Fehler auf Tabellenebene auftritt, wird ein Fehler zurückgegeben.
SPALTEN
Gibt die Ausgabespalten der Ergebnistabelle an, einschließlich des Spaltennamens, des Datentyps und der Art der Berechnung des Spaltenwerts für jede Zeile.
Die Summe aller Ergebnisspaltenlängen darf 64K Byte nicht überschreiten. Informationen zur Byteanzahl von Spalten nach Datentyp finden Sie unter Maximale Zeilengrößen. Diese Funktion kann abhängig von der Länge des Spaltennamens und der Länge des Spaltenpfads bis zu ungefähr 200 Spalten zurückgeben.
json-tabelle-regulär-spalte-definition
Gibt eine Ausgabespalte der Ergebnistabelle einschließlich des Spaltennamens, des Datentyps und eines SQL/JSON-Pfadausdrucks an, um den Wert aus dem Sequenzelement für die Zeile zu extrahieren.
spaltenname
Gibt den Namen der Spalte in der Ergebnistabelle an. Der Name darf nicht qualifiziert sein und derselbe Name kann nicht für mehrere Spalten der Ergebnistabelle verwendet werden.
datentyp
Gibt den Datentyp der Spalte an. Für CHAR-und VARCHAR-Spalten darf die CCSID nicht 65535 sein.
PATH spaltenpfadausdruckskonstante
Gibt eine Zeichen-oder Grafikzeichenfolgekonstante an, die als SQL/JSON-Pfad interpretiert wird.
Die spaltenpfadausdruckskonstante gibt einen SQL/JSON-Pfadausdruck an, der den Spaltenwert in Bezug auf ein Element bestimmt, das das Ergebnis der Auswertung des SQL/JSON-Pfadausdrucks in sql-json-pfadausdruckist. Wenn ein Element aus dem Ergebnis der Verarbeitung von sql-json-pfadausdruck als extern bereitgestelltes Kontextelement angegeben wird, wird die spaltenpfadausdruckskonstante ausgewertet und gibt eine Ausgabesequenz zurück. Wenn ein JSON-Objekt mehrere Werte mit demselben Schlüssel enthält, wird nur einer der Werte für den Schlüssel für die Ausgabefolge zurückgegeben.
Der Spaltenwert wird basierend auf dieser Ausgabefolge wie folgt bestimmt:
  • Wenn eine leere Sequenz zurückgegeben wird, stellt die Klausel ON EMPTY den Wert der Spalte bereit. Wenn ERROR ON EMPTY angegeben ist, wird ein Fehler ausgegeben.
  • Wenn eine leere Sequenz zurückgegeben wird und keine Klausel ON EMPTY angegeben wird, wird der Nullwert der Spalte zugeordnet.
  • Wenn eine einzelne Elementsequenz zurückgegeben wird und der Typ des Elements kein JSON-Array oder JSON-Objekt ist, wird der Wert in den Datentyp konvertiert, der für die Spalte angegeben ist.
  • Wenn eine einzelne Elementfolge zurückgegeben wird und der Typ des Elements ein JSON-Array oder ein JSON-Objekt ist, wird ein Fehler zurückgegeben.
  • Wenn eine Sequenz mit mehr als einem Element zurückgegeben wird, wird ein Fehler zurückgegeben.
  • Wenn ein Fehler auftritt, gibt die Klausel ON ERROR den Wert der Spalte an.
Der Wert von spaltenpfadausdruckskonstante darf keine leere Zeichenfolge oder nur aus Leerzeichen bestehen. Wenn die Klausel PATH nicht angegeben wird, wird die Konstante column-path-expression-constant als '$.' vor dem Spaltennamendefiniert.
BEI LEERER
Gibt das Verhalten an, wenn eine leere Sequenz für die Spalte zurückgegeben wird.
NULL AUF LEER
Ein SQL-Nullwert wird zurückgegeben. Dies ist der Standardwert.
FEHLER BEI LEERER
Es wird ein Fehler zurückgegeben.
DEFAULT standardausdruck ON EMPTY
Der durch standardausdruck angegebene Wert wird zurückgegeben.
Bei Fehler
Gibt das Verhalten an, wenn ein Fehler für die Spalte zurückgegeben wird.
NULL BEI FEHLER
Ein SQL-Nullwert wird zurückgegeben. Dies ist der Standardwert.
FEHLER BEI FEHLER
Es wird ein Fehler zurückgegeben.
DEFAULT standardausdruck ON ERROR
Der durch standardausdruck angegebene Wert wird zurückgegeben.
Wenn diese Klausel nicht angegeben wird:
  • Wenn eine Klausel ERROR ON ERROR auf Tabellenebene angegeben wird, wird ein Fehler zurückgegeben.
  • Andernfalls wird ein SQL-Nullwert zurückgegeben.
json-tabellenformatierte-spaltendefinition
Gibt eine Ausgabespalte der Ergebnistabelle einschließlich des Spaltennamens, des Datentyps und eines SQL/JSON-Pfadausdrucks an, um den Wert aus dem Sequenzelement für die Zeile zu extrahieren. Der extrahierte Wert wird als JSON-Zeichenfolge formatiert.
spaltenname
Gibt den Namen der Spalte in der Ergebnistabelle an. Der Name darf nicht qualifiziert sein und derselbe Name kann nicht für mehrere Spalten der Ergebnistabelle verwendet werden.
datentyp
Gibt den Datentyp der Spalte an. Der Datentyp muss ein Zeichen-oder Grafiktyp sein. Für CHAR-und VARCHAR-Spalten darf die CCSID nicht 65535 sein.
JSON FORMATIEREN
Gibt an, dass die abgerufenen Daten als JSON-Zeichenfolge formatiert werden sollen
PATH spaltenpfadausdruckskonstante
Gibt eine Zeichen-oder Grafikzeichenfolgekonstante an, die als SQL/JSON-Pfad interpretiert wird.
Die spaltenpfadausdruckskonstante gibt einen SQL/JSON-Pfadausdruck an, der den Spaltenwert in Bezug auf ein Element bestimmt, das das Ergebnis der Auswertung des SQL/JSON-Pfadausdrucks in sql-json-pfadausdruck ist, sowie alle Pfade, die von vorherigen verschachtelten PATHs angegeben wurden. Wenn ein Element aus dem Ergebnis der Verarbeitung von sql-json-pfadausdruck als extern bereitgestelltes Kontextelement angegeben wird, wird die spaltenpfadausdruckskonstante ausgewertet und gibt eine Ausgabesequenz zurück. Wenn ein JSON-Objekt mehrere Werte mit demselben Schlüssel enthält, wird nur einer der Werte für den Schlüssel für die Ausgabefolge zurückgegeben.
Der Spaltenwert wird basierend auf dieser Ausgabefolge wie folgt bestimmt:
  • Wenn eine leere Sequenz zurückgegeben wird, stellt die Klausel ON EMPTY den Wert der Spalte bereit. Wenn ERROR ON EMPTY angegeben ist, wird ein Fehler zurückgegeben.
  • Wenn eine leere Sequenz zurückgegeben wird und keine Klausel ON EMPTY angegeben wird, wird der Nullwert der Spalte zugeordnet.
  • Wenn ein Fehler auftritt, gibt die Klausel ON ERROR den Wert der Spalte an.
Der Wert für spaltenpfadausdruckskonstante darf keine leere Zeichenfolge oder nur aus Leerzeichen bestehen. Wenn die Klausel PATH nicht angegeben wird, wird die Konstante column-path-expression-constant als '$.' vor dem Spaltennamendefiniert.
WITHOUT ARRAY WRAPPER oder WITH ARRAY WRAPPER
Gibt an, ob der Ausgabewert in ein JSON-Array eingeschlossen werden soll
OHNE ARRAY-WRAPPER
Gibt an, dass das Ergebnis nicht eingeschlossen ist. Dies ist der Standardwert. Die Verwendung eines SQL/JSON-Pfads, der zu einer Folge von zwei oder mehr SQL/JSON-Elementen führt, führt zu einem Fehler.
MIT UNBEDINGTEM ARRAY-WRAPPER
Gibt an, dass das Ergebnis in eckige Klammern eingeschlossen ist, um ein JSON-Array zu erstellen
MIT BEDINGTEM ARRAY-WRAPPER
Gibt an, dass das Ergebnis in eckige Klammern eingeschlossen ist, um ein JSON-Array zu erstellen, wenn mehr als ein SQL/JSON-Element zurückgegeben wird.
KEEP QUOTES oder OMIT QUOTES
Gibt an, ob die umgebenden Anführungszeichen entfernt werden sollen, wenn eine skalare Zeichenfolge zurückgegeben wird.
ANFÜHRUNGSZEICHEN BEIBEHALTEN
Gibt an, dass Anführungszeichen nicht aus skalaren Zeichenfolgen entfernt werden. Dies ist der Standardwert.
ANFÜHRUNGSZEICHEN AUSLASSEN
Gibt an, dass Anführungszeichen aus skalaren Zeichenfolgen entfernt werden. Wenn OMIT QUOTES angegeben wird, kann die Klausel WITH ARRAY WRAPPER nicht angegeben werden
BEI LEERER
Gibt das Verhalten an, wenn eine leere Sequenz für eine Spalte zurückgegeben wird.
NULL AUF LEER
Ein SQL-Nullwert wird zurückgegeben. Dies ist der Standardwert.
FEHLER BEI LEERER
Es wird ein Fehler zurückgegeben.
LEERES ARRAY AUF LEEREM
Ein leeres JSON-Array wird zurückgegeben.
LEERES OBJEKT BEI LEEREM
Ein leeres JSON-Objekt wird zurückgegeben.
Bei Fehler
Gibt das Verhalten an, wenn ein Fehler für eine Spalte zurückgegeben wird.
NULL BEI FEHLER
Ein SQL-Nullwert wird zurückgegeben.
FEHLER BEI FEHLER
Es wird ein Fehler zurückgegeben.
LEERES ARRAY BEI FEHLER
Ein leeres JSON-Array wird zurückgegeben.
LEERES OBJEKT BEI FEHLER
Ein leeres JSON-Objekt wird zurückgegeben.
Wenn diese Klausel nicht angegeben wird:
  • Wenn eine Klausel ERROR ON ERROR auf Tabellenebene angegeben wird, wird ein Fehler zurückgegeben.
  • Andernfalls wird ein SQL-Nullwert zurückgegeben.
json-tabelle-ordinalität-spalte-definition
Gibt eine Ordinalitätsspalte der Ergebnistabelle an.
spaltenname
Gibt den Namen der Spalte in der Ergebnistabelle an. Der Name darf nicht qualifiziert sein und derselbe Name kann nicht für mehrere Spalten der Ergebnistabelle verwendet werden.
FÜR ORDINALITÄT
Gibt an, dass spaltenname die Ordinalitätsspalte der Ergebnistabelle für die einschließende Verschachtelungsebene ist. Der Datentyp dieser Spalte ist BIGINT.
  • Wenn sich die Ordinalitätsspalte nicht innerhalb einer verschachtelten Spaltendefinition befindet, werden die Zeilen der Ergebnistabelle sequenziell nummeriert, beginnend mit 1, und die Ordinalitätsspalte enthält die fortlaufende Nummer der aktuellen Zeile.
  • Wenn sich die Ordinalitätsspalte in einer verschachtelten Spaltendefinition befindet, werden die von der einschließenden verschachtelten Spaltendefinition erzeugten Zeilen sequenziell nummeriert, beginnend mit 1, und die Ordinalitätsspalte enthält die fortlaufende Nummer der aktuellen Zeile. Wenn sich die Definition der übergeordneten verschachtelten Spalte in einer äußeren verschachtelten Spaltendefinition befindet, wird die Nummerierung mit 1 erneut gestartet, sobald der Pfadausdruck der übergeordneten verschachtelten Spaltendefinition auf das Ergebnis der äußeren verschachtelten Spaltendefinition angewendet wird.
json-tabelle-verschachtelte-spalte-definition
Gibt eine oder mehrere Spalten an, die auf der aktuellen Ebene verschachtelt sind
NESTED PATH verschachtelter-pfadausdruck-konstante
Gibt eine Zeichen-oder Grafikzeichenfolgekonstante an, die als SQL/JSON-Pfad interpretiert wird. Der verschachtelter-pfadausdruck-konstante gibt einen SQL/JSON-Pfadausdruck an, der den Spaltenwert in Bezug auf ein Element bestimmt, das das Ergebnis der Auswertung des SQL/JSON-Pfadausdrucks in sql-json-pfadausdruck sowie des verschachtelter-pfadausdruck-konstante aus früheren verschachtelten PATHs ist. Wenn ein Element aus dem Ergebnis der Verarbeitung des sql-json-pfadausdrucks als extern bereitgestelltes Kontextelement und die verschachtelte Pfadausdruckskonstante aus vorherigen verschachtelten PATHs verarbeitet wird, wird die verschachtelte Pfadausdruckskonstante ausgewertet und als Kontext für die verschachtelten Spalten verwendet.
AS verschachtelter-pfadname
Gibt den Namen des aktuellen Pfads an
SPALTEN
Gibt die Spalten an, die in diese Verschachtelungsebene eingeschlossen werden sollen
Tabelle 1 Unterstützte Konvertierungen von JSON in SQL-Ergebnisspalten
JSON-Typ SQL-Typ Hinweise
Nummer
SMALLINT
GANZE ZAHL
BIGINT
Liegt der Quellenwert außerhalb des Bereichs des Zieldatentyps, wird ein Überlauffehler zurückgegeben.
Nummer
DEZIMAL
NUMERISCH
Der resultierende Zahlenwert wird, falls erforderlich, in die Genauigkeit und den Maßstab des Zieldatentyps konvertiert. Die erforderliche Anzahl führender Nullen wird hinzugefügt bzw. entfernt. Im Bruchteil der Zahl wird die erforderliche Anzahl nachfolgender Nullen addiert oder die erforderliche Anzahl Ziffern eliminiert. Dieses Abschneideverhalten ähnelt dem Verhalten der Umsetzung von DECIMAL in DECIMAL.
Nummer
FLOAT
DOUBLE
REAL
DECFLOAT
Liegt der Quellenwert außerhalb des Bereichs des Zieldatentyps, wird ein Überlauffehler zurückgegeben. Wenn der Quellenwert mehr signifikante Ziffern als die Genauigkeit des Zieldatentyps enthält, wird der Quellenwert auf die Genauigkeit des Zieldatentyps gerundet.
Zeichenfolge oder Zahl
Char
VARCHAR
CLOB
GRAPHIC
VARGRAPHIC
DBCLOB
Der resultierende Wert wird, falls erforderlich, mithilfe der unter Konvertierungsregeln für Zuordnungen beschriebenen Regeln in die CCSID des Zieldatentyps konvertiert, bevor er in den Zieltyp mit einer begrenzten Länge konvertiert wird. Das Abschneiden erfolgt, wenn die angegebene Längenbegrenzung kleiner als die Länge der Ergebniszeichenfolge nach der CCSID-Konvertierung ist. Wenn Zeichen, die keine Leerzeichen sind, abgeschnitten werden, tritt eine Warnung auf. Ist der Zieltyp eine Zeichenfolge mit fester Länge (CHAR oder GRAPHIC) und ist die angegebene Länge des Zieltyps größer als die Länge der Ergebniszeichenfolge aus der CCSID-Konvertierung, werden am Ende Leerzeichen aufgefüllt. Dieses Abschneid-und Auffüllverhalten ähnelt der Abrufzuordnung von Zeichen-oder Grafikzeichenfolgen.
Beginn der ÄnderungZeichenfolge oder ZahlEnde der Änderung Beginn der ÄnderungBOOLEANEnde der Änderung Beginn der ÄnderungDer Ergebniswert wird gemäß den Regeln für boolesche Zuordnungen, die in Boolesche Zuordnungenbeschrieben sind, in einen booleschen Wert konvertiert. Ende der Änderung
Zeichenfolge DATUM Die JSON-Zeichenfolge wird in einen Datumswert konvertiert. Die JSON-Zeichenfolge muss eines der folgenden Formate haben:
ISO
jjjj-mm-tt
USA
mm/tt/jjjj
EUR
dd.mm.yyyy
JIS
jjjj-mm-tt
Zeichenfolge ZEIT Die JSON-Zeichenfolge wird in einen Zeitwert konvertiert. Die JSON-Zeichenfolge muss eines der folgenden Formate haben:
ISO
hh.mm.ss
EUR
hh.mm.ss
JIS
hh:mm:ss
HMS
hh:mm:ss
Zeichenfolge TIMESTAMP Die JSON-Zeichenfolge wird in einen Zeitmarkenwert konvertiert. Die JSON-Zeichenfolge muss eines der folgenden Formate haben:
ISO
jjjj-mm-tt hh:mm:ss.nnnnnn
IBM SQL
yyyy-mm-dd-hh.mm.ss.nnnnnn
ISO-8601
yyyy-mm-ddThh:mm:ss.nnnnnnn<+/-Offset>
Wenn die Zeitmarke ISO-8601 einen Offset enthält, wird die Zeitmarke mithilfe dieses Offsets angepasst. Beispiel: 2021-03-18T03:00:00.0-02:00 wird in 2021-03-18 05:00:00.000000konvertiert.
Beginn der ÄnderungbooleschEnde der Änderung Beginn der Änderung BOOLEAN Ende der Änderung Beginn der ÄnderungEin boolescher JSON-Wert wird als boolescher Wert zurückgegeben. Ende der Änderung
boolesch

CHAR
VARCHAR
CLOB
GRAPHIC
VARGRAPHIC
DBCLOB
Ein boolescher JSON-Wert wird in eine true -oder false -Zeichenfolge konvertiert und unter Verwendung der Konvertierungsregeln für JSON-Zeichenfolgen als Zeichenfolge zurückgegeben.
Beginn der ÄnderungbooleschEnde der Änderung Beginn der Änderung

SMALLINT
INTEGER
BIGINT
DECFLOAT
Ende der Änderung
Beginn der ÄnderungEin boolescher JSON-Wert wird als numerischer Wert 0 (falsch) oder 1 (wahr) zurückgegeben.Ende der Änderung
Array oder Objekt
Char
VARCHAR
CLOB
GRAPHIC
VARGRAPHIC
DBCLOB
Muss mit einer FORMAT JSON-Spalte zurückgegeben werden. JSON-Arrays oder -Objekte werden als Zeichenfolgen im JSON-Format zurückgegeben. Die resultierende Konvertierung ist dieselbe wie bei Zeichenfolgetypen.
Null Beliebig Ein JSON-Nullwert wird in einen SQL-Nullwert konvertiert.

Beispiele

Diese Beispiele beziehen sich auf das folgende JSON-Dokument:
{ 
  "id" : 901,
  "name" : { "first":"John", "last":"Doe" },
  "phones": [ { "type":"home", "number":"555-3762"},
              { "type":"work", "number":"555-8792"}]
}
  • Listen Sie die Mitarbeiter-ID, den Vornamen, den Nachnamen sowie den ersten Telefontyp und die erste Telefonnummer auf:
    SELECT U."id", U."first name",U."last name",U."phone type",U."phone number"
      FROM EMPLOYEE_TABLE E,
        JSON_TABLE(E.jsondoc, 
                   'lax $'
                   COLUMNS( "id" INTEGER,
                            "first name"  VARCHAR(20) PATH 'lax $.name.first',
                            "last name"   VARCHAR(20) PATH 'lax $.name.last',
                            "phone type"  VARCHAR(20) PATH 'lax $.phones[0].type',
                            "phone number"  VARCHAR(20) PATH 'lax $.phones[0].number')
                          ) AS U
    Rückgaben:
    id    first name    last name    phone type    phone number
    ---   ----------    ---------    ----------    ------------
    901   John          Doe          home          555-3762
    
  • Listen Sie die Mitarbeiter-ID, den Vornamen, den Nachnamen und alle verfügbaren Telefontypen und -nummern auf:
    SELECT U."id", U."first name",U."last name",U."phone type",U."number" AS "phone number"
      FROM EMPLOYEE_TABLE E,
        JSON_TABLE(E.jsondoc, 
                   'lax $'
                    COLUMNS( "id" INTEGER,
                             "first name"  VARCHAR(20) PATH 'lax $.name.first',
                             "last name"   VARCHAR(20) PATH 'lax $.name.last',
                             NESTED PATH 'lax $.phones[*]'
                               COLUMNS (
                                        "phone type"  VARCHAR(20) PATH 'lax $.type',
                                        "number"  VARCHAR(20) )
                                            )
                            ) AS U
    Rückgaben:
    id    first name    last name    phone type    phone number
    ---   ----------    ---------    ----------    ------------
    901   John          Doe          home          555-3762
    901   John          Doe          work          555-8792