SnowConvert : références de fonctions pour Oracle

DATEDIFF_UDF(TIMESTAMP, NUMBER)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour soustraire un nombre (qui est un nombre de jours) d’un horodatage.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM NUMBER)
Copy

Paramètres

FIRST_PARAM TIMESTAMP

L”horodatage qui représente la minute.

SECOND_PARAM NUMBER

Le nombre de jours qui représente le terme à soustraire.

Renvoie

Renvoie un horodatage avec la différence entre l”horodatage et le nombre.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800', 3);
Copy

Sortie :

2024-01-23
Copy

DATEDIFF_UDF(TIMESTAMP, DATE)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour soustraire une date d’un horodatage.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM DATE)
Copy

Paramètres

FIRST_PARAM TIMESTAMP

L”horodatage qui représente la minute.

SECOND_PARAM DATE

La date qui représente le terme à soustraire.

Renvoie

Renvoie un entier avec la différence entre l”horodatage et la date.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800', TO_DATE('2023-01-26'));
Copy

Sortie :

365
Copy

DATE_TO_JULIAN_DAYS_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) transforme la date grégorienne en date julienne (le nombre de jours depuis le 1er janvier 4712 BC.).

PUBLIC.DATE_TO_JULIAN_DAYS_UDF(INPUT_DATE DATE)
Copy

Paramètres

INPUT_DATE DATE

La date grégorienne à transformer.

Renvoie

Renvoie la représentation de la date julienne.

Exemple de migration

Entrée :

Select TO_CHAR(SYSDATE, 'J') as A from DUAL;
Copy

Sortie :

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

Exemple d’utilisation

Entrée :

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

Sortie :

2451173
Copy

UTL_FILE.PUT_LINE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de la procédure Oracle UTL_FILE_PUT_LINE.

UTL_FILE.PUT_LINE_UDF(FILE VARCHAR,BUFFER VARCHAR)
Copy

Paramètres

FILE VARCHAR

Le fichier permettant d’ouvrir et d’enregistrer le nouveau tampon.

BUFFER VARCHAR

Le tampon à enregistrer dans le fichier défini.

Renvoie

Retourne un varchar avec le résultat.

Exemple d’utilisation

Avertissement

Pour revoir les lignes du fichier, il y a deux possibilités : télécharger le fichier à partir de la CLI Snowflake ou revoir brièvement les informations avec SELECT * FROM UTL_FILE.FOPEN_TABLES_LINES; mais seulement si le fichier n’a pas été fermé.

Entrée :

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

Sortie :

null
Copy

UTL_FILE.FOPEN_UDF (VARCHAR,VARCHAR)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de la procédure Oracle UTL_FILE_FOPEN.

UTL_FILE.FOPEN_UDF(FILENAME VARCHAR,OPEN_MODE VARCHAR)
Copy

Paramètres

FILENAME VARCHAR

Le fichier à ouvrir.

OPEN_MODE VARCHAR

Indique le mode sur lequel le fichier sera disponible.

Renvoie

Retourne un varchar avec le résultat.

Exemple d’utilisation

Avertissement

Le UTL_FILE.FOPEN_UDF permet d’ouvrir un fichier .csv. Pour accéder au fichier, il est exigé de créer une zone de préparation interne pour le fichier et d’utiliser la CLI Snowflake pour le télécharger.

Entrée :

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

Sortie :

null
Copy

JSON_VALUE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) reproduit la fonction JSON_VALUE pour extraire un seul résultat d’une variable JSON.

JSON_VALUE_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING, RETURNING_TYPE STRING, ON_ERROR_MESSAGE VARIANT, ON_EMPTY_MESSAGE VARIANT)
Copy

Paramètres

JSON_OBJECT VARIANT

La variable JSON à partir de laquelle les valeurs doivent être extraites.

JSON_PATH STRING

Le chemin JSON qui indique l’emplacement des valeurs à l’intérieur du JSON_OBJECT.

RETURNING_TYPE STRING

Le type à renvoyer.

ON_ERROR_MESSAGE VARIANT

Le message d’erreur à ajouter si nécessaire.

ON_EMPTY_MESSAGE VARIANT

Le message d’erreur à ajouter en cas de message vide.

Renvoie

Renvoie une valeur unique spécifiée par le JSON_PATH à l’intérieur du JSON_OBJECT. Si le résultat n’est pas une valeur unique, il renvoie un message d’erreur par défaut ou un message d’erreur défini dans les paramètres d’entrée.

Exemple d’utilisation

Entrée :

   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

Sortie :

"Empty message"
Copy

DATEADD_UDF (FLOAT, TIMESTAMP)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée dans les cas où il y a une addition entre un nombre flottant et un horodatage.

PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM TIMESTAMP)
Copy

Paramètres

FIRST_PARAM FLOAT

Le numéro d’horodatage qui sera ajouté au deuxième paramètre flottant.

SECOND_PARAM DATE

Le nombre flottant à ajouter à l’horodatage du premier paramètre.

Renvoie

Renvoie un horodatage avec l’addition entre l’horodatage et le nombre flottant spécifié.

Exemple d’utilisation

Entrée :

SELECT DATEADD_UDF(1, current_timestamp);
Copy

Sortie :

2024-01-30 18:47:16.988
Copy

FETCH_BULK_COLLECTIONS_UDF (OBJECT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de récupération en vrac des collections dans Oracle. Cette version de la fonction ne reçoit que le curseur.

FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération de collection en vrac.

Renvoie

Renvoie un objet contenant des informations relatives à la logique de récupération des collections en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée dans les cas où il y a une addition entre une date et un type comme flottant ou horodatage.

PUBLIC.DATEADD_UDF(FIRST_PARAM DATE, SECOND_PARAM FLOAT)
Copy

Paramètres

FIRST_PARAM DATE

La date à ajouter au numéro indiqué dans le deuxième paramètre.

SECOND_PARAM FLOAT

Le numéro flottant qui va être ajouté au premier paramètre de date.

Renvoie

Renvoie l’addition entre la date et le nombre flottant spécifié.

Exemple de migration

Entrée :

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

Sortie :

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

Exemple d’utilisation

Entrée :

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

Sortie :

2022-02-20
Copy

DATEDIFF_UDF(DATE, TIMESTAMP)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour soustraire un horodatage d’une date.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM TIMESTAMP)
Copy

Paramètres

FIRST_PARAM DATE

La date de la soustraction est terminée.

SECOND_PARAM TIMESTAMP

L”horodatage à soustraire du premier paramètre.

Renvoie

Renvoie un entier contenant les jours compris entre le premier et le deuxième paramètre.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), '2022-02-14 15:31:00');
Copy

Sortie :

711
Copy

DBMS_RANDOM.VALUE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) réplique la fonctionnalité de la fonction DBMS_RANDOM.VALUE Oracle.

DBMS_RANDOM.VALUE_UDF()
Copy

Paramètres

Aucun paramètre d’entrée.

Renvoie

Renvoie un nombre double avec un nombre aléatoire.

Exemple d’utilisation

Entrée :

SELECT DBMS_RANDOM.VALUE_UDF();
Copy

Sortie :

0.6666235896
Copy

DBMS_RANDOM.VALUE_UDF (DOUBLE, DOUBLE)

Définition

Cette fonction définie par l’utilisateur (UDF) réplique la fonctionnalité de la fonction DBMS_RANDOM.VALUE Oracle.

DBMS_RANDOM.VALUE_UDF(low DOUBLE, high DOUBLE)
Copy

Paramètres

faibleDOUBLE

La limite initiale à prendre en compte.

élevéDOUBLE

La limite délimitante qui se coordonne avec le premier paramètre.

Renvoie

Renvoie un nombre double avec un nombre aléatoire entre les limites spécifiées.

Exemple d’utilisation

Entrée :

SELECT DBMS_RANDOM.VALUE_UDF(1.1, 2.2);
Copy

Sortie :

1.637802374
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, ARRAY)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour couvrir les fonctionnalités de récupération des enregistrements en vrac avec différents paramètres d’entrée qui déterminent les informations ajoutées ou le comportement du curseur.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Copy

Paramètres

CURSOR OBJECT

Le curseur en cours de traitement.

COLUMN_NAMES ARRAY

Les noms des colonnes associées au curseur.

Renvoie

Renvoie un objet contenant les informations traitées.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de FETCH dans Oracle. C’est dans cette variante qu’il reçoit le curseur et les noms des colonnes.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération en vrac.

COLUMN_NAMES ARRAY

Le nom associé à la colonne n’est pas le nom initial.

Renvoie

Renvoie un objet contenant les enregistrements de la récupération en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour transformer une date julienne dans les formats : JD Edwards, YYYYDDD (astronomique) et YYYYDDD (ordinal).

JULIAN_TO_GREGORIAN_DATE_UDF(JULIAN_DATE CHAR(7), FORMAT_SELECTED CHAR(1))
Copy

Paramètres

JULIAN_DATE CHAR

La date julienne à transformer.

FORMAT_SELECTED CHAR

Le format requis pour la logique. Par exemple : 'E', 'J', 'R'. Astronomie normalisée ou 'J' est le format par défaut.

Renvoie

Renvoie une variante avec la représentation de la date julienne.

Exemple d’utilisation

Entrée :

SELECT JULIAN_TO_GREGORIAN_DATE_UDF('098185');
Copy

Sortie :

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

TIMESTAMP_DIFF_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour les opérations arithmétiques d’horodatage et la fonctionnalité d’équivalence dans Snowflake.

TIMESTAMP_DIFF_UDF(LEFT_TS TIMESTAMP, RIGHT_TS TIMESTAMP )
Copy

Paramètres

LEFT_TS TIMESTAMP

La valeur minimale.

RIGHT_TS TIMESTAMP

La valeur de la soustraction.

Renvoie

Renvoie un varchar contenant la différence entre les horodatages.

Exemple d’utilisation

Entrée :

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

Sortie :

-000000000  00:00:00.00000000
Copy

REGEXP_LIKE_UDF (STRING, STRING, STRING)

Définition

Cette fonction définie par l’utilisateur (UDF) est

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

Paramètres

COL STRING

La chaîne à évaluer avec le modèle.

PATTERN STRING

Le modèle à vérifier.

MATCHPARAM STRING

Le paramètre de correspondance qui déterminera si les données sont sensibles à la casse ou non.

Renvoie

Renvoie

Exemple d’utilisation

Entrée :

SELECT REGEXP_LIKE_UDF('san Francisco', 'San* [fF].*', 'i');
Copy

Sortie :

TRUE
Copy

FETCH_BULK_COLLECTIONS_UDF (OBJECT, FLOAT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de récupération en vrac des collections dans Oracle. Cette version de la fonction reçoit le curseur et la valeur limite du nombre de lignes.

FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT FLOAT)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération de collection en vrac.

LIMIT FLOAT

La limite des enregistrements à appeler.

Renvoie

Renvoie un objet contenant des informations relatives à la logique de récupération des collections en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

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

INIT_CURSOR_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) permet d’initialiser un objet curseur avec les fonctionnalités équivalentes.

INIT_CURSOR_UDF(NAME VARCHAR, QUERY VARCHAR)
Copy

Paramètres

NAME VARCHAR

Nom du curseur.

QUERY VARCHAR

La requête associée au curseur.

Renvoie

Renvoie un objet contenant les informations relatives au curseur.

Exemple d’utilisation

Entrée :

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

Sortie :

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

UPDATE_PACKAGE_VARIABLE_STATE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) met à jour les valeurs des variables du paquet. Il s’agit d’une enveloppe pour la fonction SETVARIABLE() de Snowflake.

UPDATE_PACKAGE_VARIABLE_STATE_UDF (VARIABLE VARCHAR, NEW_VALUE VARCHAR)
Copy

Paramètres

VARIABLE VARCHAR

Le nom de la variable à laquelle la valeur doit être définie.

NEW_VALUE VARCHAR

La valeur qui sera stockée.

Renvoie

Renvoie un varchar contenant l’information de la variable mise à jour.

Exemple d’utilisation

Avertissement

Veuillez revoir l’existence de la variable.

Entrée :

CALL PUBLIC.UPDATE_PACKAGE_VARIABLE_STATE_UDF('MY_LOCAL_VARIABLE', '1');
Copy

Sortie :

1
Copy

OPEN_BULK_CURSOR_UDF (OBJECT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour dessiner un curseur sans liaison.

OPEN_BULK_CURSOR_UDF(CURSOR OBJECT)
Copy

Paramètres

CURSOR OBJECT

Le curseur à traiter comme ouvert.

Renvoie

Renvoie un objet contenant les informations actuelles du curseur.

Exemple d’utilisation

Entrée :

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

Sortie :

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

DATEADD_UDF (TIMESTAMP, FLOAT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée dans les cas où il y a une addition entre un horodatage et un nombre flottant.

PUBLIC.DATEADD_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM FLOAT)
Copy

Paramètres

FIRST_PARAM TIMESTAMP

Le numéro d’horodatage qui sera ajouté au deuxième paramètre flottant.

SECOND_PARAM FLOAT

Le nombre flottant à ajouter à l’horodatage du premier paramètre.

Renvoie

Renvoie un horodatage avec l’addition entre l’horodatage et le nombre flottant spécifié.

Exemple d’utilisation

Entrée :

SELECT DATEADD_UDF(current_timestamp, 1);
Copy

Sortie :

2024-01-26 13:22:49.354
Copy

DATEDIFF_UDF(TIMESTAMP, TIMESTAMP)

Définition

Cette fonction définie par l’utilisateur (UDF) soustrait un horodatage d’un autre horodatage.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM TIMESTAMP)
Copy

Paramètres

FIRST_PARAM TIMESTAMP

L”horodatage qui représente la minute.

SECOND_PARAM TIMESTAMP

L”horodatage qui représente la soustraction.

Renvoie

Renvoie un entier avec la différence de jours entre le premier et le second horodatage.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF('2024-01-26 22:00:50.708 -0800','2023-01-26 22:00:50.708 -0800');
Copy

Sortie :

365
Copy

UTL_FILE.FCLOSE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de la procédure Oracle UTL_FILE_FCLOSE.

UTL_FILE.FCLOSE_UDF(FILE VARCHAR)
Copy

Paramètres

FILE VARCHAR

Le fichier à traiter et à fermer.

Renvoie

Retourne un varchar avec le résultat.

Exemple d’utilisation

Avertissement

UTL_FILE.FCLOSE_UDF ferme le fichier en cours de traitement. Pour examiner le résultat ou manipuler les fichiers, il est exigé d’utiliser la console CLI Snowflake. La console CLI Snowflake permet le chargement ou le téléchargement d’un fichier.

Entrée :

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

Sortie :

null
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour couvrir les fonctionnalités de récupération des enregistrements en vrac avec différents paramètres d’entrée qui déterminent les informations ajoutées ou le comportement du curseur.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT)
Copy

Paramètres

CURSOR OBJECT

Le curseur en cours de traitement.

Renvoie

Renvoie un objet contenant les informations traitées.

Exemple d’utilisation

Entrée :

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

Sortie :

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

CAST_DATE_UDF

Définition

La fonction transforme un horodatage au format chaîne en une date. Elle renvoie une date au format spécifié.

PUBLIC.CAST_DATE_UDF(DATESTR STRING)
Copy

Paramètres

DATESTR STRING

La date sous forme de chaîne à formater. Le format doit être “YYYY-MM-DD"T"HH24:MI:SS.FF' par exemple '2024-01-25T23:25:11.120'.

Veuillez prendre connaissance des informations suivantes concernant le formatage ici.

Renvoie

Renvoie une date avec le nouveau format appliqué.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.CAST_DATE_UDF('2024-01-25T23:25:11.120');
Copy

Sortie :

2024-01-25
Copy

FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT, FLOAT, ARRAY)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de FETCH dans Oracle. C’est dans cette variante qu’il reçoit le curseur, la limite et les noms des colonnes.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, LIMIT FLOAT, COLUMN_NAMES ARRAY)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération en vrac.

LIMIT FLOAT

La limite des enregistrements à appeler.

COLUMN_NAMES ARRAY

Le nom associé à la colonne n’est pas le nom initial.

Renvoie

Renvoie un objet contenant les enregistrements de la récupération en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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)

Définition

Cette fonction définie par l’utilisateur (UDF) effectue une soustraction de jours sur une date.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM INTEGER)
Copy

Paramètres

FIRST_PARAM DATE

Date initiale d’application de la soustraction.

SECOND_PARAM INTEGER

Le nombre de jours à soustraire du premier paramètre de date.

Renvoie

Renvoie la date après soustraction du nombre de jours indiqué.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), 365);
Copy

Sortie :

2023-01-26
Copy

DATE_TO_RR_FORMAT_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) transforme le format date en format datetime RR oracle

PUBLIC.DATE_TO_RR_FORMAT_UDF(INPUT_DATE DATE)
Copy

Paramètres

INPUT_DATE DATE

La date à transformer.

Renvoie

La date d’entrée avec les années ajustées au format RR.

Exemple de migration

Entrée :

Select TO_DATE('17-NOV-30','DD-MON-RR') as A from DUAL;
Copy

Sortie :

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

Exemple d’utilisation

Entrée :

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

Sortie :

2030-11-17
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, INTEGER)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour couvrir les fonctionnalités de récupération des enregistrements en vrac avec différents paramètres d’entrée qui déterminent les informations ajoutées ou le comportement du curseur.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Copy

Paramètres

CURSOR OBJECT

Le curseur en cours de traitement.

LIMIT INTEGER

La limite du nombre de lignes.

Renvoie

Renvoie un objet contenant les informations traitées.

Exemple d’utilisation

Entrée :

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

Sortie :

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

DBMS_OUTPUT.PUT_LINE_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de la fonction Oracle DBMS_OUTPUT_PUT_LINE.

DBMS_OUTPUT.PUT_LINE_UDF(LOG VARCHAR)
Copy

Avertissement

Notez que les performances peuvent être affectées par l’utilisation de cette UDF. Pour commencer à connecter les informations, décommentez la fonctionnalité à l’intérieur de la fonction.

Paramètres

LOG VARCHAR

Les informations à afficher dans la ligne de commande.

Renvoie

Retourne un varchar avec les informations connectées.

Exemple d’utilisation

Entrée :

SELECT DBMS_OUTPUT.PUT_LINE_UDF(to_varchar(123));
Copy

Sortie :

123
Copy

DATEDIFF_UDF(DATE, DATE)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour effectuer une soustraction entre deux dates.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM DATE)
Copy

Paramètres

FIRST_PARAM DATE

La date qui représente la fin de la soustraction.

SECOND_PARAM DATE

La date qui représente la soustraction dans la soustraction.

Renvoie

Renvoie un entier avec le nombre de jours entre les dates.

Exemple d’utilisation

Entrée :

SELECT PUBLIC.DATEDIFF_UDF(TO_DATE('2024-01-26'), TO_DATE('2023-01-26'));
Copy

Sortie :

365
Copy

OPEN_BULK_CURSOR_UDF (OBJECT, ARRAY)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour ouvrir un curseur avec des liens.

OPEN_BULK_CURSOR_UDF(CURSOR OBJECT, BINDINGS ARRAY)
Copy

Paramètres

CURSOR OBJECT

Le curseur à traiter comme ouvert.

BINDINGS ARRAY

La liaison qui est liée au curseur.

Renvoie

Renvoie un objet contenant les informations actuelles du curseur.

Exemple d’utilisation

Entrée :

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

Sortie :

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

CLOSE_BULK_CURSOR_UDF

Définition

Cette fonction définie par l’utilisateur (UDF) supprime la table temporaire qui stocke le jeu de résultats du curseur et rétablit les propriétés du curseur à leur état initial.

CLOSE_BULK_CURSOR_UDF(CURSOR OBJECT)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est vérifié et fermé.

Renvoie

Renvoie un objet dont les propriétés du curseur ont été réinitialisées.

Exemple de migration

Entrée :

-- [procedure initial logic]
CLOSE C1;
-- [procedure ending logic]
Copy

Sortie :

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

Exemple d’utilisation

Entrée :

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

Sortie :

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

DATEADD_UDF (FLOAT, DATE)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée dans les cas où il y a une addition entre un type comme flottant ou horodatage et date.

PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM DATE)
Copy

Paramètres

FIRST_PARAM FLOAT

Le numéro de flottant qui va être ajouté au deuxième paramètre de date.

SECOND_PARAM DATE

La date à ajouter au numéro indiqué dans le premier paramètre.

Renvoie

Renvoie l’addition entre le nombre flottant et la date spécifiée.

Exemple d’utilisation

Entrée :

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

Sortie :

2022-02-20
Copy

BFILENAME_UDF

Définition

La fonction prend le nom du répertoire et le paramètre du nom de fichier sous la forme d’une chaîne. Il renvoie ensuite une concaténation à l’aide de '\'.

Avertissement

Le caractère '\' doit être modifié pour correspondre au caractère de concaténation des fichiers du système d’opération.

PUBLIC.BFILENAME_UDF (DIRECTORYNAME STRING, FILENAME STRING);
Copy

Paramètres

DIRECTORYNAME STRING

Le nom du répertoire à traiter sous forme de chaîne.

FILENAME STRING

Le nom du fichier à concaténer.

Renvoie

Renvoie une chaîne qui contient le nom du répertoire et le nom du fichier concaténés par '\'.

Exemple de migration

Entrée :

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

Sortie :

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

Exemple d’utilisation

Entrée :

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

Sortie :

directory\filename.jpg
Copy

REGEXP_LIKE_UDF (STRING, STRING)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour prendre en charge la fonctionnalité Oracle REGEXP_LIKE.

REGEXP_LIKE_UDF(COL STRING, PATTERN STRING)
Copy

Paramètres

COL STRING

La chaîne à évaluer avec le modèle.

PATTERN STRING

Le modèle à vérifier.

Renvoie

Renvoie une expression booléenne. True si le modèle correspond à la chaîne ; sinon, false.

Exemple d’utilisation

Entrée :

SELECT REGEXP_LIKE_UDF('San Francisco', 'San* [fF].*');
Copy

Sortie :

TRUE
Copy

UTL_FILE.FOPEN_UDF (VARCHAR, VARCHAR, VARCHAR)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de la procédure Oracle UTL_FILE_FOPEN.

UTL_FILE.FOPEN_UDF(PACKAGE_VARIABLE VARCHAR, FILENAME VARCHAR, OPEN_MODE VARCHAR)
Copy

Paramètres

PACKAGE_VARIABLE VARCHAR

La variable relative à l’ouverture du fichier.

FILENAME VARCHAR

Le fichier à ouvrir.

OPEN_MODE VARCHAR

Indique le mode sur lequel le fichier sera disponible.

Renvoie

Retourne un varchar avec le résultat.

Exemple d’utilisation

Avertissement

Le UTL_FILE.FOPEN_UDF permet d’ouvrir un fichier .csv. Pour accéder au fichier, il est exigé de créer une zone de préparation interne pour le fichier et d’utiliser la CLI Snowflake pour le télécharger.

Entrée :

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

Sortie :

null
Copy

FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de FETCH dans Oracle. Il s’agit de la variante où il ne reçoit que le curseur.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération en vrac.

Renvoie

Renvoie un objet contenant les enregistrements de la récupération en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour couvrir les fonctionnalités de récupération des enregistrements en vrac avec différents paramètres d’entrée qui déterminent les informations ajoutées ou le comportement du curseur.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT FLOAT, COLUMN_NAMES ARRAY)
Copy

Paramètres

CURSOR OBJECT

Le curseur en cours de traitement.

LIMIT FLOAT

La limite du nombre de lignes.

COLUMN_NAMES ARRAY

Les noms des colonnes associées au curseur.

Renvoie

Renvoie un objet contenant les informations traitées.

Exemple d’utilisation

Entrée :

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

Sortie :

{
  "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)

Définition

Cette fonction définie par l’utilisateur (UDF) est utilisée pour répliquer la fonctionnalité de FETCH dans Oracle. C’est dans cette variante qu’il reçoit le curseur et la limite.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Copy

Paramètres

CURSOR OBJECT

Le curseur qui est traité et rempli avec les données dans la récupération en vrac.

LIMIT FLOAT

La limite des enregistrements à appeler.

Renvoie

Renvoie un objet contenant les enregistrements de la récupération en vrac.

Exemple d’utilisation

Entrée :

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

Sortie :

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