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)
Copy

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);
Copy

Ausgabe:

2024-01-23
Copy

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)
Copy

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'));
Copy

Ausgabe:

365
Copy

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)
Copy

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;
Copy

Ausgabe:

Select
PUBLIC.DATE_TO_JULIAN_DAYS_UDF(CURRENT_TIMESTAMP()) as A from DUAL;
Copy

Verwendungsbeispiel

Eingabe:

SELECT PUBLIC.DATE_TO_JULIAN_DAYS_UDF(DATE '1998-12-25');
Copy

Ausgabe:

2451173
Copy

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)
Copy

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();
Copy

Ausgabe:

null
Copy

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)
Copy

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();
Copy

Ausgabe:

null
Copy

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)
Copy

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'));
Copy

Ausgabe:

"Empty message"
Copy

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)
Copy

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);
Copy

Ausgabe:

2024-01-30 18:47:16.988
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    [
      "TEST_A"
    ]
  ],
  "ROWCOUNT": 1
}
Copy

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)
Copy

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;
Copy

Ausgabe:

SELECT
PUBLIC.DATEADD_UDF( TO_DATE('05/11/21', 'dd/mm/yy'), 3.4) from dual;
Copy

Verwendungsbeispiel

Eingabe:

SELECT DATEADD_UDF('2022-02-14',6);
Copy

Ausgabe:

2022-02-20
Copy

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)
Copy

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');
Copy

Ausgabe:

711
Copy

DBMS_RANDOM.VALUE_UDF

Definition

Diese benutzerdefinierte Funktion (UDF) soll die Funktionalität der Oracle-Funktion DBMS_RANDOM.VALUE replizieren.

DBMS_RANDOM.VALUE_UDF()
Copy

Parameter

Keine Eingabeparameter.

Rückgabewerte

Gibt eine double-Zahl mit einer Zufallszahl zurück.

Verwendungsbeispiel

Eingabe:

SELECT DBMS_RANDOM.VALUE_UDF();
Copy

Ausgabe:

0.6666235896
Copy

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)
Copy

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);
Copy

Ausgabe:

1.637802374
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": [
      "TEST_A"
    ]
  },
  "ROWCOUNT": 1
}
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    {
      "TEST": "TEST_A"
    }
  ],
  "ROWCOUNT": 1
}
Copy

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))
Copy

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');
Copy

Ausgabe:

'1998-07-04' --(a.k.a Sat Jul 04 1998)
Copy

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 )
Copy

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'));
Copy

Ausgabe:

-000000000  00:00:00.00000000
Copy

REGEXP_LIKE_UDF (STRING, STRING, STRING)

Definition

This user-defined function (UDF) is

REGEXP_LIKE_UDF(COL STRING, PATTERN STRING, MATCHPARAM STRING)
Copy

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');
Copy

Ausgabe:

TRUE
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    [
      "TEST_A"
    ]
  ],
  "ROWCOUNT": 1
}
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "ISOPEN": false,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": -1
}
Copy

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)
Copy

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');
Copy

Ausgabe:

1
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": 0
}
Copy

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)
Copy

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);
Copy

Ausgabe:

2024-01-26 13:22:49.354
Copy

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)
Copy

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');
Copy

Ausgabe:

365
Copy

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)
Copy

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();
Copy

Ausgabe:

null
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": [
      "TEST_A"
    ]
  },
  "ROWCOUNT": 1
}
Copy

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)
Copy

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');
Copy

Ausgabe:

2024-01-25
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    {
      "TEST": "TEST_A"
    }
  ],
  "ROWCOUNT": 1
}
Copy

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)
Copy

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);
Copy

Ausgabe:

2023-01-26
Copy

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)
Copy

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;
Copy

Ausgabe:

Select
PUBLIC.DATE_TO_RR_FORMAT_UDF( TO_DATE('17-NOV-30', 'DD-MON-YY')) as A from DUAL;
Copy

Verwendungsbeispiel

Eingabe:

PUBLIC.CONVERT_DATE_WITH_RR_FORMAT_UDF(TO_DATE('17-NOV-30','DD-MON-YY')) as A from DUAL;
Copy

Ausgabe:

2030-11-17
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": false,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": true,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": []
  },
  "ROWCOUNT": 0
}
Copy

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)
Copy

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));
Copy

Ausgabe:

123
Copy

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)
Copy

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'));
Copy

Ausgabe:

365
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": 0
}
Copy

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)
Copy

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]
Copy

Ausgabe:

C1 := (
            CALL CLOSE_BULK_CURSOR_UDF(:C1)
        );
Copy

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;
$$;
Copy

Ausgabe:

{
  "FOUND": null,
  "ISOPEN": false,
  "NAME": "MY_CURSOR",
  "NOTFOUND": null,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": -1
}
Copy

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)
Copy

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');
Copy

Ausgabe:

2022-02-20
Copy

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);
Copy

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;
Copy

Ausgabe:

SELECT
PUBLIC.BFILENAME_UDF('directory', 'filename.jpg') FROM DUAL;
Copy

Verwendungsbeispiel

Eingabe:

SELECT PUBLIC.BFILENAME_UDF('directory', 'filename.jpg');
Copy

Ausgabe:

directory\filename.jpg
Copy

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)
Copy

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].*');
Copy

Ausgabe:

TRUE
Copy

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)
Copy

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();
Copy

Ausgabe:

null
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    {
      "TEST": "TEST_A"
    }
  ],
  "ROWCOUNT": 1
}
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": [
      "TEST_A"
    ]
  },
  "ROWCOUNT": 1
}
Copy

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)
Copy

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();
Copy

Ausgabe:

{
  "FOUND": false,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": true,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [],
  "ROWCOUNT": 0
}
Copy