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:
-
Textdateien in der Cloud mit der Prozedur
DBMS_CLOUD.COPY_DATA -
JSON-Dateien in der Cloud mit der Prozedur
DBMS_CLOUD.COPY_TEXT
Stellen Sie vor dem Laden der Daten aus den Dateien Folgendes sicher:
-
Die Quelldatei ist als lokale Datei auf Ihrem Clientrechner oder in einem cloudbasierten Objektspeicher wie Oracle Cloud Infrastructure Object Storage verfügbar, und der Datenbankbenutzer kann Daten laden.
-
Die Zugangsdaten für Cloud-Objektspeicher wurden mit der Prozedur
DBMS_CLOUD.CREATE_CREDENTIALgespeichert. Weitere Informationen finden Sie unter Zugangsdaten erstellen.
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:
-
Oracle Cloud Infrastructure Object Storage:
usernameist Ihr Oracle Cloud Infrastructure-Benutzername undpasswordIhr Oracle Cloud Infrastructure-Authentifizierungstoken. Siehe Mit Authentifizierungstoken arbeiten. -
Oracle Cloud Infrastructure Object Storage Classic:
usernameist Ihr Oracle Cloud Infrastructure Classic-Benutzername undpasswordIhr Oracle Cloud Infrastructure Classic-Kennwort.
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
-
Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur
DBMS_CREDENTIAL.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen.</span> -
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) ); / -
Laden Sie Daten mit der Prozedur
DBMS_CLOUD.COPY_DATAin 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_listeine Oracle Cloud Infrastructure-Swift-URI, die die Dateichannels.txtim Bucketmybucketin der Regionus-phoenix-1angibt. (idthydc0kinrist 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
-
Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur
DBMS_CLOUD.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen. -
Laden Sie Daten mit der Prozedur
DBMS_CLOUD.COPY_DATAin 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_listeine Oracle Cloud Infrastructure-Swift-URI, die die DateimyCollection.jsonim Bucketmybucketin der Regionus-phoenix-1angibt. 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 Formatoptionencharacterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarraywerden 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
-
Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur
DBMS_CLOUD.CREATE_CREDENTIAL. Weitere Informationen finden Sie unter Zugangsdaten erstellen. -
Laden Sie Daten mit der Prozedur
DBMS_CLOUD.COPY_DATAin 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
unpackarraysfür den Formatwert aufTRUEgesetzt 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_listeine Oracle Cloud Infrastructure-Swift-URI, die die DateimyCollection.jsonim Bucketmybucketin der Regionus-phoenix-1angibt. 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 Formatoptionencharacterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarraywerden 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.jsonmitDBMS_CLOUD.COPY_COLLECTIONund der Formatoptionunpackarraysladen, erkennt die Prozedur Arraywerte in der Quelle. Anstatt die Daten standardmäßig als einzelnes Dokument zu laden, werden die Daten daher in die Collectionfruitsmit 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
-
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.
-
Laden Sie JSON-Daten mit der Prozedur
DBMS_CLOUD.COPY_DATAin 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ürDBMS_CLOUD.COPY_DATAmit JSON-Daten lautet dietypejson. 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-stringder Oracle Cloud Infrastructure-Objektspeicher-Namespace undbucketnameder 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:
-
dba_load_operations: Zeigt alle Ladevorgänge an. -
user_load_operations: Zeigt die Ladevorgänge in Ihrem Schema an.
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:
-
Austausch (Import/Export):
-
Nehmen Sie vorhandene JSON-Daten (von irgendwo) auf, die erweiterte Objekte enthalten.
-
Serialisieren Sie native binäre JSON-Daten als Text-JSON-Daten mit erweiterten Objekten, für eine Verwendung außerhalb der Datenbank.
-
-
Inspektion von nativen binären JSON-Daten: Sehen Sie sich die entsprechenden erweiterten Objekte an.
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 |
Wenn es sich bei dem Wert um eine Zeichenfolge mit Basis-64-Zeichen handelt, kann das erweiterte Objekt auch das Feld |
binär | BLOB oder RAW |
string (Zeichenfolgendatentyp) Die Konvertierung entspricht der Verwendung der SQL-Funktion |
Eine der folgenden Optionen:
|
$oid mit einem Wert und einer Zeichenfolge von 24 Hexadezimalzeichen |
binär | RAW(12) |
string (Zeichenfolgendatentyp) Die Konvertierung entspricht der Verwendung der SQL-Funktion |
$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 |
$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 |
$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 |
|
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:
|
Vektor | VECTOR |
Zahlenarray | Zwei Felder:
|
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.