SnowConvert AI - Function References for 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)
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);
Saída:
2024-01-23
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)
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'));
Saída:
365
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)
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;
Saída:
Select
PUBLIC.DATE_TO_JULIAN_DAYS_UDF(CURRENT_TIMESTAMP()) as A from DUAL;
Exemplo de uso¶
Entrada:
SELECT PUBLIC.DATE_TO_JULIAN_DAYS_UDF(DATE '1998-12-25');
Saída:
2451173
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)
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();
Saída:
null
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)
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();
Saída:
null
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)
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'));
Saída:
"Empty message"
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)
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);
Saída:
2024-01-30 18:47:16.988
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)
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();
Saída:
{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    [
      "TEST_A"
    ]
  ],
  "ROWCOUNT": 1
}
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)
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;
Saída:
SELECT
PUBLIC.DATEADD_UDF( TO_DATE('05/11/21', 'dd/mm/yy'), 3.4) from dual;
Exemplo de uso¶
Entrada:
SELECT DATEADD_UDF('2022-02-14',6);
Saída:
2022-02-20
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)
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');
Saída:
711
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()
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();
Saída:
0.6666235896
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)
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);
Saída:
1.637802374
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)
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();
Saída:
{
  "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)¶
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)
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();
Saída:
{
  "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¶
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))
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');
Saída:
'1998-07-04' --(a.k.a Sat Jul 04 1998)
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 )
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'));
Saída:
-000000000  00:00:00.00000000
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)
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');
Saída:
TRUE
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)
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();
Saída:
{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [
    [
      "TEST_A"
    ]
  ],
  "ROWCOUNT": 1
}
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)
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();
Saída:
{
  "ISOPEN": false,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": -1
}
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)
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');
Saída:
1
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)
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();
Saída:
{
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": 0
}
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)
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);
Saída:
2024-01-26 13:22:49.354
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)
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');
Saída:
365
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)
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();
Saída:
null
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)
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();
Saída:
{
  "FOUND": true,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": false,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": [
      "TEST_A"
    ]
  },
  "ROWCOUNT": 1
}
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)
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');
Saída:
2024-01-25
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)
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();
Saída:
{
  "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)¶
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)
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);
Saída:
2023-01-26
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)
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;
Saída:
Select
PUBLIC.DATE_TO_RR_FORMAT_UDF( TO_DATE('17-NOV-30', 'DD-MON-YY')) as A from DUAL;
Exemplo de uso¶
Entrada:
PUBLIC.CONVERT_DATE_WITH_RR_FORMAT_UDF(TO_DATE('17-NOV-30','DD-MON-YY')) as A from DUAL;
Saída:
2030-11-17
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)
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();
Saída:
{
  "FOUND": false,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": true,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "RESULT": {
    "TEST": []
  },
  "ROWCOUNT": 0
}
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)
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));
Saída:
123
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)
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'));
Saída:
365
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)
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();
Saída:
{
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": 0
}
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)
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]
Saída:
C1 := (
            CALL CLOSE_BULK_CURSOR_UDF(:C1)
        );
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;
$$;
Saída:
{
  "FOUND": null,
  "ISOPEN": false,
  "NAME": "MY_CURSOR",
  "NOTFOUND": null,
  "QUERY": "   SELECT * FROM\n      BULKCOLLECTTABLE",
  "ROWCOUNT": -1
}
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)
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');
Saída:
2022-02-20
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);
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;
Saída:
SELECT
PUBLIC.BFILENAME_UDF('directory', 'filename.jpg') FROM DUAL;
Exemplo de uso¶
Entrada:
SELECT PUBLIC.BFILENAME_UDF('directory', 'filename.jpg');
Saída:
directory\filename.jpg
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)
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].*');
Saída:
TRUE
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)
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();
Saída:
null
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)
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();
Saída:
{
  "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)¶
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)
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();
Saída:
{
  "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)¶
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)
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();
Saída:
{
  "FOUND": false,
  "ISOPEN": true,
  "NAME": "MY_CURSOR",
  "NOTFOUND": true,
  "QUERY": "   SELECT * FROM\n      MY_TABLE",
  "RESULT": [],
  "ROWCOUNT": 0
}