DBMS_CLOUD para Objetos e Arquivos
Pré-requisitos
Como desenvolvedor, você pode usar procedimentos DBMS_CLOUD com Autonomous AI Databases implantados no Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.
Dependendo da opção de implantação, os pré-requisitos a seguir devem ser atendidos para usar os procedimentos DBMS_CLOUD com provedores de serviços Amazon S3, Azure Blob Storage e Google Cloud Storage.
- Crie um gateway NAT na VCN (Rede Virtual na Nuvem) em que seus recursos do Autonomous AI Database residem seguindo as instruções em Criar um Gateway NAT na Documentação do Oracle Cloud Infrastructure.
- Após criar o gateway NAT, adicione uma regra da rota e uma regra da segurança da saída a cada sub-rede (na VCN) na qual os recursos do Autonomous AI Database residem para que esses recursos possam usar o gateway para obter a chave pública da sua instância doAzure AD
- Vá para a página Detalhes da Sub-rede da sub-rede.
- Na guia Informações da Sub-rede, clique no nome da Tabela de Rota da sub-rede para exibir sua respectiva página Detalhes da Tabela de Rota.
- Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
- Destino: 0.0.0.0/0
- Tipo de Destino: Gateway NAT
- Alvo: O nome do gateway NAT recém-criado na VCN
Se essa regra não existir, clique em Adicionar Regras de Rota e adicione uma regra de roteamento com essas características.
- Retorne à página Detalhes da Sub-rede da sub-rede.
- Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
- No menu lateral, em Recursos, clique em Regras de Saída.
- Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
- Tipo de Destino: CIDR
- Destino: 0.0.0.0/0
- Protocolo IP: TCP
- Faixa de Portas de Origem: 443
- Faixa de Portas de Destino: Todas
Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.
As definições de Proxy HTTP em seu ambiente devem permitir que o banco de dados acesse o provedor de serviços em nuvem.
Observação:
A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que o Exadata Infrastructure esteja no estado Exige Ativação. Depois de ativado, você não poderá editar essas configurações.A configuração de um Proxy HTTP para uma Infraestrutura do Exadata já provisionada precisa de uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.
DBMS_CLOUD Subprogramas para Objetos e Arquivos
Os subprogramas para gerenciamento de objetos e arquivos no pacote DBMS_CLOUD.
| Subprograma | Descrição |
|---|---|
| Este procedimento carrega dados na coleção SODA existente do Cloud Object Storage ou de arquivos em um diretório. | |
| Este procedimento carrega dados em tabelas existentes do Autonomous AI Database do Cloud Object Storage ou de arquivos em um diretório. | |
Este procedimento com o parâmetro format type definido com o valor orc, parquet ou avro carrega dados em tabelas existentes do Autonomous AI Database de arquivos ORC, Parquet ou Avro na Nuvem ou de arquivos ORC, Parquet ou Avro em um diretório.
Semelhante a arquivos de texto, os dados são copiados do arquivo ORC, Parquet ou Avro de origem para a tabela interna preexistente. |
|
| Este procedimento copia arquivos de um bucket do Cloud Object Storage para outro. | |
| Este procedimento cria uma tabela externa em arquivos da Nuvem ou em arquivos de um diretório. Isso permite que você execute consultas sobre dados externos do Autonomous AI Database. | |
|
CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet |
Esse procedimento com o parâmetro format type definido com o valor parquet, orc ou avro cria uma tabela externa com arquivos de formato Parquet, ORC ou Avro na Nuvem ou em um diretório.
Isso permite que você execute consultas sobre dados externos do Autonomous AI Database. |
|
Este procedimento cria um índice de texto nos arquivos de armazenamento de objetos. |
|
| Este procedimento cria uma tabela híbrida particionada. Isso permite que você execute consultas em dados particionados híbridos do Autonomous AI Database. | |
Este procedimento limpa todas as operações de carregamento de dados registradas na tabela user_load_operations do seu esquema ou limpa todas as operações de carregamento de dados do tipo especificado, conforme indicado com o parâmetro type.
|
|
| Este procedimento remove o arquivo especificado do diretório especificado no Autonomous AI Database | |
| Este procedimento exclui o objeto especificado no armazenamento de objetos. | |
|
Este procedimento aceita um |
|
|
Este procedimento elimina o índice de texto nos arquivos de armazenamento de objetos. |
|
Este procedimento exporta dados do Autonomous AI Database para arquivos na Nuvem com base no resultado de uma consulta. O formulário sobrecarregado permite que você use o parâmetro operation_id. Dependendo da opção type do parâmetro format especificada, o procedimento exporta linhas para o Cloud Object Store como texto com opções de CSV, JSON, Parquet ou XML |
|
Este procedimento é sobrecarregado. O formulário de procedimento lê um objeto do Cloud Object Storage e copia-o para o Autonomous AI Database. O formulário de função lê um objeto do Cloud Object Storage e retorna um BLOB para o Autonomous AI Database.
|
|
| Esta função lista os arquivos no diretório especificado. Os resultados incluem os nomes de arquivos e metadados adicionais sobre os arquivos, como tamanho do arquivo em bytes, timestamp de criação e o último timestamp de modificação. | |
| Esta função lista objetos no local especificado no armazenamento de objetos. Os resultados incluem os nomes de objetos e metadados adicionais sobre os objetos, como tamanho, soma de verificação, timestamp de criação e o último timestamp de modificação. | |
| Esse procedimento move um objeto de um bucket do Cloud Object Storage para outro. | |
Este procedimento é sobrecarregado. Em um formato, o procedimento copia um arquivo do Autonomous AI Database para o Cloud Object Storage. Em outra forma, o procedimento copia um BLOB do Autonomous AI Database para o Cloud Object Storage.
|
|
|
Esse procedimento simplifica a atualização de uma tabela particionada externa de arquivos na Nuvem. Execute esse procedimento sempre que novas partições forem adicionadas ou quando as partições forem removidas da origem de Armazenamento de Objetos da tabela particionada externa. |
|
| Este procedimento valida os arquivos de origem de uma tabela externa, gera informações de log e armazena as linhas que não correspondem às opções do formato especificado para a tabela externa em uma tabela de arquivo incorreto no Autonomous AI Database. | |
| Este procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações do log e armazena as linhas que não correspondem às opções do formato especificado para a tabela externa em uma tabela de arquivo inválido no Autonomous AI Database. | |
| Este procedimento valida os arquivos de origem para uma tabela híbrida particionada, gera informações do log e armazena as linhas que não correspondem às opções do formato especificado para a tabela híbrida em uma tabela de arquivo inválido no Autonomous AI Database. |
Procedimento COPY_COLLECTION
Este procedimento carrega dados em uma coleção SODA do Cloud Object Storage ou de um diretório. Se a coleção SODA especificada não existir, o procedimento a criará. O formulário sobrecarregado permite que você use o parâmetro operation_id.
Sintaxe
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da coleção SODA na qual os dados serão carregados. Se já existir uma coleção com esse nome, os dados especificados serão carregados; caso contrário, uma nova coleção será criada. |
|
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo: O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
|
As opções que descrevem o formato dos arquivos de origem. Essas opções são especificadas como uma string JSON. Os formatos compatíveis são: Além dos formatos mencionados para dados JSON, o Autonomous AI Database também suporta outros formatos. Para obter a lista de argumentos de formato suportados pelo Autonomous AI Database, consulte Parâmetro de Formato. |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
Exemplo
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
Procedimento COPY_DATA
Este procedimento carrega dados para tabelas do Autonomous AI Database existentes em arquivos na Nuvem ou em arquivos de um diretório. O formulário sobrecarregado permite que você use o parâmetro operation_id.
Sintaxe
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela de destino no banco de dados. A tabela de destino precisa ser criada antes de você executar |
|
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
|
Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. URIs do arquivo de origem na nuvem Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo: O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULO, o que significa que o campo e os tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula Quando o valor da opção Para obter um exemplo usando |
|
|
As opções descrevendo o formato da origem, do log e dos arquivos inválidos. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. Para as opções de formato de arquivo Avro, ORC ou Parquet, consulte Opções de Formato do Pacote DBMS_CLOUD para Avro, ORC ou Parquet. |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
Observações de Uso
O limite de registro padrão é detected newline. Com detected newline, o DBMS_CLOUD tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. O DBMS_CLOUD primeiro procura o caractere de nova linha do Windows \r\n. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, o DBMS_CLOUD procurará o do UNIX/Linux \n e, caso encontre um, ele usará \n como delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.
Consulte Parâmetro de Formato para obter informações sobre a opção de formato recorddelmiter.
Exemplos
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/Procedimento COPY_DATA para arquivos Avro, ORC ou Parquet
format type definido com o valor avro, orc ou parquet carrega dados em tabelas existentes do Autonomous AI Database de arquivos Avro, ORC ou Parquet na Nuvem ou de arquivos em um diretório.
Semelhante a arquivos de texto, os dados são copiados do arquivo de origem Avro, ORC ou Parquet para a tabela interna preexistente.
Sintaxe
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela de destino no banco de dados. A tabela de destino precisa ser criada antes de você executar |
|
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo: O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Ignorado para arquivos Avro, ORC ou Parquet. Os campos na origem correspondem às colunas da tabela externa por nome. Os tipos de dados de origem são convertidos no tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte DBMS_CLOUD Mapeamento de Tipo de Dados ORC para Oracle. Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes sobre mapeamento. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes sobre mapeamento. |
|
|
As opções que descrevem o formato dos arquivos de origem. Para arquivos Avro, ORC ou Parquet, somente duas opções são suportadas: consulte Opções de Formato do Pacote DBMS_CLOUD para Avro, ORC ou Parquet. |
Observações sobre Uso
-
Assim como em outros arquivos de dados, as cargas de dados Avro, ORC e Parquet geram logs que podem ser visualizados nas tabelas
dba_load_operationseuser_load_operations. Cada operação de carga adiciona um registro adba[user]_load_operationsque indica a tabela que contém os logs.A tabela de log fornece informações resumidas sobre a carga.
-
For Avro, ORC, or Parquet, when the
formatparametertypeis set to the valueavro,orc, orparquet, theBADFILE_TABLEtable is always empty.-
Para arquivos Parquet, erros de restrição
PRIMARY KEYgeram um erroORA. -
Se os dados de uma coluna encontrarem um erro de conversão, por exemplo, a coluna de destino não for grande o suficiente para conter o valor convertido, o valor da coluna será definido como
NULL. Isso não gera um registro rejeitado.
-
Procedimento COPY_OBJECT
Este procedimento copia um objeto de um bucket ou pasta do Cloud Object Storage para outro.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento de Objetos na Nuvem ou em outro provedor.
Quando a origem e o destino estiverem em Armazenamentos de Objetos distintos ou tiverem contas diferentes com o mesmo provedor de nuvem, você poderá fornecer nomes de credenciais separados para os locais de origem e destino.
Por padrão, o nome da credencial de origem também é usado pelo local de destino quando o nome da credencial de destino não é fornecido.
Sintaxe
DBMS_CLOUD.COPY_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage de origem. Se você não fornecer um valor |
|
|
Especifica o URI, que aponta para o local do bucket ou da pasta do Object Storage de origem. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
|
Especifica o URI do Armazenamento de Objetos de destino. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Se você não fornecer um valor |
Exemplo
BEGIN
DBMS_CLOUD.COPY_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
Procedimento CREATE_EXTERNAL_PART_TABLE
Este procedimento cria uma tabela particionada externa em arquivos da Nuvem ou em arquivos de um diretório. Isso permite que você execute consultas sobre dados externos do Autonomous AI Database.
Sintaxe
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
|
Especifica a cláusula de particionamento completo, incluindo as informações de localização para partições individuais. Se você usar o parâmetro |
|
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo:
Se você usar o parâmetro O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição |
|
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. Esse parâmetro tem os seguintes requisitos, dependendo do tipo dos arquivos de dados especificados com o parâmetro
|
|
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULO, o que significa que o campo e os tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula |
|
|
A opção de formato
Se os arquivos de dados não forem estruturados e a subcláusula Para nomes de objeto que não se baseiam no formato hive, a ordem das colunas especificadas de Para ver todas as opções de parâmetro |
Observações sobre Uso
-
Você não pode chamar esse procedimento com os parâmetros
partitioning_clauseefile_uri_list. -
A especificação do parâmetro
column_listé opcional com arquivos de dados estruturados, incluindo arquivos de dados Avro, Parquet ou ORC. Secolumn_listnão for especificado, a opçãopartition_columnsdo parâmetroformatdeverá incluirnameetype. -
O parâmetro
column_listé obrigatório com arquivos de dados não estruturados, como arquivos de texto CSV. -
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEsuporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados, que incluem:-
Oracle Cloud Infrastructure Object Storage
-
Armazenamento Blob do Azure
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEsuporta arquivos particionados externos em diretórios, seja em um sistema de arquivos local ou em um sistema de arquivos de rede. -
Quando você chama
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcom o parâmetrofile_uri_list, os tipos das colunas especificadas no nome do arquivo do Armazenamento de Objetos na Nuvem devem ser um destes:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
O limite de registro padrão é
detected newline. Comdetected newline, oDBMS_CLOUDtenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_CLOUDprimeiro procura o caractere de nova linha do Windows\r\n. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, oDBMS_CLOUDprocurará o do UNIX/Linux\ne, caso encontre um, ele usará\ncomo delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.Consulte Formatos de URI do Cloud Object Storage para obter informações sobre a opção de formato
recorddelmiter. -
As tabelas particionadas externas criadas com
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEincluem duas colunas invisíveisfile$pathefile$name. Essas colunas ajudam a identificar de qual arquivo um registro está vindo.-
file$path: Especifica o texto do caminho do arquivo até o início do nome do objeto. -
file$name: Especifica o nome do objeto, incluindo todo o texto que segue o nome do bucket.
-
Exemplos
Exemplo usando o parâmetro partitioning_clause:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
Exemplo usando os parâmetros file_uri_list e column_list com arquivos de dados não estruturados:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
Exemplo usando o file_uri_list sem o parâmetro column_list com arquivos de dados estruturados:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
CREATE_EXTERNAL_PART_TABLE Procedimento para o Serviço C3 Object Storage
Você pode usar o pacote DBMS_CLOUD para criar tabelas particionadas externas usando os objetos armazenados no Bucket de Armazenamento de Objetos C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'USAGE_EXTP',
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
format => json_object(
'type' value 'parquet', 'schema' value 'first',
'partition_columns' value json_array(
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'number'),
json_object('name' value 'day', 'type' value 'number')
)
)
);
END;
/Procedimento CREATE_EXTERNAL_TABLE
Este procedimento cria uma tabela externa em arquivos na Nuvem ou em arquivos de um diretório. Isso permite que você execute consultas sobre dados externos do Autonomous AI Database.
Sintaxe
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
O nome da credencial para acessar o Cloud Object Storage. Esse parâmetro não é usado quando você especifica um diretório ou um URL de Hiperlink de Tabela com |
|
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo: O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. |
|
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro |
|
|
As opções que descrevem o formato dos arquivos de origem. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. Para arquivos de formato Avro, ORC ou Parquet, consulte Procedimento CREATE_EXTERNAL_TABLE para Arquivos Avro, ORC ou Parquet. |
Observações sobre Uso
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_TABLEsuporta arquivos particionados externos nos serviços suportados de armazenamento de objetos na nuvem, incluindo o Azure Blob Storage.A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
O limite de registro padrão é
detected newline. Comdetected newline, oDBMS_CLOUDtenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_CLOUDprimeiro procura o caractere de nova linha do Windows\r\n. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, oDBMS_CLOUDprocurará o do UNIX/Linux\ne, caso encontre um, ele usará\ncomo delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.Consulte Parâmetro de Formato para obter informações sobre a opção de formato
recorddelimiter.
Exemplo
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
CREATE_EXTERNAL_TABLE Procedimento para o Serviço C3 Object Storage
Você pode usar o pacote DBMS_CLOUD para criar tabelas externas usando os objetos armazenados no Bucket do Serviço Object Storage C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'CHANNELS_EXT',
credential_name =>'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
format => json_object('delimiter' value ','),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
);
END;
/CREATE_EXTERNAL_TABLE Procedimento para Iceberg do Apache
Este procedimento cria tabelas externas para tabelas do Apache Iceberg nas configurações suportadas.
- Tabelas de icebergs na AWS:
- Tabelas Iceberg registradas no AWS Glue Data Catalog, criadas com o Spark ou Athena.
Para obter mais informações, consulte Usar o conector do AWS Glue para ler e gravar tabelas do Apache Iceberg com transações ACID e executar deslocamento no tempo e Usando tabelas do Iceberg.
- Tabelas Iceberg armazenadas no AWS S3 fornecendo diretamente o URL do arquivo de metadados raiz.
- Tabelas Iceberg registradas no AWS Glue Data Catalog, criadas com o Spark ou Athena.
- Tabelas de Iceberg na OCI:
- Tabelas Iceberg geradas com o OCI Data Flow usando um Catálogo Hadoop.
Para obter mais informações, consulte Exemplos do Oracle Data Flow e Usando um Catálogo do Hadoop.
- Tabelas Iceberg armazenadas no OCI Object Storage fornecendo diretamente o URL do arquivo de metadados raiz.
- Tabelas Iceberg geradas com o OCI Data Flow usando um Catálogo Hadoop.
Sintaxe
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
O nome da credencial usada para acessar os arquivos de dados, os arquivos de metadados e o Catálogo de Iceberg (se usado). Para configurações do AWS e do OCI, a credencial deve ser criada conforme descrito no CREATE_CREDENTIAL Procedure. As credenciais do AWS Amazon Resource Names (ARN) não são suportadas no momento. |
|
|
Deve ser NULO se um catálogo de Iceberg for especificado (consulte o parâmetro format abaixo). Se um catálogo de icebergs não for usado, o file_uri_list deverá conter o URI do arquivo de metadados do iceberg.
|
|
|
Deve ser NULL, pois os nomes e tipos de coluna são automaticamente derivados dos metadados Iceberg. Os nomes das colunas correspondem aos nomes encontrados nos arquivos de dados subjacentes (Parquet, Avro, ORC). Os tipos de dados Oracle são derivados usando os mapeamentos Parquet/Avro/ORC entre Iceberg e os tipos de dados Parquet, Avro e ORC. Portanto, os usuários não podem especificar o |
|
|
Deve ser NULO, pois os nomes das colunas e os tipos de dados são derivados automaticamente dos metadados do Iceberg. |
|
|
O parâmetro Consulte Suporte Iceberg em Amostras do OCI Data Flow e Formatos de URI DBMS_CLOUD para obter mais informações. |
Exemplo de parâmetro de formato para tabelas do AWS Iceberg usando um Catálogo do AWS Glue
Um parâmetro format de amostra ao criar tabelas em uma tabela do AWS Iceberg usando um Catálogo de Colas da AWS é o seguinte:
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol contém um objeto JSON com dois elementos da seguinte forma:
protocol_type: Deve ser 'iceberg'protocol_config: Um objeto JSON aninhado que especifica os detalhes do catálogo do iceberg.iceberg_catalog_type: Deve ser'aws_glue'iceberg_glue_region: A região do catálogo, por exemplo,'us-west-1'iceberg_table_path: Um caminhoglue database.glue table name.
Exemplo de parâmetro de formato da tabela do AWS Iceberg usando um URI de arquivo de metadados
format de amostra ao criar tabelas em uma tabela do AWS Iceberg usando um URI de arquivo de metadados é o seguinte:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')Exemplo de parâmetro de formato para a tabela Iceberg do OCI usando o catálogo HadoopCatalog
format de amostra ao criar tabelas por meio de uma tabela do OCI Iceberg criada pelo OCI Data Flow usando o catálogo HadoopCatalog é o seguinte:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));access_protocol contém um objeto JSON com dois elementos da seguinte forma:
protocol_type: Deve ser'iceberg'protocol_config: Um objeto JSON aninhado que especifica os detalhes do catálogo do iceberg.iceberg_catalog_type: Deve ser'hadoop'iceberg_warehouse: O caminho do diretório do warehouse usado ao gerar a tabela, no formato URI nativo.iceberg_table_path: O caminhodatabase_name.table nameusado ao criar a tabela.
Exemplo de parâmetro de formato para a tabela Iceberg do OCI usando o URI do arquivo de metadados
format de amostra ao criar tabelas por meio de uma tabela Iceberg do OCI usando o URI do arquivo de metadados é o seguinte:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')access_protocol contém um objeto JSON com um elemento da seguinte forma:
protocol_type: Deve ser'iceberg'
CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet
format type definido com o valor avro, orc ou parquet cria uma tabela externa com arquivos no formato Avro, ORC ou Parquet na Nuvem ou em um diretório.
Isso permite que você execute consultas sobre dados externos do Autonomous AI Database.
Sintaxe
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo: O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
|
(Opcional) Esse campo, quando especificado, substitui o parâmetro Quando Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos ORC, consulte Mapeamento de Tipo de Dados ORC para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes. |
|
|
Ignorado para arquivos Avro, ORC ou Parquet. Os campos na origem correspondem às colunas da tabela externa por nome. Os tipos de dados de origem são convertidos no tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte Mapeamento de Tipo de Dados ORC para Oracle do Pacote DBMS_CLOUD Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes. |
|
|
Para arquivos de origem Avro, ORC ou Parquet |
Exemplos de ORC
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Exemplos de Avro
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Exemplos de Parquet
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')Mapeamento de Nome de Coluna Avro, ORC ou Parquet para Nomes de Coluna Oracle
Consulte Mapeamento de Nome de Coluna Avro, ORC e Parquet para Oracle do Pacote DBMS_CLOUD para obter informações sobre mapeamento de nome de coluna e uso de conversão de nome de coluna no Oracle SQL.
Procedimento CREATE_EXTERNAL_TEXT_INDEX
Este procedimento cria um índice de texto em arquivos do Object Storage.
O procedimento CREATE_EXTERNAL_TEXT_INDEX cria índice de texto nos arquivos do Object Storage especificados no local location_uri. O índice é atualizado em intervalos regulares, para quaisquer novas adições ou exclusões feitas com arquivos no URI do local.
Sintaxe
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o local do Cloud Object Storage. Para URIs de bucket públicos, pré-autenticados ou pré-assinados, um NULL pode ser especificado. Se você não fornecer um valor |
location_uri |
Este parâmetro especifica a lista delimitada por vírgulas de URIs de arquivos de origem. Você pode usar curingas, bem como expressões regulares nos nomes de arquivo em URIs de arquivo de origem na Nuvem. Esse parâmetro é obrigatório. URIs de arquivo de origem na nuvem Este parâmetro especifica uma lista delimitada por vírgulas de URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Só há suporte para padrões de expressão regular no nome do arquivo ou no caminho da subpasta em seus URIs, e a correspondência de padrões é idêntica à executada pela função Exemplo de uso de expressões regulares:
Exemplo usando curingas:
O formato dos URIs depende do serviço do Cloud Object Storage que você estiver usando. Para obter detalhes, consulte Formatos do Cloud Object Storage URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição |
index_name |
Especifica o nome do índice que você está construindo nos arquivos localizados no local location_uri.
Esse parâmetro é obrigatório. |
|
|
Especifica opções de configuração adicionais. As opções são especificadas como uma string JSON. As opções de formato suportadas são:
O valor Você pode especificar palavras de parada usando os seguintes métodos:
Se você não fornecer um parâmetro |
Exemplo
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/Procedimento CREATE_HYBRID_PART_TABLE
Este procedimento cria uma tabela híbrida particionada. Isso permite que você execute consultas em dados particionados híbridos do Autonomous AI Database usando objetos e arquivos de banco de dados na Nuvem ou objetos e arquivos de banco de dados em um diretório.
Sintaxe
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
|
Especifica a cláusula de particionamento completo, incluindo as informações de localização para partições individuais. Para usar diretórios, a cláusula de particionamento suporta os valores Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo: Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações sobre a condição |
|
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. |
|
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULO, o que significa que o campo e os tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula |
|
|
As opções que descrevem o formato dos arquivos de origem. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. |
Observações sobre Uso
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEsuporta arquivos particionados externos nos serviços suportados de armazenamento de objetos na nuvem, incluindo o Azure Blob Storage.A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEsuporta arquivos particionados híbridos em diretórios, seja em um sistema de arquivos local ou em um sistema de arquivos de rede. -
As tabelas particionadas externas criadas com
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEincluem duas colunas invisíveisfile$pathefile$name. Essas colunas ajudam a identificar de qual arquivo um registro está vindo.-
file$path: Especifica o texto do caminho do arquivo até o início do nome do objeto. -
file$name: Especifica o nome do objeto, incluindo todo o texto que segue o nome do bucket.
-
Exemplos
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/Procedimento DELETE_ALL_OPERATIONS
Este procedimento limpa todas as operações de carregamento de dados registradas na tabela user_load_operations do seu esquema ou limpa todas as operações de carregamento de dados do tipo especificado, conforme indicado com o parâmetro type.
Sintaxe
DBMS_CLOUD.DELETE_ALL_OPERATIONS (
type IN VARCHAR DEFAULT NULL);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Especifica o tipo de operação a ser excluída. Valores de tipo podem ser encontrados na coluna Se nenhum |
Observações de Uso
-
DBMS_CLOUD.DELETE_ALL_OPERATIONSnão exclui operações em execução no momento (operações com status "Em Execução").
Procedimento DELETE_FILE
Este procedimento remove o arquivo especificado do diretório especificado no Autonomous AI Database.
Sintaxe
DBMS_CLOUD.DELETE_FILE (
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE); Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome do diretório na instância do Autonomous AI Database. |
|
|
O nome do arquivo a ser removido. |
force |
Ignore e não relate erros se o arquivo não existir. Os valores válidos são: |
Observação:
Para executarDBMS_CLOUD.DELETE_FILE com um usuário diferente de ADMIN, você precisa conceder privilégios de gravação no diretório que contém o arquivo a esse usuário.Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de gravação a atpc_user:GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;Exemplo
BEGIN
DBMS_CLOUD.DELETE_FILE(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Procedimento DELETE_OBJECT
Este procedimento exclui o objeto especificado no armazenamento de objetos.
Sintaxe
DBMS_CLOUD.DELETE_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage. |
object_uri |
Objeto ou URI do arquivo para o objeto a ser excluído. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
force |
Ignorar e não relatar erros se o objeto não existir. Os valores válidos são: |
Exemplo
BEGIN
DBMS_CLOUD.DELETE_OBJECT(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
Procedimento DELETE_OPERATION
Este procedimento limpa as entradas de carga de dados para o ID de operação especificado registrado nas tabelas user_load_operations ou dba_load_operations no seu esquema.
Sintaxe
DBMS_CLOUD.DELETE_OPERATION (
id IN NUMBER);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Especifica o ID da operação associado às entradas do arquivo de log que você deseja excluir. |
Exemplo
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);
Procedimento DROP_EXTERNAL_TEXT_INDEX
Este procedimento elimina o índice de texto nos arquivos do Object Storage.
O procedimento DROP_EXTERNAL_TEXT_INDEX elimina o índice especificado criado com o procedimento CREATE_EXTERNAL_TEXT_INDEX.
Sintaxe
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name IN VARCHAR2,
);Parâmetros
| Parâmetro | Descrição |
|---|---|
index_name |
Especifica o nome do índice que você está eliminando. O nome do índice deve corresponder ao nome fornecido no momento da criação do índice. Esse parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name => 'EMP',
);
END;
/Procedimento EXPORT_DATA
Com base no parâmetro format type, o procedimento exporta arquivos para a Nuvem ou para um local de diretório como arquivos de texto no formato CSV, JSON, Parquet ou XML.
Sintaxe
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage. Quando o parâmetro de credencial não é incluído, isso especifica a saída para um diretório. |
|
|
Existem diferentes formulários, dependendo do valor do parâmetro de formato e se você incluir um parâmetro de credencial:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
|
Uma string JSON que fornece opções de formato de exportação. A opção suportada é:
Consulte DBMS_CLOUD Opções de Formato do Pacote para EXPORT_DATA. |
|
|
Use esse parâmetro para especificar uma instrução SELECT warehouse_id, quantity FROM inventoriesQuando o valor Por exemplo: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de exportação como ID correspondente na view |
Observações de Uso:
-
O valor do parâmetro
queryfornecido pode ser uma consulta avançada, se necessário, como uma consulta que inclui junções ou subconsultas. -
Dependendo do parâmetro de formato especificado,
DBMS_CLOUD.EXPORT_DATAgera os resultados da consulta especificada no Cloud Object Store ou em um local de diretório nos formatos de arquivo CSV, JSON, Parquet ou XML.Consulte Exportar Dados para o Armazenamento de Objetos como Texto Usando DBMS_CLOUD.EXPORT_DATA e Exportar dados para um Diretório Usando DBMS_CLOUD.EXPORT_DATA para obter mais informações sobre o uso de
DBMS_CLOUD.EXPORT_DATAcom arquivos de saída CSV, JSON, Parquet ou XML. -
Para saída CSV, JSON ou XML, por padrão, quando um arquivo gerado contém 10 MB de dados, um novo arquivo de saída é criado. No entanto, se você tiver menos de 10 MB de dados de resultado, poderá ter vários arquivos de saída, dependendo do serviço de banco de dados e do número de ECPUs (OCPUs se seu banco de dados usar OCPUs) para a instância do Autonomous AI Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
O tamanho do chunk do arquivo de saída padrão é 10 MB para CSV, JSON ou XML. Você pode alterar esse valor com a opção
maxfilesizedo parâmetroformat. Consulte DBMS_CLOUD Opções de Formato do Pacote para EXPORT_DATA para obter mais informações. -
Para saída CSV, JSON ou XML, por padrão, quando um arquivo gerado contém 10 MB de dados, um novo arquivo de saída é criado. No entanto, se você tiver menos de 10 MB de dados de resultado, poderá ter vários arquivos de saída, dependendo do serviço de banco de dados e do número de ECPUs (OCPUs se seu banco de dados usar OCPUs) para a instância do Autonomous AI Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
- O formato de saída parquet só pode ser usado com serviços de banco de dados de alto e médio porte para Autonomous AI Databases na Infraestrutura Dedicada do Exadata.
Observações de Uso de DBMS_CLOUD.EXPORT_DATA com Saída para um Diretório
-
O diretório fornecido deve existir e você deve estar conectado como o usuário
ADMINou ter acessoWRITEao diretório. -
O
DBMS_CLOUD.EXPORT_DATAnão cria diretórios. -
O procedimento não substitui arquivos. Por exemplo, se um arquivo de dump no
file_uri_listexistir, oDBMS_CLOUD.EXPORT_DATAreportará um erro como:ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
Exemplos
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA com o parâmetro de formato type com o valor json:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA com o parâmetro de formato type com o valor xml:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA com o parâmetro de formato type com o valor csv:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/ Procedimento e Função GET_OBJECT
Este procedimento é sobrecarregado. O formulário de procedimento lê um objeto do Cloud Object Storage e copia-o para o Autonomous AI Database. O formulário de função lê um objeto do Cloud Object Storage e retorna um BLOB para o Autonomous AI Database.
Sintaxe
DBMS_CLOUD.GET_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
|
URI do objeto ou do arquivo. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
|
O nome do diretório no banco de dados. Rodapé 1 |
|
|
Especifica o nome do arquivo a ser criado. Se o nome do arquivo não for especificado, o nome do arquivo será obtido após a última barra no parâmetro |
startoffset |
O deslocamento, em bytes, de onde o procedimento inicia a leitura. |
endoffset |
O deslocamento, em bytes, até onde o procedimento interrompe a leitura. |
|
|
Especifica a compactação usada para armazenar o objeto. Quando o parâmetro |
Rodapé 1
Observação:
Para executar DBMS_CLOUD.GET_OBJECT com um usuário distinto de ADMIN, você precisa conceder privilégios WRITE no diretório a esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de gravação a atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valores de Retorno
O form de função é lido no Armazenamento de Objetos e DBMS_CLOUD.GET_OBJECT retorna um BLOB.
Exemplos
BEGIN
DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
Para ler dados de caracteres de um arquivo no Armazenamento de Objetos:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
Para adicionar uma imagem colocada no Armazenamento de Objetos em um BLOB no banco de dados:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.
Função LIST_FILES
Esta função lista os arquivos no diretório especificado. Os resultados incluem os nomes de arquivos e metadados adicionais sobre os arquivos, como tamanho do arquivo em bytes, timestamp de criação e o último timestamp de modificação.
Sintaxe
DBMS_CLOUD.LIST_FILES (
directory_name IN VARCHAR2)
RETURN TABLE;
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome do diretório no banco de dados. Este parâmetro suporta curingas. |
Observações sobre Uso
-
Para executar
DBMS_CLOUD.LIST_FILEScom um usuário distinto de ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário.Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de leitura aatpc_user:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user; -
Essa é uma função de tabela em pipeline com tipo de retorno como
DBMS_CLOUD_TYPES.list_object_ret_t. -
O
DBMS_CLOUD.LIST_FILESnão obtém o valor da soma de verificação e retornaNULLpara esse campo. -
DBMS_CLOUD.LIST_FILESsuporta a filtragem seletiva de arquivos usando a sintaxedirectory:filename. Curingas são suportados no nome do arquivo.
Exemplo:
Essa é uma função em pipeline que retorna uma linha para cada arquivo. Por exemplo, use a consulta a seguir para usar esta função:
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- ---------- --------------------- ---------------------
cwallet.sso 2965 2018-12-12T18:10:47Z 2019-11-23T06:36:54Z
Exemplos de consultas usando curingas:
Você pode usar DBMS_CLOUD.LIST_FILES com a sintaxe DIRECTORY:FILE, especificando um arquivo ou usando curingas. * e ? são os caracteres curinga suportados.
Exemplo 1: Liste todos os arquivos CSV que começam com "f" no diretório DATA_PUMP_DIR usando um curinga.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
Exemplo 2: Liste o arquivo f1.csv no diretório DATA_PUMP_DIR especificando o nome do arquivo.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
Função LIST_OBJECTS
Esta função lista objetos no local especificado no armazenamento de objetos. Os resultados incluem os nomes de objetos e metadados adicionais sobre os objetos, como tamanho, soma de verificação, timestamp de criação e o último timestamp de modificação.
Sintaxe
DBMS_CLOUD.LIST_OBJECTS (
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage. |
location_uri |
Bucket de armazenamento de objetos ou URI de pasta. O formato dos URIs depende do serviço do Cloud Object Storage que você estiver usando. Para obter detalhes, consulte Formatos do Cloud Object Storage URI. Os curingas são suportados para listar seletivamente arquivos ou subpastas em um URI. Os caracteres " Exemplo usando curingas: |
Observações sobre Uso
-
Dependendo dos recursos do armazenamento de objetos, o
DBMS_CLOUD.LIST_OBJECTSnão retorna valores para determinados atributos e o valor de retorno do campo éNULLnesse caso.Todos os Armazenamentos de Objetos suportados retornam valores para os campos
OBJECT_NAME,BYTESeCHECKSUM.A tabela a seguir mostra o suporte para os campos
CREATEDeLAST_MODIFIEDpelo Armazenamento de Objetos:Armazenamento de Objetos CREATEDLAST_MODIFIEDOracle Cloud Infrastructure Nativo Retorna o timestamp Retorna o timestamp Swift da Oracle Cloud Infrastructure Retorna NULLRetorna o timestamp Amazon S3 Retorna NULLRetorna o timestamp Compatível com Amazon S3 Retorna NULLRetorna o timestamp Azure Retorna o timestamp Retorna o timestamp -
O valor da soma de verificação é a soma de verificação MD5. Esse é um número hexadecimal de 32 caracteres que é calculado no conteúdo do objeto.
-
Essa é uma função de tabela em pipeline com tipo de retorno como
DBMS_CLOUD_TYPES.list_object_ret_t.
Exemplo
Essa é uma função em pipeline que retorna uma linha para cada objeto. Por exemplo, use a consulta a seguir para usar esta função:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.
Procedimento MOVE_OBJECT
Esse procedimento move um objeto de um bucket ou pasta do Cloud Object Storage para outro.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento de Objetos na Nuvem ou em outro provedor.
Quando a origem e o destino estiverem em Armazenamentos de Objetos distintos ou tiverem contas diferentes com o mesmo provedor de nuvem, você poderá fornecer nomes de credenciais separados para os locais de origem e destino.
Por padrão, o nome da credencial de origem também é usado pelo local de destino quando o nome da credencial de destino não é fornecido.
Sintaxe
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage de origem. Se você não fornecer um valor |
|
|
Especifica o URI, que aponta para o local do bucket ou da pasta do Object Storage de origem. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
|
Especifica o URI do bucket ou pasta do Object Storage de destino, onde os arquivos precisam ser movidos. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Se você não fornecer um valor |
Exemplo
BEGIN
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
Procedimento PUT_OBJECT
Este procedimento é sobrecarregado. Em um formato, o procedimento copia um arquivo do Autonomous AI Database para o Cloud Object Storage. Em outra forma, o procedimento copia um BLOB do Autonomous AI Database para o Cloud Object Storage.
Sintaxe
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
|
URI do objeto ou do arquivo. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
|
O nome do diretório no Autonomous AI Database. Rodapé 1 |
|
|
Especifica o |
|
|
O nome do arquivo no diretório especificado. |
|
|
Especifica a compactação usada para armazenar o objeto. Valor padrão: |
Rodapé 1
Observação:
Para executar DBMS_CLOUD.PUT_OBJECT com um usuário que não seja ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de leitura a atpc_user:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
Exemplo
Para tratar dados BLOB após o processamento no banco de dados e, em seguida, armazenar os dados diretamente em um arquivo no armazenamento de objetos:
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
Observações sobre Uso
Dependendo do Cloud Object Storage, o tamanho do objeto que você transfere é limitado da seguinte forma:
| Serviço Cloud Object Storage | Limite de Tamanho de Transferência de Objeto |
|---|---|
|
Oracle Cloud Infrastructure Object Storage |
50 GB |
|
Amazon S3 |
5 GB |
|
Armazenamento Blob do Azure |
256 MB |
|
Compatível com Amazon S3 |
Definido pelo provedor de armazenamento de objetos. Para obter mais informações, consulte a documentação do provedor. |
O armazenamento de objetos do Oracle Cloud Infrastructure não permite gravar arquivos em um bucket público sem fornecer credenciais (o Oracle Cloud Infrastructure permite que os usuários façam download de objetos de buckets públicos). Portanto, você deve fornecer um nome de credencial com credenciais válidas para armazenar um objeto em um bucket público do Oracle Cloud Infrastructure usando PUT_OBJECT.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
Procedimento SYNC_EXTERNAL_PART_TABLE
Esse procedimento simplifica a atualização de uma tabela particionada externa de arquivos na Nuvem. Execute esse procedimento sempre que novas partições forem adicionadas ou quando as partições forem removidas da origem de Armazenamento de Objetos da tabela particionada externa.
Sintaxe
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela de destino. É necessário criar a tabela de destino antes de executar |
|
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Os novos arquivos podem introduzir uma alteração no esquema. As atualizações suportadas incluem: novas colunas, colunas excluídas. Atualizações de colunas existentes, por exemplo, uma alteração no tipo de dados gera erros. Valor padrão: falso |
Procedimento VALIDATE_EXTERNAL_PART_TABLE
Este procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações do log e armazena as linhas que não correspondem às opções do formato especificado para a tabela externa em uma tabela de arquivo incorreto no Autonomous AI Database. O formulário sobrecarregado permite que você use o parâmetro operation_id.
Sintaxe
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
|
Se definido, apenas uma partição específica será validada. Se não for especificado, leia todas as partições sequencialmente até atingir |
|
|
Se definido, apenas uma subpartição específica será validada. Se não for especificado, leia sequencialmente todas as partições ou subpartições externas até atingir |
|
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
|
Somente para uso interno. Não use esse parâmetro. |
|
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é |
Procedimento VALIDATE_EXTERNAL_TABLE
Este procedimento valida os arquivos de origem de uma tabela externa, gera informações de log e armazena as linhas que não correspondem às opções do formato especificado para a tabela externa em uma tabela de arquivo incorreto no Autonomous AI Database. O formulário sobrecarregado permite que você use o parâmetro operation_id.
Sintaxe
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE(
table_name IN VARCHAR2,
operation_id OUT NOCOPY NUMBER,
schema_name IN VARCHAR2 DEFAULT NULL,
rowcount IN NUMBER DEFAULT 0,
stop_on_error IN BOOLEAN DEFAULT TRUE);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é Se a tabela externa se mencionar os arquivos Avro, ORC ou Parquet, a validação será interrompida na primeira linha rejeitada. Quando a tabela externa especifica o parâmetro |
Observações sobre Uso
-
O
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLEfunciona com tabelas externas particionadas e tabelas híbridas particionadas. Isso potencialmente lê dados de todas as partições externas até querowcountseja atingido oustop_on_errorseja aplicado. Você não tem controle sobre qual partição, ou partes de uma partição, é lida em que ordem.
Procedimento VALIDATE_HYBRID_PART_TABLE
Este procedimento valida os arquivos de origem de uma tabela particionada híbrida, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela híbrida em uma tabela badfile no Autonomous AI Database. O formulário sobrecarregado permite que você use o parâmetro operation_id.
Sintaxe
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
O nome da tabela externa. |
|
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
|
Se definido, apenas uma partição específica será validada. Se não for especificado, leia todas as partições externas sequencialmente até que |
|
|
Se definido, apenas uma subpartição específica será validada. Se não for especificado, leia sequencialmente todas as partições ou subpartições externas até atingir |
|
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
|
Somente para uso interno. Não use esse parâmetro. |
|
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é |