Daten aus Dateien in der Cloud laden

Das PL/SQL-Package DBMS_CLOUD unterstützt das Laden von Daten aus Dateien in der Cloud in Tabellen, die in Ihrer autonomen KI-Datenbank auf einer dedizierten Exadata-Infrastruktur erstellt wurden.

Sie können Daten aus verschiedenen Dateiformaten mit den folgenden PL/SQL-Prozeduren laden, welche von DBMS_CLOUD bereitgestellt werden:

Stellen Sie vor dem Laden der Daten aus den Dateien Folgendes sicher:

Das Package DBMS_CLOUD unterstützt Das Laden von Dateien in den folgenden Cloud-Services: Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure Object Storage Classic, Azure Blob Storage und Amazon S3.

Zugangsdaten erstellen

Hier erfahren Sie, wie Sie Ihre Cloud-Objektspeicher-Zugangsdaten mit dem Verfahren DBMS_CLOUD.CREATE_CREDENTIAL speichern.

Ausführen Sie die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL mit einem beliebigen Datenbanktool wie SQL*Plus, SQL Developer oder Database Actions (webbasiertes SQL Developer-Tool). Beispiel:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@oracle.com',
    password => 'password'
  );
END;
/

Die Werte, die Sie für username und password angeben, hängen vom verwendeten Cloud-Objektspeicherservice ab:

Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, es sei denn, Ihre Objektspeicherzugangsdaten werden geändert. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für alle Dataloads verwenden.

Daten aus Textdateien laden

Erfahren Sie, wie Sie Daten mit der Prozedur DBMS_CLOUD.COPY_DATA aus Textdateien in der Cloud in Ihre autonome KI-Datenbank laden.

Die Quelldatei in diesem Beispiel channels.txt enthält die folgenden Daten:

S,Direct Sales,Direct
T,Tele Sales,Direct
C,Catalog,Indirect
I,Internet,Indirect
P,Partners,Others
  1. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CREDENTIAL.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen.</span>

  2. Erstellen Sie die Tabelle, die die Daten enthält. Beispiel:

     CREATE TABLE CHANNELS
       (channel_id CHAR(1),
         channel_desc VARCHAR2(20),
         channel_class VARCHAR2(20)
       );
     /
    
  3. Laden Sie Daten mit der Prozedur DBMS_CLOUD.COPY_DATA in der Tabelle. Beispiel:

     BEGIN
      DBMS_CLOUD.COPY_DATA(
        table_name =>'CHANNELS',
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/channels.txt',
        format => json_object('delimiter' value ',')
      );
     END;
     /
    
    

    Parameter:

    • table_name: Der Name der Zieltabelle.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: Eine durch Komma getrennte Liste der Quelldateien, die Sie laden möchten.

      In diesem Beispiel ist file_uri_list eine Oracle Cloud Infrastructure-Swift-URI, die die Datei channels.txt im Bucket mybucket in der Region us-phoenix-1 angibt. (idthydc0kinr ist der Objektspeicher-Namespace, in dem sich der Bucket befindet.) Informationen zu den unterstützten URI-Formaten finden Sie unter URI-Formate für Cloud-Objektspeicher.

    • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben. Informationen zu den Formatoptionen, die Sie angeben können, finden Sie unter Formatparameter.

JSON-Datei mit Dokumenten mit Begrenzungszeichen in eine Collection laden

Erfahren Sie, wie Sie eine JSON-Datei mit durch Trennzeichen getrennten Dokumenten mit der Prozedur DBMS_CLOUD.COPY_DATA in eine Collection in Ihrer autonomen KI-Datenbank laden.

In diesem Beispiel werden JSON-Werte aus einer zeilenbegrenzten Datei geladen und die JSON-Datei myCollection.json verwendet. Jeder Wert, jede Zeile, wird als einzelnes Dokument in eine Sammlung in Ihrer autonomen KI-Datenbank geladen.

Nachfolgend finden Sie ein Beispiel für eine solche Datei. Es enthält drei Zeilen mit einem Objekt pro Zeile. Jedes dieser Objekte wird als separates JSON-Dokument geladen.

{ "name" : "apple", "count": 20 }
{ "name" : "orange", "count": 42 }
{ "name" : "pear", "count": 10 }

Vorgehensweise

  1. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen.

  2. Laden Sie Daten mit der Prozedur DBMS_CLOUD.COPY_DATA in eine Collection. Beispiel:

     BEGIN 
       DBMS_CLOUD.COPY_COLLECTION(
         collection_name =>'fruit',
         credential_name =>'DEF_CRED_NAME',
         file_uri_list =>'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/fruit_bucket/o/myCollection.json',
         format => json_object('recorddelimiter' value '''\n''')
       );
     END;
     /
    

    Parameter:

    • collection_name: Der Name der Ziel-Collection.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: Eine durch Komma getrennte Liste der Quelldateien, die Sie laden möchten.

      In diesem Beispiel ist file_uri_list eine Oracle Cloud Infrastructure-Swift-URI, die die Datei myCollection.json im Bucket mybucket in der Region us-phoenix-1 angibt. Informationen zu den unterstützten URI-Formaten finden Sie unter URI-Formate für Cloud-Objektspeicher.

    • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben. Die Formatoptionen characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarray werden zum Laden von JSON-Daten unterstützt. Alle anderen angegebenen Formate führen zu einem Fehler. Informationen zu den Formatoptionen, die Sie angeben können, finden Sie unter Formatparameter.

Array von JSON-Dokumenten in eine Collection laden

Erfahren Sie, wie Sie mit der Prozedur DBMS_CLOUD.COPY_COLLECTION ein Array von JSON-Dokumenten in eine Sammlung in Ihrer autonomen KI-Datenbank laden.

In diesem Beispiel wird die JSON-Datei fruit_array.json verwendet. Im Folgenden wird der Inhalt der Datei fruit_array.json angezeigt:

[{"name" : "apple", "count": 20 },
 {"name" : "orange", "count": 42 },
 {"name" : "pear", "count": 10 }]

Vorgehensweise

  1. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen.

  2. Laden Sie Daten mit der Prozedur DBMS_CLOUD.COPY_DATA in eine Collection. Beispiel:

     BEGIN 
       DBMS_CLOUD.COPY_COLLECTION(    
         collection_name => 'fruits',    
         credential_name => 'DEF_CRED_NAME',    
         file_uri_list => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/json/o/fruit_array.json',
         format => '{"recorddelimiter" : "0x''01''", "unpackarrays" : "TRUE", "maxdocsize" : "10240000"}'
       );
     END;
     /
    

    In diesem Beispiel laden Sie einen einzelnen JSON-Wert, der die gesamte Datei belegt. Daher muss kein Datensatzbegrenzungszeichen angegeben werden. Um anzugeben, dass es kein Datensatzbegrenzungszeichen gibt, können Sie ein Zeichen verwenden, das nicht in der Eingabedatei vorkommt. Beispiel: Sie können den Wert "0x''01''" verwenden, da dieses Zeichen nicht direkt im JSON-Text vorkommt.

    Wenn der Parameter unpackarrays für den Formatwert auf TRUE gesetzt ist, wird das Array von Dokumenten als einzelne Dokumente und nicht als ganzes Array geladen. Das Auspacken von Arrayelementen ist jedoch auf eine einzelne Ebene beschränkt. Wenn verschachtelte Arrays in den Dokumenten vorhanden sind, werden diese Arrays nicht entpackt.

    Parameter:

    • collection_name: Der Name der Ziel-Collection.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: Eine durch Komma getrennte Liste der Quelldateien, die Sie laden möchten.

      In diesem Beispiel ist file_uri_list eine Oracle Cloud Infrastructure-Swift-URI, die die Datei myCollection.json im Bucket mybucket in der Region us-phoenix-1 angibt. Informationen zu den unterstützten URI-Formaten finden Sie unter URI-Formate für Cloud-Objektspeicher.

    • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben. Die Formatoptionen characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarray werden zum Laden von JSON-Daten unterstützt. Alle anderen angegebenen Formate führen zu einem Fehler. Informationen zu den Formatoptionen, die Sie angeben können, finden Sie unter Formatparameter.

    Wenn Sie fruit_array.json mit DBMS_CLOUD.COPY_COLLECTION und der Formatoption unpackarrays laden, erkennt die Prozedur Arraywerte in der Quelle. Anstatt die Daten standardmäßig als einzelnes Dokument zu laden, werden die Daten daher in die Collection fruits mit jedem Wert im Array als einzelnes Dokument geladen.

JSON-Daten in eine vorhandene Tabelle kopieren

Verwenden Sie DBMS_CLOUD.COPY_DATA, um JSON-Daten in die Cloud in eine Tabelle zu laden.

Die Quelldatei in diesem Beispiel ist eine JSON-Datendatei.

Vorgehensweise

  1. Speichern Sie die Zugangsdaten für den Objektspeicher mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL. Beispiel:

     SET DEFINE OFF
     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
         username => 'adb_user@example.com',
         password => 'password'
       );
     END;
     /
    

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, es sei denn, Ihre Objektspeicherzugangsdaten werden geändert. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für alle Dataloads verwenden.

    Ausführliche Informationen zu den Parametern finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Laden Sie JSON-Daten mit der Prozedur DBMS_CLOUD.COPY_DATA in eine vorhandene Tabelle.

    Beispiel:

     CREATE TABLE WEATHER2
         (WEATHER_STATION_ID VARCHAR2(20),
          WEATHER_STATION_NAME VARCHAR2(50));
     /
    
     BEGIN
       DBMS_CLOUD.COPY_DATA(
           table_name      => 'WEATHER2',
           credential_name => 'DEF_CRED_NAME',
           file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/jsonfiles*',
           format          =>  JSON_OBJECT('type' value 'json', 'columnpath' value '["$.WEATHER_STATION_ID",
               "$.WEATHER_STATION_NAME"]')
         );
     END;
     /
    

    Parameter:

    • table_name: Der Name der Zieltabelle.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: Eine durch Komma getrennte Liste der Quelldateien, die Sie laden möchten. Sie können Platzhalter in den Dateinamen in den URIs verwenden. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen verwendet werden, das Zeichen "?" kann als Platzhalter für ein einzelnes Zeichen verwendet werden.

    • format: Für DBMS_CLOUD.COPY_DATA mit JSON-Daten lautet die type json. Geben Sie andere Formatwerte an, um die Optionen zur Beschreibung des Formats der JSON-Quelldatei zu definieren. Weitere Informationen finden Sie unter Optionen für DBMS_CLOUD-Packageformat.

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Ausführliche Informationen zu den Parametern finden Sie unter COPY_DATA-Prozedur.

Dataloads überwachen und Fehler beheben

Alle mit dem PL/SQL-Package DBMS_CLOUD ausgeführten Dataload-Vorgänge werden in den Tabellen dba_load_operations und user_load_operations protokolliert:

Fragen Sie diese Tabellen ab, um Informationen zu laufenden und abgeschlossenen Dataloads anzuzeigen. Beispiel: Wenn Sie eine SELECT-Anweisung mit einem WHERE-Klauselprädikat für die Spalte TYPE verwenden, werden Ladevorgänge mit dem Typ COPY angezeigt:

SELECT table_name, owner_name, type, status, start_time, update_time, logfile_table, badfile_table
  FROM user_load_operations WHERE type = 'COPY';
TABLE_NAME OWNER_NAME  TYPE   STATUS     START_TIME                            UPDATE_TIME                          LOGFILE_TABLE   BADFILE_TABLE
---------- ----------- ------- ---------- ---------------------- --------------------- --------------- ------------- ------------- -------------
CHANNELS   SH          COPY   COMPLETED  04-MAR-21 07.38.30.522711000 AM GMT    04-MAR-21 07.38.30.522711000 AM GMT  COPY$1_LOG     COPY$1_BAD

In der Spalte LOGFILE_TABLE wird der Name der Tabelle angezeigt, die Sie abfragen können, um das Log eines Ladevorgangs anzuzeigen. Beispiel: Die folgende Abfrage zeigt das Log des Ladevorgangs an:

select * from COPY$21_LOG;

In der Spalte BADFILE_TABLE wird der Name der Tabelle angezeigt, die Sie abfragen können, um die Zeilen anzuzeigen, die beim Laden fehlerhaft waren. Beispiel: Die folgende Abfrage zeigt die abgelehnten Datensätze für den Ladevorgang an:

select * from COPY$21_BAD;

Je nach den im Log angezeigten Fehlern und den in der angegebenen BADFILE_TABLE-Tabelle angezeigten Zeilen können Sie den Fehler korrigieren, indem die richtigen Formatoptionen in DBMS_CLOUD.COPY_DATA angegeben werden.

Hinweis: Die Tabellen LOGFILE_TABLE und BADFILE_TABLE werden für jeden Ladevorgang zwei Tage gespeichert und dann automatisch entfernt.

dbmscloud-for-objects-and-files.md#GUID-CEC0CA63-B77F-4D64-B70F-1E8476AE3ED6

Informationen zum Löschen der Tabelle user_load_operations finden Sie unter DELETE_ALL_OPERATIONS-Prozedur.

JSON-Textobjekte, die erweiterte skalare Werte darstellen

Native binäre JSON-Daten (OSON-Format) erweitern die JSON-Sprache, indem skalare Typen hinzugefügt werden, wie Datum, die SQL-Typen entsprechen und nicht Teil des JSON-Standards sind. Oracle Database unterstützt auch die Verwendung von textuellen JSON-Objekten, die JSON-skalare Werte repräsentieren, einschließlich solcher Nicht-Standardwerte.

Wenn Sie native binäre JSON-Daten aus textuellen JSON-Daten erstellen, die solche erweiterten Objekte enthalten, können diese optional durch entsprechende (native binäre) JSON-skalare Werte ersetzt werden.

Ein Beispiel für ein erweitertes Objekt ist {"$numberDecimal":31}. Sie stellt einen skalaren JSON-Wert des vom Standard abweichenden Typs Dezimalzahl dar und wird als solche interpretiert durch eine Dezimalzahl im nativen Binärformat ersetzt.

Beispiel: Wenn Sie den JSON-Datentypkonstruktor JSON verwenden und das Schlüsselwort EXTENDED verwenden, werden erkannte erweiterte Objekte in der Texteingabe durch entsprechende skalare Werte im nativen JSON-Binärergebnis ersetzt. Wenn Sie das Schlüsselwort EXTENDED nicht angeben, erfolgt keine solche Ersetzung. Die textuellen erweiterten JSON-Objekte werden einfach unverändert in JSON-Objekte im nativen Binärformat konvertiert.

Wenn Sie die SQL/JSON-Funktion json_serialize verwenden, um binäre JSON-Daten als JSON-Textdaten (VARCHAR2, CLOB oder BLOB) zu serialisieren, können Sie das Schlüsselwort EXTENDED verwenden, um skalare JSON-Werte (native Binärdaten) durch entsprechende erweiterte JSON-Textobjekte zu ersetzen.

Hinweis: Wenn die von Ihnen verwendete Datenbank eine Oracle Autonomous AI Database ist, können Sie mit der PL/SQL-Prozedur DBMS_CLOUD.copy_collection eine JSON-Dokumentsammlung aus einer Datei mit JSON-Daten erstellen, wie sie von gängigen NoSQL-Datenbanken, einschließlich Oracle NoSQL Database, erstellt wird.

Wenn Sie ejson als Wert des Parameters type der Prozedur verwenden, werden erkannte erweiterte JSON-Objekte in der Eingabedatei durch entsprechende skalare Werte in der resultierenden nativen JSON-Binärsammlung ersetzt. In der anderen Richtung können Sie die Funktion json_serialize mit dem Schlüsselwort EXTENDED verwenden, um skalare Werte durch erweiterte JSON-Objekte in den resultierenden JSON-Textdaten zu ersetzen.

Dies sind die beiden wichtigsten Anwendungsfälle für erweiterte Objekte:

Zum Austausch können Sie JSON-Daten aus einer Datei aufnehmen, die von gängigen NoSQL-Datenbanken, einschließlich Oracle NoSQL Database, erstellt wurde, und erweiterte Objekte in native binäre JSON-Skalare konvertieren. In der anderen Richtung können Sie native binäre JSON-Daten als Textdaten exportieren und Oracle-spezifische skalare JSON-Werte durch entsprechende erweiterte JSON-Textobjekte ersetzen.

Tipp: Als Beispiel für eine Prüfung sollten Sie ein Objekt wie {"dob" : "2000-01-02T00:00:00"} als Ergebnis der Serialisierung nativer JSON-Daten betrachten. Ist "2000-01-02T00:00:00" das Ergebnis der Serialisierung eines nativen Binärwerts vom Typ "date" oder ist der native Binärwert nur eine Zeichenfolge? Wenn Sie json_serialize mit dem Schlüsselwort EXTENDED verwenden, wissen Sie Bescheid.

Die Zuordnung von erweiterten Objektfeldern zu skalaren JSON-Typen ist im Allgemeinen Eins-zu-Eins: Mehr als eine Art erweitertes JSON-Objekt kann einem bestimmten skalaren Wert zugeordnet werden. Beispiel: Die erweiterten JSON-Objekte {"$numberDecimal":"31"} und {"$numberLong:"31"} werden beide als Wert 31 der skalaren Typnummer in JSON-Sprache übersetzt, und die Elementmethode type() gibt für jeden dieser JSON-Skalare "number" zurück.

Elementmethode type() meldet den skalaren Typ der JSON-Sprache des Zielwerts (als JSON-Zeichenfolge). Einige skalare Werte können intern unterschieden werden, selbst wenn sie denselben skalaren Typ aufweisen. Dadurch kann die Funktion json_serialize (mit Schlüsselwort EXTENDED) das ursprüngliche erweiterte JSON-Objekt rekonstruieren. Solche skalaren Werte werden intern entweder durch die Verwendung von verschiedenen SQL-Typen zur Implementierung oder durch Tagging mit der Art des erweiterten JSON-Objekts unterschieden, von dem sie abgeleitet wurden.

Wenn json_serialize das ursprüngliche erweiterte JSON-Objekt rekonstruiert, ist das Ergebnis nicht immer textuell identisch mit dem Original, sondern immer semantisch äquivalent. Beispiel: {"$numberDecimal":"31"} und {"$numberDecimal":31} sind semantisch äquivalent, obwohl sich die Feldwerte im Typ (Zeichenfolge und Zahl) unterscheiden. Sie werden in denselben internen Wert übersetzt, und jeder wird als abgeleitet von einem erweiterten $numberDecimal-Objekt (dem gleichen Tag) getaggt. Bei der Serialisierung lautet das Ergebnis für beide jedoch {"$numberDecimal":31}. Oracle verwendet immer den direkt relevantesten Typ für den Feldwert. In diesem Fall ist dies der JSON-Sprachwert 31 mit der skalaren Typnummer.

Die folgende Tabelle enthält Korrespondenzen zwischen den verschiedenen verwendeten Typen. Es wird (1) Typen erweiterter Objekte zugeordnet, die als Eingabe verwendet werden, (2) Typen, die von der Elementmethode type() gemeldet werden, (3) intern verwendete SQL-Typen, (4) standardmäßige JSON-Sprachtypen, die als Ausgabe von Funktion json_serialize verwendet werden, und (5) Typen erweiterter Objekte, die von json_serialize ausgegeben werden, wenn Schlüsselwort EXTENDED angegeben wird.

Erweiterter Objekttyp (Eingabe) Skalarer Oracle JSON-Typ (gemeldet nach type()) SQL-Skalart JSON-Standardskalartyp (Ausgabe) Erweiterter Objekttyp (Ausgabe)
$numberDouble mit dem Wert einer JSON-Nummer, einer Zeichenfolge, die für die Zahl steht, oder einer dieser Zeichenfolgen: "Infinity", "-Infinity", "Inf", "-Inf", "Nan"(Siehe Fußnote 1) double (Double-Datentyp) BINARY_DOUBLE Zahl $numberDouble mit dem Wert einer JSON-Nummer oder einer der folgenden Zeichenfolgen: "Inf", "-Inf", "Nan"(Siehe Fußnote 2)
$numberFloat mit demselben Wert wie für $numberDouble Fließkomma BINARY_FLOAT Zahl $numberFloat mit demselben Wert wie für $numberDouble
$numberDecimal mit demselben Wert wie für $numberDouble Zahl NUMBER Zahl $numberDecimal mit demselben Wert wie für $numberDouble
$numberInt mit dem Wert einer vorzeichenbehafteten 32-Bit-Ganzzahl oder einer Zeichenfolge, die für die Zahl steht Zahl NUMBER Zahl $numberInt mit demselben Wert wie für $numberDouble
$numberLong mit dem Wert einer JSON-Nummer oder einer Zeichenfolge, die für die Zahl steht Zahl NUMBER Zahl $numberLong mit demselben Wert wie für $numberDouble

$binary mit einem der folgenden Werte:

  • eine Zeichenfolge mit Basis-64 Zeichen
  • Ein Objekt mit den Feldern base64 und subType, dessen Werte eine Zeichenfolge mit Basis-64-Zeichen und die Zahl 0 (willkürliche Binärdatei) bzw. 4 (UUID) sind

Wenn es sich bei dem Wert um eine Zeichenfolge mit Basis-64-Zeichen handelt, kann das erweiterte Objekt auch das Feld $subtype mit dem Wert 0 oder 4 aufweisen, das als Ganzzahl (0-255) oder Hexadezimalzeichenfolge mit 2 Zeichen angegeben wird, die eine solche Ganzzahl darstellt.

binär BLOB oder RAW

string (Zeichenfolgendatentyp)

Die Konvertierung entspricht der Verwendung der SQL-Funktion rawtohex.

Eine der folgenden Optionen:
  • $binary mit Wert und einer Zeichenfolge mit 64 Basiszeichen
  • $rawid mit einem Wert von 32 Hexadezimalzeichen, wenn die Eingabe einen subType-Wert von 4 (UUID) aufweist
$oid mit einem Wert und einer Zeichenfolge von 24 Hexadezimalzeichen binär RAW(12)

string (Zeichenfolgendatentyp)

Die Konvertierung entspricht der Verwendung der SQL-Funktion rawtohex.

$rawid mit einem Wert und einer Zeichenfolge von 24 Hexadezimalzeichen
$rawhex mit Wert einer Zeichenfolge mit einer geraden Anzahl von Hexadezimalzeichen binär RAW

string (Zeichenfolgendatentyp)

Die Konvertierung entspricht der Verwendung der SQL-Funktion rawtohex.

$binary mit Wert einer Zeichenfolge mit 64 Basiszeichen, rechts mit = Zeichen aufgefüllt
$rawid mit einem Wert aus 24 oder 32 Hexadezimalzeichen binär RAW

string (Zeichenfolgendatentyp)

Die Konvertierung entspricht der Verwendung der SQL-Funktion rawtohex.

$rawid
$oracleDate mit Wert und ISO 8601-Datumszeichenfolge Datum DATE string (Zeichenfolgendatentyp) $oracleDate mit Wert und ISO 8601-Datumszeichenfolge
$oracleTimestamp mit Wert und ISO 8601-Zeitstempelzeichenfolge Zeitstempel TIMESTAMP string (Zeichenfolgendatentyp) $oracleTimestamp mit Wert und ISO 8601-Zeitstempelzeichenfolge
$oracleTimestampTZ mit dem Wert einer ISO 8601-Zeitstempelzeichenfolge mit einem numerischen Zeitzonendifferenzwert oder mit Z Zeitstempel mit Zeitzone TIMESTAMP WITH TIME ZONE string (Zeichenfolgendatentyp) $oracleTimestampTZ mit dem Wert einer ISO 8601-Zeitstempelzeichenfolge mit einem numerischen Zeitzonendifferenzwert oder mit Z

$date mit einem der folgenden Werte:

  • Eine Ganzzahl in Millisekundenanzahl seit dem 1. Januar 1990
  • Eine ISO 8601-Zeitstempelzeichenfolge
  • Ein Objekt mit Feld numberLong mit einer Ganzzahl in Millisekundenanzahl seit dem 1. Januar 1990
Zeitstempel mit Zeitzone TIMESTAMP WITH TIME ZONE string (Zeichenfolgendatentyp) $oracleTimestampTZ mit dem Wert einer ISO 8601-Zeitstempelzeichenfolge mit einem numerischen Zeitzonendifferenzwert oder mit Z
$intervalDaySecond mit dem Wert einer ISO 8601-Intervallzeichenfolge, wie für die SQL-Funktion to_dsinterval angegeben Tagessekundenintervall INTERVAL DAY TO SECOND string (Zeichenfolgendatentyp) $intervalDaySecond mit dem Wert einer ISO 8601-Intervallzeichenfolge, wie für die SQL-Funktion to_dsinterval angegeben
$intervalYearMonth mit dem Wert einer ISO 8601-Intervallzeichenfolge, wie für die SQL-Funktion to_yminterval angegeben JahresmonatIntervall INTERVAL YEAR TO MONTH string (Zeichenfolgendatentyp) $intervalYearMonth mit dem Wert einer ISO 8601-Intervallzeichenfolge, wie für die SQL-Funktion to_yminterval angegeben

Zwei Felder:

  • Feld $vector mit dem Wert eines Arrays, dessen Elemente Zahlen oder die Zeichenfolgen "Nan", "Inf" und "-Inf" sind (was Nicht-Zahlen- und Unendlichkeitswerte darstellt).

  • Feld $vectorElementType mit Zeichenfolgenwert "float32" oder "float64". Diese entsprechen IEEE-32-Bit- und IEEE-64-Bit-Zahlen.

Vektor VECTOR Zahlenarray

Zwei Felder:

  • Feld $vector mit einem Wert eines Arrays, dessen Elemente Zahlen oder die Zeichenfolgen "Nan", "Inf" und "-Inf" sind (was Nicht-Zahlen- und Unendlichkeitswerte darstellt).

  • Feld $vectorElementType mit Zeichenfolgenwert "float32" oder "float64".

Fußnote 1 Die Zeichenfolgenwerte werden ohne Berücksichtigung der Groß-/Kleinschreibung interpretiert. Beispiel: "NAN" "nan" und "nAn" werden akzeptiert und gleichwertig sowie "INF", "inFinity" und "iNf". Unendlich große ("Infinity" oder "Inf") und kleine ("-Infinity" oder "-Inf") Zahlen werden entweder mit dem vollständigen Wort oder der Abkürzung akzeptiert.

Fußnote 2 Bei der Ausgabe werden nur diese Zeichenfolgenwerte verwendet. Keine Infinity-Varianten mit vollem Wort oder Groß-/Kleinschreibung.

Verwandte Inhalte