SnowConvert AI – 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

Indicates the mode on which the file will be available.

Rückgabewerte

Gibt ein varchar mit dem Ergebnis zurück.

Verwendungsbeispiel

Warnung

The UTL_FILE.FOPEN_UDF allows to open a .csv file. To access the file it is required to create a stage for the file and use the Snowflake CLI to upload it.

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

Indicates the mode on which the file will be available.

Rückgabewerte

Gibt ein varchar mit dem Ergebnis zurück.

Verwendungsbeispiel

Warnung

The UTL_FILE.FOPEN_UDF allows to open a .csv file. To access the file it is required to create a stage for the file and use the Snowflake CLI to upload it.

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
}