Carregar Dados de Diretórios no Autonomous Database
Como alternativa a um URI de local do armazenamento de objetos, você pode especificar um diretório com procedimentos DBMS_CLOUD
para carregar ou descarregar dados de arquivos em um diretório local, incluindo diretórios criados nos sistemas de arquivos de rede anexados.
Os procedimentos a seguir suportam a especificação de arquivos em um diretório com o parâmetro file_uri_list
:
DBMS_CLOUD.COPY_COLLECTION
DBMS_CLOUD.COPY_DATA
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
Os procedimentos a seguir suportam a especificação de arquivos em um diretório com o parâmetro partitioning_clause
:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
Você pode especificar um diretório e um ou mais nomes de arquivo ou usar uma lista separada por vírgulas de diretórios e nomes de arquivo. O formato para especificar um diretório é:'MY_DIR:filename.ext'
. Por padrão, o nome do diretório MY_DIR
é um objeto de banco de dados e não faz distinção entre maiúsculas e minúsculas. O nome do arquivo diferencia maiúsculas de minúsculas.
Quando você usa o parâmetro file_uri_list
para especificar um diretório, não precisa incluir o parâmetro credential_name
, mas precisa de privilégios de objeto READ
no diretório.
Por exemplo, com uma chamada para DBMS_CLOUD.COPY_DATA
, use o parâmetro file_uri_list
para especificar arquivos em um diretório:
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'HRDATA1',
file_uri_list => 'HR_DIR:test.csv',
format => JSON_OBJECT('type' value 'csv') );
END;
/
Este exemplo copia os dados de test.csv
no diretório local HR_DIR
para a tabela HRDATA1
.
Expressões regulares não são suportadas ao especificar os nomes de arquivo em um diretório. Você só pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, e o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo:'MY_DIR:*"
ou 'MY_DIR:test?'
Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo:'MY_DIR1:*, MY_DIR2:test?'
use aspas duplas para especificar um nome de diretório com distinção entre maiúsculas e minúsculas. Por exemplo:'"my_dir1":*, "my_dir2":Test?'
Para incluir um caractere de aspas, use duas aspas. Por exemplo:'MY_DIR:''filename.ext'
. Isso especifica que filename
começa com uma cotação ('
).
Consulte Anexar Sistema de Arquivos de Rede ao Autonomous Database para obter informações sobre como anexar sistemas de arquivos de rede.
Observações sobre o Uso de Diretórios com Procedimentos DBMS_CLOUD
Observe o seguinte ao usar procedimentos DBMS_CLOUD
e especificar um diretório com o parâmetro file_uri_list
:
-
Opções de compactação para arquivos como GZIP não são suportadas para arquivos de diretório. Consulte a opção de formato
compression
em DBMS_CLOUD Package Format Options para obter mais informações. -
Caracteres especiais como dois-pontos (:), aspas simples(') e vírgula(,) não são suportados no nome do diretório.
Tópico principal: Criando e Gerenciando Diretórios no Autonomous Database