SnowConvert: Funktionsreferenzen für Oracle¶
DATEDIFF_UDF(TIMESTAMP, NUMBER)¶
Definition¶
Diese benutzerdefinierte Funktion (User-Defined Function, UDF) wird verwendet, um eine Zahl
(die eine Anzahl von Tagen ist) von einem timestamp
zu subtrahieren.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM NUMBER)
Parameter¶
FIRST_PARAM
TIMESTAMP
Der timestamp
, der den Minuenden darstellt.
SECOND_PARAM
NUMBER
Die Anzahl der Tage, die den Subtrahenden darstellt.
Rückgabewerte¶
Gibt einen Zeitstempel mit der Differenz zwischen dem timestamp
und der number
zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800', 3);
Ausgabe:
2024-01-23
DATEDIFF_UDF(TIMESTAMP, DATE)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um ein date
von einem timestamp
zu subtrahieren.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM DATE)
Parameter¶
FIRST_PARAM
TIMESTAMP
Der timestamp
, der den Minuenden darstellt.
SECOND_PARAM
DATE
Das date
, das den Subtrahenden darstellt.
Rückgabewerte¶
Gibt eine Ganzzahl mit der Differenz zwischen dem timestamp
und dem date
zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800', TO_DATE('2023-01-26'));
Ausgabe:
365
DATE_TO_JULIAN_DAYS_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) transformiert ein gregorianisches Datum in ein julianisches Datum (Die Anzahl der Tage seit dem 1. Januar 4712 BC).
PUBLIC.DATE_TO_JULIAN_DAYS_UDF(INPUT_DATE DATE)
Parameter¶
INPUT_DATE
DATE
Das zu transformierende gregorianische Datum.
Rückgabewerte¶
Gibt die Datumsdarstellung des julianischen Datums zurück.
Migrationsbeispiel¶
Eingabe:
Select TO_CHAR(SYSDATE, 'J') as A from DUAL;
Ausgabe:
Select
PUBLIC.DATE_TO_JULIAN_DAYS_UDF(CURRENT_TIMESTAMP()) as A from DUAL;
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATE_TO_JULIAN_DAYS_UDF(DATE '1998-12-25');
Ausgabe:
2451173
UTL_FILE.PUT_LINE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität der Oracle-Prozedur UTL_FILE_PUT_LINE zu replizieren.
UTL_FILE.PUT_LINE_UDF(FILE VARCHAR,BUFFER VARCHAR)
Parameter¶
FILE
VARCHAR
Die Datei zum Öffnen und Speichern des neuen Puffers.
BUFFER
VARCHAR
Der Puffer, der in der definierten Datei gespeichert werden soll.
Rückgabewerte¶
Gibt ein varchar mit dem Ergebnis zurück.
Verwendungsbeispiel¶
Warnung
Um die Zeilen in der Datei zu überprüfen, gibt es zwei Möglichkeiten: Laden Sie die Datei von der Snowflake-CLI herunter, oder sehen Sie sich die Informationen kurz mit SELECT * FROM UTL_FILE.FOPEN_TABLES_LINES;
an, aber nur, wenn die Datei nicht geschlossen wurde.
Eingabe:
CREATE OR REPLACE PROCEDURE PROC()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
file_data VARIANT;
BEGIN
CALL UTL_FILE.FOPEN_UDF('test2.csv','a');
SELECT
*
INTO
file_data
FROM
TABLE(RESULT_SCAN(LAST_QUERY_ID()));
CALL UTL_FILE.PUT_LINE_UDF(:file_data,'New line');
CALL UTL_FILE.FCLOSE_UDF(:file_data);
END
$$;
CALL PROC();
Ausgabe:
null
UTL_FILE.FOPEN_UDF (VARCHAR,VARCHAR)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität der Oracle-Prozedur UTL_FILE_FOPEN
zu replizieren.
UTL_FILE.FOPEN_UDF(FILENAME VARCHAR,OPEN_MODE VARCHAR)
Parameter¶
FILENAME
VARCHAR
Die zu öffnende Datei.
OPEN_MODE
VARCHAR
Zeigt den Modus an, in dem die Datei verfügbar sein wird.
Rückgabewerte¶
Gibt ein varchar mit dem Ergebnis zurück.
Verwendungsbeispiel¶
Warnung
Mit UTL_FILE.FOPEN_UDF
können Sie eine .csv-Datei öffnen. Um auf die Datei zuzugreifen, müssen Sie eine stage
für die Datei erstellen und die Snowflake-CLI verwenden, um sie hochzuladen.
Eingabe:
CREATE OR REPLACE PROCEDURE PROC()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
file_data VARIANT;
BEGIN
CALL UTL_FILE.FOPEN_UDF('test2.csv','a');
SELECT
*
INTO
file_data
FROM
TABLE(RESULT_SCAN(LAST_QUERY_ID()));
END
$$;
CALL PROC();
Ausgabe:
null
JSON_VALUE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) reproduziert die Funktion JSON_VALUE, um ein einzelnes Ergebnis aus einer JSON-Variablen zu extrahieren.
JSON_VALUE_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING, RETURNING_TYPE STRING, ON_ERROR_MESSAGE VARIANT, ON_EMPTY_MESSAGE VARIANT)
Parameter¶
JSON_OBJECT
VARIANT
Die JSON-Variable, aus der die Werte extrahiert werden sollen.
JSON_PATH
STRING
Der JSON-Pfad, der angibt, wo sich die Werte innerhalb des JSON_OBJECT befinden.
RETURNING_TYPE
STRING
Der Typ, der zurückgegeben werden soll.
ON_ERROR_MESSAGE
VARIANT
Die Fehlermeldung, die Sie bei Bedarf hinzufügen können.
ON_EMPTY_MESSAGE
VARIANT
Die Fehlermeldung, die im Falle einer leeren Meldung hinzugefügt werden soll.
Rückgabewerte¶
Gibt einen einzelnen Wert zurück, der durch den JSON_PATH im JSON_OBJECT angegeben wird. Wenn das Ergebnis kein Einzelwert ist, wird eine Standardfehlermeldung oder eine in den Eingabeparametern definierte Fehlermeldung zurückgegeben.
Verwendungsbeispiel¶
Eingabe:
SELECT
JSON_VALUE_UDF(
PARSE_JSON('{
"iceCreamOrders": [
{
"customerID": "CUST001",
"orderID": "ORD001",
"productID": "PROD001",
"quantity": 2
}
]
}'),
JSON_EXTRACT_PATH_TEXT('{
"iceCreamOrders": [
{
"customerID": "CUST001",
"orderID": "ORD001",
"productID": "PROD001",
"quantity": 2
}
]
}', 'iceCreamOrders'), 'VARIANT', TO_VARIANT('There was an error'), TO_VARIANT('Empty message'));
Ausgabe:
"Empty message"
DATEADD_UDF (FLOAT, TIMESTAMP)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird in Fällen verwendet, in denen eine Addition zwischen einer float
-Zahl und einem Zeitstempel
erfolgt.
PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM TIMESTAMP)
Parameter¶
FIRST_PARAM
FLOAT
Die Zeitstempelzahl, die mit dem zweiten float-Parameter addiert wird.
SECOND_PARAM
DATE
Die float-Zahl, die mit dem Zeitstempel im ersten Parameter addiert wird.
Rückgabewerte¶
Gibt einen Zeitstempel mit der Addition zwischen dem Zeitstempel und der angegebenen float-Zahl zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DATEADD_UDF(1, current_timestamp);
Ausgabe:
2024-01-30 18:47:16.988
FETCH_BULK_COLLECTIONS_UDF (OBJECT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität des Abrufs von Massensammlungen in Oracle zu replizieren. Diese Funktionsversion empfängt nur den Cursor.
FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten in der fetch bulk collection
gefüllt wird.
Rückgabewerte¶
Gibt ein Objekt mit Informationen über die Logik des Abrufs von Massensammlungen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTIONS_UDF(:MY_CURSOR)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [
[
"TEST_A"
]
],
"ROWCOUNT": 1
}
DATEADD_UDF (DATE, FLOAT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, wenn es eine Addition zwischen einem Datum und einem Typ wie float
oder timestamp
gibt.
PUBLIC.DATEADD_UDF(FIRST_PARAM DATE, SECOND_PARAM FLOAT)
Parameter¶
FIRST_PARAM
DATE
Das Datum, das mit der Zahl im zweiten Parameter addiert wird.
SECOND_PARAM
FLOAT
Die Gleitkommazahl, die mit dem ersten Datumsparameter addiert werden soll.
Rückgabewerte¶
Gibt die Addition zwischen dem Datum und der angegebenen Gleitkommazahl zurück.
Migrationsbeispiel¶
Eingabe:
SELECT TO_DATE('05/11/21', 'dd/mm/yy') + 3.4 from dual;
Ausgabe:
SELECT
PUBLIC.DATEADD_UDF( TO_DATE('05/11/21', 'dd/mm/yy'), 3.4) from dual;
Verwendungsbeispiel¶
Eingabe:
SELECT DATEADD_UDF('2022-02-14',6);
Ausgabe:
2022-02-20
DATEDIFF_UDF(DATE, TIMESTAMP)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um einen Zeitstempel
von einem Datum
zu subtrahieren.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM TIMESTAMP)
Parameter¶
FIRST_PARAM
DATE
Das Datum über der Subtraktion ist fertig.
SECOND_PARAM
TIMESTAMP
Der Zeitstempel
, der vom ersten Parameter abgezogen werden soll.
Rückgabewerte¶
Gibt eine Ganzzahl mit den Tagen zwischen dem ersten und dem zweiten Parameter zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), '2022-02-14 15:31:00');
Ausgabe:
711
DBMS_RANDOM.VALUE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) soll die Funktionalität der Oracle-Funktion DBMS_RANDOM.VALUE replizieren.
DBMS_RANDOM.VALUE_UDF()
Parameter¶
Keine Eingabeparameter.
Rückgabewerte¶
Gibt eine double
-Zahl mit einer Zufallszahl zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DBMS_RANDOM.VALUE_UDF();
Ausgabe:
0.6666235896
DBMS_RANDOM.VALUE_UDF (DOUBLE, DOUBLE)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) soll die Funktionalität der Oracle-Funktion DBMS_RANDOM.VALUE replizieren.
DBMS_RANDOM.VALUE_UDF(low DOUBLE, high DOUBLE)
Parameter¶
low
DOUBLE
Das zu berücksichtigende Anfangslimit.
high
DOUBLE
Die Begrenzung, die mit dem ersten Parameter übereinstimmt.
Rückgabewerte¶
Gibt eine double
-Zahl mit einer Zufallszahl zwischen den angegebenen Begrenzungen zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DBMS_RANDOM.VALUE_UDF(1.1, 2.2);
Ausgabe:
1.637802374
FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, ARRAY)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von fetch bulk records
mit verschiedenen Eingabeparametern abzudecken, die die hinzugefügten Informationen oder das Verhalten des Cursors bestimmen.
FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Parameter¶
CURSOR
OBJECT
Der Cursor, der gerade verarbeitet wird.
COLUMN_NAMES
ARRAY
Die Spaltennamen, die dem Cursor zugeordnet sind.
Rückgabewerte¶
Gibt ein Objekt mit den verarbeiteten Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
INSERT INTO BULKCOLLECTTABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_RECORD_COLLECTIONS_UDF(:MY_CURSOR, NULL)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"RESULT": {
"TEST": [
"TEST_A"
]
},
"ROWCOUNT": 1
}
FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT, ARRAY)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von FETCH in Oracle zu replizieren. Dies ist die Variante, bei der der Cursor- und Spaltenname abgerufen werden.
FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten im Massenabruf
gefüllt wird.
COLUMN_NAMES
ARRAY
Der der Spalte zugeordnete Name ist nicht der ursprüngliche Name.
Rückgabewerte¶
Gibt ein Objekt mit den Datensätzen aus dem fetch bulk
zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTION_RECORDS_UDF(:MY_CURSOR, NULL)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [
{
"TEST": "TEST_A"
}
],
"ROWCOUNT": 1
}
JULIAN_TO_GREGORIAN_DATE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um ein julianisches Datum in die Formate umzuwandeln: JD Edwards, YYYYDDD (astronomisch) und YYYYDDD (ordinal).
JULIAN_TO_GREGORIAN_DATE_UDF(JULIAN_DATE CHAR(7), FORMAT_SELECTED CHAR(1))
Parameter¶
JULIAN_DATE
CHAR
Das zu transformierende julianische Datum.
FORMAT_SELECTED
CHAR
Das für die Logik erforderliche Format. Beispiel: 'E'
, 'J'
, 'R'
. Standardisiertes astronomisches Format oder 'J'
ist das Standardformat.
Rückgabewerte¶
Gibt eine Variante mit der Datumsdarstellung des julianischen Datums zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT JULIAN_TO_GREGORIAN_DATE_UDF('098185');
Ausgabe:
'1998-07-04' --(a.k.a Sat Jul 04 1998)
TIMESTAMP_DIFF_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird für die arithmetischen Zeitstempeloperationen und die Äquivalenzfunktionalität in Snowflake verwendet.
TIMESTAMP_DIFF_UDF(LEFT_TS TIMESTAMP, RIGHT_TS TIMESTAMP )
Parameter¶
LEFT_TS TIMESTAMP
Der Minuendwert.
RIGHT_TS TIMESTAMP
Der Wert des Subtrahenden.
Rückgabewerte¶
Gibt ein varchar mit der resultierenden Differenz zwischen den Zeitstempeln zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT TIMESTAMP_DIFF_UDF(TO_TIMESTAMP('2024-01-31 11:47:20.532 -0800'), TO_TIMESTAMP('2024-01-31 11:47:20.532 -0800'));
Ausgabe:
-000000000 00:00:00.00000000
REGEXP_LIKE_UDF (STRING, STRING, STRING)¶
Definition¶
This user-defined function (UDF) is
REGEXP_LIKE_UDF(COL STRING, PATTERN STRING, MATCHPARAM STRING)
Parameter¶
COL STRING
Die Zeichenfolge, die mit dem Muster ausgewertet werden soll.
PATTERN STRING
Das zu überprüfende Muster.
MATCHPARAM STRING
Der Vergleichsparameter, der bestimmt, ob die Groß-/Kleinschreibung beachtet wird oder nicht.
Rückgabewerte¶
Rückgabewerte
Verwendungsbeispiel¶
Eingabe:
SELECT REGEXP_LIKE_UDF('san Francisco', 'San* [fF].*', 'i');
Ausgabe:
TRUE
FETCH_BULK_COLLECTIONS_UDF (OBJECT, FLOAT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität des Abrufs von Massensammlungen in Oracle zu replizieren. Diese Funktionsversion empfängt den Cursor und den Grenzwert für die Zeilenanzahl.
FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT FLOAT)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten in der fetch bulk collection
gefüllt wird.
LIMIT
FLOAT
Der Grenzwert für die aufzurufenden Datensätze.
Rückgabewerte¶
Gibt ein Objekt mit Informationen über die Logik des Abrufs von Massensammlungen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTIONS_UDF(:MY_CURSOR, 1.0)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [
[
"TEST_A"
]
],
"ROWCOUNT": 1
}
INIT_CURSOR_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) dient dazu, ein Cursor-Objekt mit der entsprechenden Funktionalität zu initialisieren.
INIT_CURSOR_UDF(NAME VARCHAR, QUERY VARCHAR)
Parameter¶
NAME
VARCHAR
Der Name des Cursors.
QUERY
VARCHAR
Die Abfrage, die mit dem Cursor verknüpft ist.
Rückgabewerte¶
Gibt ein Objekt mit den Cursor-Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"ISOPEN": false,
"NAME": "MY_CURSOR",
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"ROWCOUNT": -1
}
UPDATE_PACKAGE_VARIABLE_STATE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) aktualisiert die Werte der angegebenen Paketvariablen. Sie ist ein Wrapper für die Snowflake-Funktion SETVARIABLE().
UPDATE_PACKAGE_VARIABLE_STATE_UDF (VARIABLE VARCHAR, NEW_VALUE VARCHAR)
Parameter¶
VARIABLE
VARCHAR
Der Variablenname, auf den der Wert festgelegt werden soll.
NEW_VALUE
VARCHAR
Der Wert, der gespeichert werden soll.
Rückgabewerte¶
Gibt ein varchar mit den Informationen der aktualisierten Variablen zurück.
Verwendungsbeispiel¶
Warnung
Bitte überprüfen Sie die Existenz der Variablen.
Eingabe:
CALL PUBLIC.UPDATE_PACKAGE_VARIABLE_STATE_UDF('MY_LOCAL_VARIABLE', '1');
Ausgabe:
1
OPEN_BULK_CURSOR_UDF (OBJECT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um einen Cursor ohne Bindungen zu schreiben.
OPEN_BULK_CURSOR_UDF(CURSOR OBJECT)
Parameter¶
CURSOR
OBJECT
Der als geöffnet zu verarbeitende Cursor.
Rückgabewerte¶
Gibt ein Objekt mit den aktuellen Informationen des Cursors zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"ISOPEN": true,
"NAME": "MY_CURSOR",
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"ROWCOUNT": 0
}
DATEADD_UDF (TIMESTAMP, FLOAT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird in Fällen verwendet, in denen eine Addition zwischen einem Zeitstempel
und einer float
-Zahl erfolgt.
PUBLIC.DATEADD_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM FLOAT)
Parameter¶
FIRST_PARAM
TIMESTAMP
Die Zeitstempelzahl, die mit dem zweiten float-Parameter addiert wird.
SECOND_PARAM
FLOAT
Die float-Zahl, die mit dem Zeitstempel im ersten Parameter addiert wird.
Rückgabewerte¶
Gibt einen Zeitstempel mit der Addition zwischen dem Zeitstempel und der angegebenen float-Zahl zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DATEADD_UDF(current_timestamp, 1);
Ausgabe:
2024-01-26 13:22:49.354
DATEDIFF_UDF(TIMESTAMP, TIMESTAMP)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) subtrahiert einen Zeitstempel
von einem anderen Zeitstempel
.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM TIMESTAMP)
Parameter¶
FIRST_PARAM
TIMESTAMP
Der timestamp
, der den Minuenden darstellt.
SECOND_PARAM
TIMESTAMP
Der Zeitstempel
, der den Subtrahenden darstellt.
Rückgabewerte¶
Gibt eine Ganzzahl mit der Differenz der Tage zwischen dem ersten und dem zweiten Zeitstempel zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800','2023-01-26 22:00:50.708 -0800');
Ausgabe:
365
UTL_FILE.FCLOSE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität der Oracle-Prozedur UTL_FILE_FCLOSE
zu replizieren.
UTL_FILE.FCLOSE_UDF(FILE VARCHAR)
Parameter¶
FILE
VARCHAR
Die zu verarbeitende und zu schließende Datei.
Rückgabewerte¶
Gibt ein varchar mit dem Ergebnis zurück.
Verwendungsbeispiel¶
Warnung
UTL_FILE.FCLOSE_UDF
schließt die Datei, die gerade verarbeitet wird. Um das Ergebnis zu überprüfen oder Dateien zu behandeln, müssen Sie die Snowflake-CLI-Konsole verwenden. Die Snowflake-CLI-Konsole ermöglicht das Hoch- oder Herunterladen einer Datei.
Eingabe:
CREATE OR REPLACE PROCEDURE PROC()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
file_data VARIANT;
BEGIN
CALL UTL_FILE.FOPEN_UDF('test2.csv','a');
SELECT
*
INTO
file_data
FROM
TABLE(RESULT_SCAN(LAST_QUERY_ID()));
CALL UTL_FILE.PUT_LINE_UDF(:file_data,'New line');
CALL UTL_FILE.FCLOSE_UDF(:file_data);
END
$$;
CALL PROC();
Ausgabe:
null
FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von fetch bulk records
mit verschiedenen Eingabeparametern abzudecken, die die hinzugefügten Informationen oder das Verhalten des Cursors bestimmen.
FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT)
Parameter¶
CURSOR
OBJECT
Der Cursor, der gerade verarbeitet wird.
Rückgabewerte¶
Gibt ein Objekt mit den verarbeiteten Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
INSERT INTO BULKCOLLECTTABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_RECORD_COLLECTIONS_UDF(:MY_CURSOR)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"RESULT": {
"TEST": [
"TEST_A"
]
},
"ROWCOUNT": 1
}
CAST_DATE_UDF¶
Definition¶
Die Funktion verarbeitet einen Zeitstempel im Zeichenfolgenformat zu einem Datum. Sie gibt ein Datum im angegebenen Format zurück.
PUBLIC.CAST_DATE_UDF(DATESTR STRING)
Parameter¶
DATESTR
STRING
Das zu formatierende Datum als string
. Das Format sollte sein: ‚YYYY-MM-DD"T"HH24:MI:SS.FF'
‚, z. B.
‚2024-01-25T23:25:11.120‘`.
Bitte lesen Sie hier die folgenden Informationen zur Formatierung.
Rückgabewerte¶
Gibt ein date
zurück, auf das das neue Format angewendet wurde.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.CAST_DATE_UDF('2024-01-25T23:25:11.120');
Ausgabe:
2024-01-25
FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT, FLOAT, ARRAY)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von FETCH in Oracle zu replizieren. Dies ist die Variante, bei der der Cursor, der Grenzwert und die Spaltennamen abgerufen werden.
FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, LIMIT FLOAT, COLUMN_NAMES ARRAY)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten im Massenabruf
gefüllt wird.
LIMIT
FLOAT
Der Grenzwert für die aufzurufenden Datensätze.
COLUMN_NAMES
ARRAY
Der der Spalte zugeordnete Name ist nicht der ursprüngliche Name.
Rückgabewerte¶
Gibt ein Objekt mit den Datensätzen aus dem fetch bulk
zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTION_RECORDS_UDF(:MY_CURSOR, 1.0, NULL)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [
{
"TEST": "TEST_A"
}
],
"ROWCOUNT": 1
}
DATEDIFF_UDF(DATE, INTEGER)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wendet eine Subtraktion von Tagen über ein Datum an.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM INTEGER)
Parameter¶
FIRST_PARAM
DATE
Das Anfangsdatum für die Anwendung der Subtraktion.
SECOND_PARAM
INTEGER
Die Anzahl der Tage, die vom ersten Datumsparameter abgezogen werden.
Rückgabewerte¶
Gibt das Datum zurück, nachdem die angegebene Anzahl von Tagen abgezogen wurde.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), 365);
Ausgabe:
2023-01-26
DATE_TO_RR_FORMAT_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wandelt das Datum in ein Datum im Orakel-RR-datetime-Format um.
PUBLIC.DATE_TO_RR_FORMAT_UDF(INPUT_DATE DATE)
Parameter¶
INPUT_DATE
DATE
Das zu transformierende Datum.
Rückgabewerte¶
Das Eingabedatum mit an das RR-Format angepassten Jahren.
Migrationsbeispiel¶
Eingabe:
Select TO_DATE('17-NOV-30','DD-MON-RR') as A from DUAL;
Ausgabe:
Select
PUBLIC.DATE_TO_RR_FORMAT_UDF( TO_DATE('17-NOV-30', 'DD-MON-YY')) as A from DUAL;
Verwendungsbeispiel¶
Eingabe:
PUBLIC.CONVERT_DATE_WITH_RR_FORMAT_UDF(TO_DATE('17-NOV-30','DD-MON-YY')) as A from DUAL;
Ausgabe:
2030-11-17
FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, INTEGER)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von fetch bulk records
mit verschiedenen Eingabeparametern abzudecken, die die hinzugefügten Informationen oder das Verhalten des Cursors bestimmen.
FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Parameter¶
CURSOR
OBJECT
Der Cursor, der gerade verarbeitet wird.
LIMIT
INTEGER
Der Grenzwert für die Zeilenzahl.
Rückgabewerte¶
Gibt ein Objekt mit den verarbeiteten Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
INSERT INTO BULKCOLLECTTABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_RECORD_COLLECTIONS_UDF(:MY_CURSOR, 0)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": false,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": true,
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"RESULT": {
"TEST": []
},
"ROWCOUNT": 0
}
DBMS_OUTPUT.PUT_LINE_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität der Oracle-Funktion DBMS_OUTPUT_PUT_LINE zu replizieren.
DBMS_OUTPUT.PUT_LINE_UDF(LOG VARCHAR)
Warnung
Beachten Sie, dass die Leistung durch die Verwendung dieser UDF beeinträchtigt werden kann. Um die Protokollierung von Informationen zu starten, kommentieren Sie die Implementierung innerhalb der Funktion aus.
Parameter¶
LOG
VARCHAR
Die Informationen, die in der Befehlszeile angezeigt werden sollen.
Rückgabewerte¶
Gibt ein varchar
mit den protokollierten Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DBMS_OUTPUT.PUT_LINE_UDF(to_varchar(123));
Ausgabe:
123
DATEDIFF_UDF(DATE, DATE)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, wenn es eine Subtraktion zwischen zwei Daten gibt.
PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM DATE)
Parameter¶
FIRST_PARAM
DATE
Das Datum, das den Minuenden in der Subtraktion darstellt.
SECOND_PARAM
DATE
Das Datum, das den Subtrahenden in der Subtraktion darstellt.
Rückgabewerte¶
Gibt eine Ganzzahl mit der Anzahl der Tage zwischen den Daten zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), TO_DATE('2023-01-26'));
Ausgabe:
365
OPEN_BULK_CURSOR_UDF (OBJECT, ARRAY)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um einen Cursor mit Bindungen zu öffnen.
OPEN_BULK_CURSOR_UDF(CURSOR OBJECT, BINDINGS ARRAY)
Parameter¶
CURSOR
OBJECT
Der als geöffnet zu verarbeitende Cursor.
BINDINGS
ARRAY
Die Bindung, die sich auf den Cursor bezieht.
Rückgabewerte¶
Gibt ein Objekt mit den aktuellen Informationen des Cursors zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR, NULL)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"ISOPEN": true,
"NAME": "MY_CURSOR",
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"ROWCOUNT": 0
}
CLOSE_BULK_CURSOR_UDF¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) löscht die temporäre Tabelle, in der das Resultset des Cursors gespeichert ist, und setzt die Eigenschaften des Cursors auf ihren Anfangsstatus zurück.
CLOSE_BULK_CURSOR_UDF(CURSOR OBJECT)
Parameter¶
CURSOR
OBJECT
Der Cursor, der überprüft und geschlossen wird.
Rückgabewerte¶
Gibt ein Objekt zurück, bei dem die Cursor-Eigenschaften zurückgesetzt wurden.
Migrationsbeispiel¶
Eingabe:
-- [procedure initial logic]
CLOSE C1;
-- [procedure ending logic]
Ausgabe:
C1 := (
CALL CLOSE_BULK_CURSOR_UDF(:C1)
);
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL CLOSE_BULK_CURSOR_UDF(:MY_CURSOR)
);
RETURN MY_CURSOR;
END;
$$;
Ausgabe:
{
"FOUND": null,
"ISOPEN": false,
"NAME": "MY_CURSOR",
"NOTFOUND": null,
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"ROWCOUNT": -1
}
DATEADD_UDF (FLOAT, DATE)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird in Fällen verwendet, in denen es eine Addition zwischen einem Typ wie float
oder timestamp
und einem date
gibt.
PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM DATE)
Parameter¶
FIRST_PARAM
FLOAT
Die Gleitkommazahl, die mit dem zweiten Datumsparameter addiert werden soll.
SECOND_PARAM
DATE
Das Datum, das mit der Zahl im ersten Parameter addiert werden soll.
Rückgabewerte¶
Gibt die Addition zwischen der Gleitkommazahl und dem angegebenen Datum zurück.
Verwendungsbeispiel¶
Eingabe:
SELECT DATEADD_UDF(6, '2022-02-14');
Ausgabe:
2022-02-20
BFILENAME_UDF¶
Definition¶
Die Funktion akzeptiert den Verzeichnisnamen und den FILENAME-Parameter als string
. Dann wird eine Verkettung unter Verwendung von '\' zurückgegeben.
Warnung
Das Zeichen '\'
muss geändert werden, damit es dem Dateiverknüpfungszeichen des Betriebssystems entspricht.
PUBLIC.BFILENAME_UDF (DIRECTORYNAME STRING, FILENAME STRING);
Parameter¶
DIRECTORYNAME
STRING
Der Name des zu verarbeitenden Verzeichnisses als string
.
FILENAME
STRING
Der Dateiname, der verkettet werden soll.
Rückgabewerte¶
Gibt einen string
zurück, der den Verzeichnis- und Dateinamen enthält, der durch ein '\'
verkettet ist.
Migrationsbeispiel¶
Eingabe:
SELECT BFILENAME ('directory', 'filename.jpg') FROM DUAL;
Ausgabe:
SELECT
PUBLIC.BFILENAME_UDF('directory', 'filename.jpg') FROM DUAL;
Verwendungsbeispiel¶
Eingabe:
SELECT PUBLIC.BFILENAME_UDF('directory', 'filename.jpg');
Ausgabe:
directory\filename.jpg
REGEXP_LIKE_UDF (STRING, STRING)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Oracle-Funktionalität REGEXP_LIKE
zu unterstützen.
REGEXP_LIKE_UDF(COL STRING, PATTERN STRING)
Parameter¶
COL STRING
Die Zeichenfolge, die mit dem Muster ausgewertet werden soll.
PATTERN STRING
Das zu überprüfende Muster.
Rückgabewerte¶
Gibt einen booleschen Ausdruck zurück. true, wenn das Muster mit der Zeichenfolge übereinstimmt; andernfalls false.
Verwendungsbeispiel¶
Eingabe:
SELECT REGEXP_LIKE_UDF('San Francisco', 'San* [fF].*');
Ausgabe:
TRUE
UTL_FILE.FOPEN_UDF (VARCHAR, VARCHAR, VARCHAR)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität der Oracle-Prozedur UTL_FILE_FOPEN
zu replizieren.
UTL_FILE.FOPEN_UDF(PACKAGE_VARIABLE VARCHAR, FILENAME VARCHAR, OPEN_MODE VARCHAR)
Parameter¶
PACKAGE_VARIABLE
VARCHAR
Die Variable, die sich auf das Öffnen der Datei bezieht.
FILENAME
VARCHAR
Die zu öffnende Datei.
OPEN_MODE
VARCHAR
Zeigt den Modus an, in dem die Datei verfügbar sein wird.
Rückgabewerte¶
Gibt ein varchar mit dem Ergebnis zurück.
Verwendungsbeispiel¶
Warnung
Mit UTL_FILE.FOPEN_UDF
können Sie eine .csv-Datei öffnen. Um auf die Datei zuzugreifen, müssen Sie eine stage
für die Datei erstellen und die Snowflake-CLI verwenden, um sie hochzuladen.
Eingabe:
CREATE OR REPLACE PROCEDURE PROC()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
file_data VARIANT;
BEGIN
CALL UTL_FILE.FOPEN_UDF(NULL, 'test2.csv','a');
SELECT
*
INTO
file_data
FROM
TABLE(RESULT_SCAN(LAST_QUERY_ID()));
CALL UTL_FILE.PUT_LINE_UDF(:file_data,'New line');
CALL UTL_FILE.FCLOSE_UDF(:file_data);
END
$$;
CALL PROC();
Ausgabe:
null
FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von FETCH in Oracle zu replizieren. Dies ist die Variante, bei der nur der Cursor abgerufen wird.
FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten im Massenabruf
gefüllt wird.
Rückgabewerte¶
Gibt ein Objekt mit den Datensätzen aus dem fetch bulk
zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTION_RECORDS_UDF(:MY_CURSOR)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [
{
"TEST": "TEST_A"
}
],
"ROWCOUNT": 1
}
FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, FLOAT, ARRAY)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von fetch bulk records
mit verschiedenen Eingabeparametern abzudecken, die die hinzugefügten Informationen oder das Verhalten des Cursors bestimmen.
FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT FLOAT, COLUMN_NAMES ARRAY)
Parameter¶
CURSOR
OBJECT
Der Cursor, der gerade verarbeitet wird.
LIMIT
FLOAT
Der Grenzwert für die Zeilenzahl.
COLUMN_NAMES
ARRAY
Die Spaltennamen, die dem Cursor zugeordnet sind.
Rückgabewerte¶
Gibt ein Objekt mit den verarbeiteten Informationen zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE BULKCOLLECTTABLE(test VARCHAR(100));
INSERT INTO BULKCOLLECTTABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
BULKCOLLECTTABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_RECORD_COLLECTIONS_UDF(:MY_CURSOR, 1.0, NULL)
);
RETURN MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": true,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": false,
"QUERY": " SELECT * FROM\n BULKCOLLECTTABLE",
"RESULT": {
"TEST": [
"TEST_A"
]
},
"ROWCOUNT": 1
}
FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT, INTEGER)¶
Definition¶
Diese benutzerdefinierte Funktion (UDF) wird verwendet, um die Funktionalität von FETCH in Oracle zu replizieren. Dies ist die Variante, bei nur der Cursor und der Grenzwert abgerufen werden.
FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Parameter¶
CURSOR
OBJECT
Der Cursor, der verarbeitet und mit den Daten im Massenabruf
gefüllt wird.
LIMIT
FLOAT
Der Grenzwert für die aufzurufenden Datensätze.
Rückgabewerte¶
Gibt ein Objekt mit den Datensätzen aus dem fetch bulk
zurück.
Verwendungsbeispiel¶
Eingabe:
CREATE OR REPLACE TABLE MY_TABLE (test VARCHAR(100));
INSERT INTO MY_TABLE VALUES ('TEST_A');
CREATE OR REPLACE PROCEDURE MY_PROCEDURE ()
RETURNS OBJECT
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
MY_CURSOR OBJECT := INIT_CURSOR_UDF('MY_CURSOR', ' SELECT * FROM
MY_TABLE');
BEGIN
MY_CURSOR := (
CALL OPEN_BULK_CURSOR_UDF(:MY_CURSOR)
);
MY_CURSOR := (
CALL FETCH_BULK_COLLECTION_RECORDS_UDF(:MY_CURSOR, 0)
);
Return MY_CURSOR;
END;
$$;
CALL MY_PROCEDURE();
Ausgabe:
{
"FOUND": false,
"ISOPEN": true,
"NAME": "MY_CURSOR",
"NOTFOUND": true,
"QUERY": " SELECT * FROM\n MY_TABLE",
"RESULT": [],
"ROWCOUNT": 0
}