DBMS_CLOUD Mapeamento de Tipo de Dados Oracle para Parquet do Pacote

Descreve o mapeamento de tipos de dados Oracle para tipos de dados Parquet.

Tipo Oracle Tipo Parquet
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMAL(p,s)
NÚMERO(p) DECIMAL(p)
TIMESTAMP(3) TIMESTAMP_MILLIS
TIMESTAMP(3) TIMESTAMP_MILLIS_UTC
TIMESTAMP(6) TIMESTAMP_MICROS
TIMESTAMP(6) TIMESTAMP_MICROS_UTC
TIMESTAMP(9) TIMESTAMP_NANOS
VARCHAR2(4000) STRING

Parâmetros da Sessão NLS

Os parâmetros de sessão NLS NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT e NLS_NUMERIC_CHARACTERS definem como a data, o timestamp, o timestamp com formato de fuso horário e o separador de radix para timestamp com marcador decimal devem ser mostrados quando uma tabela com esses tipos de coluna é consultada.

Além disso, quando você exporta dados usando DBMS_CLOUD.EXPORT_DATA e especifica a saída Parquet, o Autonomous Database lê os valores desses parâmetros na tabela NLS_SESSION_PARAMETERS. O Autonomous Database usa esses valores para converter os tipos de dados Oracle DATE ou TIMESTAMP em tipos Parquet.

Os parâmetros NLS_SESSION_PARAMETERS suportam uma máscara de formato RR (especificação de dois caracteres por ano).

A máscara de formato RR do ano não é suportada para esses parâmetros quando você exporta dados para o Parquet com DBMS_CLOUD.EXPORT_DATA. Um erro de aplicativo será gerado se você tentar exportar para parquet e o NLS_SESSION_PARAMETERS estiver definido para usar a máscara de formato RR (o valor padrão para o formato RR depende do valor do parâmetro NLS_TERRITORY).

Quando um dos parâmetros NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT ou NLS_TIMESTAMP_TZ_FORMAT usa a máscara de formato RR, altere o valor do formato para o valor suportado para exportar dados para o Parquet com DBMS_CLOUD.EXPORT_DATA. Por exemplo:

ALTER SESSION SET NLS_DATE_FORMAT = "MM/DD/YYYY";
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF';
ALTER SESSION SET  NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM';
Depois de alterar o valor, você poderá verificar a alteração consultando a view NLS_SESSION_PARAMETERS:
SELECT value FROM NLS_SESSION_PARAMETERS 
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

Se NLS_DATE_FORMAT for definido, ele se aplicará às colunas com o tipo de dados DATE. Se NLS_TIMESTAMP_FORMAT for definido, ele se aplicará às colunas com o tipo de dados TIMESTAMP. Se NLS_TIMESTAMP_TZ_FORMAT for definido, ele se aplicará às colunas com o tipo de dados TIMESTAMP WITH TIME ZONE.

Consulte Parâmetros de Data e Hora e Views do Dicionário de Dados NLS para obter mais informações.