SnowConvert: Referências de funções para Oracle

DATEDIFF_UDF(TIMESTAMP, NUMBER)

Definição

Essa função definida pelo usuário (UDF) é usada para subtrair um número (que é um número de dias) de um carimbo de data/hora.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM NUMBER)
Copy

Parâmetros

FIRST_PARAM TIMESTAMP

O registro de data e hora que representa o minuendo.

SECOND_PARAM NUMBER

O número de dias que representa o subtraendo.

Retornos

Retorna um carimbo de data/hora com a diferença entre o carimbo de data/hora e o número.

Exemplo de uso

Entrada:

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

Saída:

2024-01-23
Copy

DATEDIFF_UDF(TIMESTAMP, DATE)

Definição

Essa função definida pelo usuário (UDF) é usada para subtrair uma data de um carimbo de data/hora.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM DATE)
Copy

Parâmetros

FIRST_PARAM TIMESTAMP

O registro de data e hora que representa o minuendo.

SECOND_PARAM DATE

A data que representa o subtraendo.

Retornos

Retorna um número inteiro com a diferença entre o carimbo de data e hora e a data.

Exemplo de uso

Entrada:

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

Saída:

365
Copy

DATE_TO_JULIAN_DAYS_UDF

Definição

Essa função definida pelo usuário (UDF) transforma a data gregoriana em data juliana (o número de dias desde 1º de janeiro de 4712 BC.).

PUBLIC.DATE_TO_JULIAN_DAYS_UDF(INPUT_DATE DATE)
Copy

Parâmetros

INPUT_DATE DATE

A data gregoriana a ser transformada.

Retornos

Retorna a representação da data juliana.

Exemplo de migração

Entrada:

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

Saída:

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

Exemplo de uso

Entrada:

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

Saída:

2451173
Copy

UTL_FILE.PUT_LINE_UDF

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade do procedimento Oracle UTL_FILE_PUT_LINE.

UTL_FILE.PUT_LINE_UDF(FILE VARCHAR,BUFFER VARCHAR)
Copy

Parâmetros

FILE VARCHAR

O arquivo para abrir e salvar o novo buffer.

BUFFER VARCHAR

O buffer a ser salvo no arquivo definido.

Retornos

Retorna um varchar com o resultado.

Exemplo de uso

Aviso

Para revisar as linhas do arquivo, há duas maneiras: baixando o arquivo do Snowflake CLI ou revisando brevemente as informações com SELECT * FROM UTL_FILE.FOPEN_TABLES_LINES; mas somente se o arquivo não tiver sido fechado.

Entrada:

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

Saída:

null
Copy

UTL_FILE.FOPEN_UDF (VARCHAR,VARCHAR)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade do procedimento Oracle UTL_FILE_FOPEN.

UTL_FILE.FOPEN_UDF(FILENAME VARCHAR,OPEN_MODE VARCHAR)
Copy

Parâmetros

FILENAME VARCHAR

O arquivo a ser aberto.

OPEN_MODE VARCHAR

Indica o modo em que o arquivo estará disponível.

Retornos

Retorna um varchar com o resultado.

Exemplo de uso

Aviso

UTL_FILE.FOPEN_UDF permite abrir um arquivo .csv. Para acessar o arquivo, é necessário criar um estágio para o arquivo e usar o Snowflake CLI para carregá-lo.

Entrada:

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

Saída:

null
Copy

JSON_VALUE_UDF

Definição

Essa função definida pelo usuário (UDF) reproduz a função JSON_VALUE para extrair um único resultado de uma variável JSON.

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

Parâmetros

JSON_OBJECT VARIANT

A variável JSON da qual os valores serão extraídos.

JSON_PATH STRING

O caminho JSON que indica onde os valores estão localizados dentro do JSON_OBJECT.

RETURNING_TYPE STRING

O tipo a ser retornado.

ON_ERROR_MESSAGE VARIANT

A mensagem de erro a ser adicionada, se necessário.

ON_EMPTY_MESSAGE VARIANT

A mensagem de erro a ser adicionada em caso de mensagem vazia.

Retornos

Retorna um único valor especificado pelo JSON_PATH dentro do JSON_OBJECT. Se o resultado não for um valor único, retorna uma mensagem de erro padrão ou uma mensagem de erro definida nos parâmetros de entrada.

Exemplo de uso

Entrada:

   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

Saída:

"Empty message"
Copy

DATEADD_UDF (FLOAT, TIMESTAMP)

Definição

Essa função definida pelo usuário (UDF) é usada nos casos em que há uma adição entre um número float e um carimbo de data/hora.

PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM TIMESTAMP)
Copy

Parâmetros

FIRST_PARAM FLOAT

O número do registro de data e hora que será adicionado com o segundo parâmetro float.

SECOND_PARAM DATE

O número do float a ser adicionado ao registro de data e hora no primeiro parâmetro.

Retornos

Retorna um carimbo de data/hora com a adição entre o carimbo de data/hora e o número flutuante especificado.

Exemplo de uso

Entrada:

SELECT DATEADD_UDF(1, current_timestamp);
Copy

Saída:

2024-01-30 18:47:16.988
Copy

FETCH_BULK_COLLECTIONS_UDF (OBJECT)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de buscar coleções em massa no Oracle. Essa versão da função recebe apenas o cursor.

FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca de coleções em massa.

Retornos

Retorna um objeto com informações relacionadas à lógica de busca de coleções em massa.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) é usada nos casos em que há uma adição entre uma data e um tipo como float ou timestamp.

PUBLIC.DATEADD_UDF(FIRST_PARAM DATE, SECOND_PARAM FLOAT)
Copy

Parâmetros

FIRST_PARAM DATE

A data a ser adicionada com o número no segundo parâmetro.

SECOND_PARAM FLOAT

O número do float que será adicionado ao primeiro parâmetro de data.

Retornos

Retorna a adição entre a data e o número flutuante especificado.

Exemplo de migração

Entrada:

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

Saída:

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

Exemplo de uso

Entrada:

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

Saída:

2022-02-20
Copy

DATEDIFF_UDF(DATE, TIMESTAMP)

Definição

Essa função definida pelo usuário (UDF) é usada para subtrair um carimbo de data/hora de uma data.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM TIMESTAMP)
Copy

Parâmetros

FIRST_PARAM DATE

A data sobre a subtração está concluída.

SECOND_PARAM TIMESTAMP

O registro de data e hora a ser subtraído do primeiro parâmetro.

Retornos

Retorna um número inteiro com os dias entre o primeiro e o segundo parâmetro.

Exemplo de uso

Entrada:

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

Saída:

711
Copy

DBMS_RANDOM.VALUE_UDF

Definição

Essa função definida pelo usuário (UDF) replica a funcionalidade da função Oracle DBMS_RANDOM.VALUE.

DBMS_RANDOM.VALUE_UDF()
Copy

Parâmetros

Não há parâmetros de entrada.

Retornos

Retorna um número double com um número aleatório.

Exemplo de uso

Entrada:

SELECT DBMS_RANDOM.VALUE_UDF();
Copy

Saída:

0.6666235896
Copy

DBMS_RANDOM.VALUE_UDF (DOUBLE, DOUBLE)

Definição

Essa função definida pelo usuário (UDF) replica a funcionalidade da função Oracle DBMS_RANDOM.VALUE.

DBMS_RANDOM.VALUE_UDF(low DOUBLE, high DOUBLE)
Copy

Parâmetros

baixo DOUBLE

O limite inicial a ser considerado.

altoDOUBLE

O limite de delimitação que coordena com o primeiro parâmetro.

Retornos

Retorna um número double com um número aleatório entre os limites especificados.

Exemplo de uso

Entrada:

SELECT DBMS_RANDOM.VALUE_UDF(1.1, 2.2);
Copy

Saída:

1.637802374
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, ARRAY)

Definição

Essa função definida pelo usuário (UDF) é usada para cobrir a funcionalidade de busca de registros em massa com diferentes parâmetros de entrada que determinam as informações adicionadas ou o comportamento do cursor.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Copy

Parâmetros

CURSOR OBJECT

O cursor que está sendo processado.

COLUMN_NAMES ARRAY

Os nomes das colunas que estão associados ao cursor.

Retornos

Retorna um objeto com as informações processadas.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de FETCH no Oracle. Essa é a variação em que ele recebe o cursor e os nomes das colunas.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, COLUMN_NAMES ARRAY)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca em massa.

COLUMN_NAMES ARRAY

O nome associado à coluna não é o nome inicial.

Retornos

Retorna um objeto com os registros de busca em massa.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) é usada para transformar uma data juliana nos formatos: JD Edwards, YYYYDDD (astronômico) e YYYYDDD (ordinal).

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

Parâmetros

JULIAN_DATE CHAR

A data juliana a ser transformada.

FORMAT_SELECTED CHAR

O formato necessário para a lógica. Por exemplo, 'E', 'J', 'R'. Astronomia padronizada ou 'J' é o formato padrão.

Retornos

Retorna uma variante com a representação de data juliana.

Exemplo de uso

Entrada:

SELECT JULIAN_TO_GREGORIAN_DATE_UDF('098185');
Copy

Saída:

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

TIMESTAMP_DIFF_UDF

Definição

Essa função definida pelo usuário (UDF) é usada para as operações aritméticas de registros de data e hora e para a funcionalidade de equivalência no Snowflake.

TIMESTAMP_DIFF_UDF(LEFT_TS TIMESTAMP, RIGHT_TS TIMESTAMP )
Copy

Parâmetros

LEFT_TS TIMESTAMP

O valor mínimo.

RIGHT_TS TIMESTAMP

O valor do subtraendo.

Retornos

Retorna um varchar com a diferença resultante entre os registros de data e hora.

Exemplo de uso

Entrada:

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

Saída:

-000000000  00:00:00.00000000
Copy

REGEXP_LIKE_UDF (STRING, STRING, STRING)

Definição

Essa função definida pelo usuário (UDF) é

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

Parâmetros

COL STRING

A cadeia de caracteres a ser avaliada com o padrão.

PATTERN STRING

O padrão a ser verificado.

MATCHPARAM STRING

O parâmetro de correspondência que determinará se há distinção entre maiúsculas e minúsculas ou não.

Retornos

Retornos

Exemplo de uso

Entrada:

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

Saída:

TRUE
Copy

FETCH_BULK_COLLECTIONS_UDF (OBJECT, FLOAT)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de buscar coleções em massa no Oracle. Essa versão da função recebe o cursor e o valor limite para a contagem de linhas.

FETCH_BULK_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT FLOAT)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca de coleções em massa.

LIMIT FLOAT

O limite para os registros a serem chamados.

Retornos

Retorna um objeto com informações relacionadas à lógica de busca de coleções em massa.

Exemplo de uso

Entrada:

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

Saída:

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

INIT_CURSOR_UDF

Definição

Essa função definida pelo usuário (UDF) serve para inicializar um objeto de cursor com a funcionalidade equivalente.

INIT_CURSOR_UDF(NAME VARCHAR, QUERY VARCHAR)
Copy

Parâmetros

NAME VARCHAR

O nome do cursor.

QUERY VARCHAR

A consulta que está associada ao cursor.

Retornos

Retorna um objeto com as informações do cursor.

Exemplo de uso

Entrada:

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

Saída:

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

UPDATE_PACKAGE_VARIABLE_STATE_UDF

Definição

Essa função definida pelo usuário (UDF) atualiza os valores da variável de pacote fornecidos. É um wrapper para a função Snowflake SETVARIABLE().

UPDATE_PACKAGE_VARIABLE_STATE_UDF (VARIABLE VARCHAR, NEW_VALUE VARCHAR)
Copy

Parâmetros

VARIABLE VARCHAR

O nome da variável para definir o valor.

NEW_VALUE VARCHAR

O valor que será armazenado.

Retornos

Retorna um varchar com as informações da variável atualizada.

Exemplo de uso

Aviso

Por favor, reveja a existência da variável.

Entrada:

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

Saída:

1
Copy

OPEN_BULK_CURSOR_UDF (OBJECT)

Definição

Essa função definida pelo usuário (UDF) é usada para abrir um cursor sem vínculos.

OPEN_BULK_CURSOR_UDF(CURSOR OBJECT)
Copy

Parâmetros

CURSOR OBJECT

O cursor a ser processado como aberto.

Retornos

Retorna um objeto com as informações atuais do cursor.

Exemplo de uso

Entrada:

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

Saída:

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

DATEADD_UDF (TIMESTAMP, FLOAT)

Definição

Essa função definida pelo usuário (UDF) é usada nos casos em que há uma adição entre um carimbo de data/hora e um número float.

PUBLIC.DATEADD_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM FLOAT)
Copy

Parâmetros

FIRST_PARAM TIMESTAMP

O número do registro de data e hora que será adicionado com o segundo parâmetro float.

SECOND_PARAM FLOAT

O número do float a ser adicionado ao registro de data e hora no primeiro parâmetro.

Retornos

Retorna um carimbo de data/hora com a adição entre o carimbo de data/hora e o número flutuante especificado.

Exemplo de uso

Entrada:

SELECT DATEADD_UDF(current_timestamp, 1);
Copy

Saída:

2024-01-26 13:22:49.354
Copy

DATEDIFF_UDF(TIMESTAMP, TIMESTAMP)

Definição

Essa função definida pelo usuário (UDF) subtrai um carimbo de data e hora de outro carimbo de data e hora.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM TIMESTAMP, SECOND_PARAM TIMESTAMP)
Copy

Parâmetros

FIRST_PARAM TIMESTAMP

O registro de data e hora que representa o minuendo.

SECOND_PARAM TIMESTAMP

O registro de data e hora que representa o subtraendo.

Retornos

Retorna um número inteiro com a diferença de dias entre o primeiro e o segundo carimbo de data/hora.

Exemplo de uso

Entrada:

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

Saída:

365
Copy

UTL_FILE.FCLOSE_UDF

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade do procedimento Oracle UTL_FILE_FCLOSE.

UTL_FILE.FCLOSE_UDF(FILE VARCHAR)
Copy

Parâmetros

FILE VARCHAR

O arquivo a ser processado e fechado.

Retornos

Retorna um varchar com o resultado.

Exemplo de uso

Aviso

O UTL_FILE.FCLOSE_UDF fecha o arquivo que está sendo processado. Para revisar o resultado ou manipular arquivos, é necessário usar o console do Snowflake CLI. O console do Snowflake CLI permite o upload ou download de um arquivo.

Entrada:

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

Saída:

null
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT)

Definição

Essa função definida pelo usuário (UDF) é usada para cobrir a funcionalidade de busca de registros em massa com diferentes parâmetros de entrada que determinam as informações adicionadas ou o comportamento do cursor.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT)
Copy

Parâmetros

CURSOR OBJECT

O cursor que está sendo processado.

Retornos

Retorna um objeto com as informações processadas.

Exemplo de uso

Entrada:

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

Saída:

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

CAST_DATE_UDF

Definição

A função processa um carimbo de data/hora em formato de cadeia de caracteres para uma data. Ela retorna uma data com o formato especificado.

PUBLIC.CAST_DATE_UDF(DATESTR STRING)
Copy

Parâmetros

DATESTR STRING

A data como uma cadeia de caracteres a ser formatada. O formato deve ser “YYYY-MM-DD"T"HH24:MI:SS.FF' por exemplo, '2024-01-25T23:25:11.120'.

Leia as seguintes informações sobre formatação aqui.

Retornos

Retorna uma data com o novo formato aplicado.

Exemplo de uso

Entrada:

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

Saída:

2024-01-25
Copy

FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT, FLOAT, ARRAY)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de FETCH no Oracle. Essa é a variação em que ele recebe o cursor, o limite e os nomes das colunas.

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

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca em massa.

LIMIT FLOAT

O limite para os registros a serem chamados.

COLUMN_NAMES ARRAY

O nome associado à coluna não é o nome inicial.

Retornos

Retorna um objeto com os registros de busca em massa.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) aplica uma subtração de dias sobre uma data.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM INTEGER)
Copy

Parâmetros

FIRST_PARAM DATE

A data inicial para aplicar a subtração.

SECOND_PARAM INTEGER

O número de dias a ser subtraído do primeiro parâmetro de data.

Retornos

Retorna a data após a subtração do número de dias indicado.

Exemplo de uso

Entrada:

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

Saída:

2023-01-26
Copy

DATE_TO_RR_FORMAT_UDF

Definição

Essa função definida pelo usuário (UDF) transforma a data para o formato datetime do oracle RR

PUBLIC.DATE_TO_RR_FORMAT_UDF(INPUT_DATE DATE)
Copy

Parâmetros

INPUT_DATE DATE

A data para transformar.

Retornos

A data de entrada com os anos ajustados para o formato RR.

Exemplo de migração

Entrada:

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

Saída:

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

Exemplo de uso

Entrada:

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

Saída:

2030-11-17
Copy

FETCH_BULK_RECORD_COLLECTIONS_UDF (OBJECT, INTEGER)

Definição

Essa função definida pelo usuário (UDF) é usada para cobrir a funcionalidade de busca de registros em massa com diferentes parâmetros de entrada que determinam as informações adicionadas ou o comportamento do cursor.

FETCH_BULK_RECORD_COLLECTIONS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Copy

Parâmetros

CURSOR OBJECT

O cursor que está sendo processado.

LIMIT INTEGER

O limite da contagem de linhas.

Retornos

Retorna um objeto com as informações processadas.

Exemplo de uso

Entrada:

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

Saída:

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

DBMS_OUTPUT.PUT_LINE_UDF

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade da função Oracle DBMS_OUTPUT_PUT_LINE.

DBMS_OUTPUT.PUT_LINE_UDF(LOG VARCHAR)
Copy

Aviso

Observe que o desempenho pode ser afetado pelo uso deste UDF. Para iniciar o registro de informações, descomente a implementação dentro da função.

Parâmetros

LOG VARCHAR

As informações a serem exibidas na linha de comando.

Retornos

Retorna um varchar com as informações registradas.

Exemplo de uso

Entrada:

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

Saída:

123
Copy

DATEDIFF_UDF(DATE, DATE)

Definição

Essa função definida pelo usuário (UDF) é usada quando há uma subtração entre duas datas.

PUBLIC.DATEDIFF_UDF(FIRST_PARAM DATE, SECOND_PARAM DATE)
Copy

Parâmetros

FIRST_PARAM DATE

A data que representa o minuendo na subtração.

SECOND_PARAM DATE

A data que representa o subtraendo na subtração.

Retornos

Retorna um número inteiro com o número de dias entre as datas.

Exemplo de uso

Entrada:

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

Saída:

365
Copy

OPEN_BULK_CURSOR_UDF (OBJECT, ARRAY)

Definição

Essa função definida pelo usuário (UDF) é usada para abrir um cursor com vínculos.

OPEN_BULK_CURSOR_UDF(CURSOR OBJECT, BINDINGS ARRAY)
Copy

Parâmetros

CURSOR OBJECT

O cursor a ser processado como aberto.

BINDINGS ARRAY

O vínculo que está relacionado ao cursor.

Retornos

Retorna um objeto com as informações atuais do cursor.

Exemplo de uso

Entrada:

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

Saída:

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

CLOSE_BULK_CURSOR_UDF

Definição

Essa função definida pelo usuário (UDF) exclui a tabela temporária que armazena o conjunto de resultados do cursor e redefine as propriedades do cursor para seu estado inicial.

CLOSE_BULK_CURSOR_UDF(CURSOR OBJECT)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é verificado e fechado.

Retornos

Retorna um objeto com as propriedades do cursor redefinidas.

Exemplo de migração

Entrada:

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

Saída:

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

Exemplo de uso

Entrada:

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

Saída:

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

DATEADD_UDF (FLOAT, DATE)

Definição

Essa função definida pelo usuário (UDF) é usada nos casos em que há uma adição entre um tipo como float ou carimbo de data/hora e uma data.

PUBLIC.DATEADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM DATE)
Copy

Parâmetros

FIRST_PARAM FLOAT

O número do float que será adicionado ao segundo parâmetro de data.

SECOND_PARAM DATE

A data a ser adicionada com o número no primeiro parâmetro.

Retornos

Retorna a adição entre o número flutuante e a data especificada.

Exemplo de uso

Entrada:

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

Saída:

2022-02-20
Copy

BFILENAME_UDF

Definição

A função usa o nome do diretório e o parâmetro filename como uma cadeia de caracteres. Em seguida, retorna uma concatenação usando '\'.

Aviso

O caractere '\' deve ser alterado para corresponder ao caractere de concatenação de arquivos do sistema operacional.

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

Parâmetros

DIRECTORYNAME STRING

O nome do diretório a ser processado como uma cadeia de caracteres.

FILENAME STRING

O nome do arquivo a ser concatenado.

Retornos

Retorna uma cadeia de caracteres que contém o nome do diretório e o nome do arquivo concatenados por um '\'.

Exemplo de migração

Entrada:

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

Saída:

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

Exemplo de uso

Entrada:

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

Saída:

directory\filename.jpg
Copy

REGEXP_LIKE_UDF (STRING, STRING)

Definição

Essa função definida pelo usuário (UDF) é usada para dar suporte à funcionalidade do Oracle REGEXP_LIKE.

REGEXP_LIKE_UDF(COL STRING, PATTERN STRING)
Copy

Parâmetros

COL STRING

A cadeia de caracteres a ser avaliada com o padrão.

PATTERN STRING

O padrão a ser verificado.

Retornos

Retorna uma expressão booliana. Verdadeiro se o padrão corresponder à cadeia de caracteres; caso contrário, falso.

Exemplo de uso

Entrada:

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

Saída:

TRUE
Copy

UTL_FILE.FOPEN_UDF (VARCHAR, VARCHAR, VARCHAR)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade do procedimento Oracle UTL_FILE_FOPEN.

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

Parâmetros

PACKAGE_VARIABLE VARCHAR

A variável relacionada à abertura do arquivo.

FILENAME VARCHAR

O arquivo a ser aberto.

OPEN_MODE VARCHAR

Indica o modo em que o arquivo estará disponível.

Retornos

Retorna um varchar com o resultado.

Exemplo de uso

Aviso

UTL_FILE.FOPEN_UDF permite abrir um arquivo .csv. Para acessar o arquivo, é necessário criar um estágio para o arquivo e usar o Snowflake CLI para carregá-lo.

Entrada:

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

Saída:

null
Copy

FETCH_BULK_COLLECTION_RECORDS_UDF (OBJECT)

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de FETCH no Oracle. Essa é a variação em que ele recebe apenas o cursor.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca em massa.

Retornos

Retorna um objeto com os registros de busca em massa.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) é usada para cobrir a funcionalidade de busca de registros em massa com diferentes parâmetros de entrada que determinam as informações adicionadas ou o comportamento do cursor.

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

Parâmetros

CURSOR OBJECT

O cursor que está sendo processado.

LIMIT FLOAT

O limite da contagem de linhas.

COLUMN_NAMES ARRAY

Os nomes das colunas que estão associados ao cursor.

Retornos

Retorna um objeto com as informações processadas.

Exemplo de uso

Entrada:

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

Saída:

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

Definição

Essa função definida pelo usuário (UDF) é usada para replicar a funcionalidade de FETCH no Oracle. Essa é a variação em que ele recebe o cursor e o limite.

FETCH_BULK_COLLECTION_RECORDS_UDF(CURSOR OBJECT, LIMIT INTEGER)
Copy

Parâmetros

CURSOR OBJECT

O cursor que é processado e preenchido com os dados na busca em massa.

LIMIT FLOAT

O limite para os registros a serem chamados.

Retornos

Retorna um objeto com os registros de busca em massa.

Exemplo de uso

Entrada:

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

Saída:

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