DBMS_CLOUD Subprogramas e APIs REST
Esta seção abrange os subprogramas e as APIs REST do DBMS_CLOUD
que acompanham o Autonomous Database.
Para executar subprogramas
DBMS_CLOUD
com um usuário diferente de ADMIN, conceda privilégios EXECUTE
a esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios a adb_user
:GRANT EXECUTE ON DBMS_CLOUD TO adb_user;
O pacote DBMS_CLOUD
é composto por:
- DBMS_CLOUD para Gerenciamento de Acesso
Os subprogramas para gerenciamento de credenciais no pacote DBMS_CLOUD, incluindo criar, excluir e atualizar credenciais. - DBMS_CLOUD para Objetos e Arquivos
Os subprogramas para gerenciamento de objetos e arquivos no pacote DBMS_CLOUD. - DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Os subprogramas para operações de arquivos em massa no pacote DBMS_CLOUD. - DBMS_CLOUD APIs REST
Esta seção abrange as APIs RESTDBMS_CLOUD
fornecidas com o Autonomous Database.
Tópico principal: DBMS_CLOUD Pacote
DBMS_CLOUD para Gerenciamento de Acesso
Os subprogramas para gerenciamento de credenciais no pacote DBMS_CLOUD, incluindo criar, excluir e atualizar credenciais.
Subprograma | Descrição |
---|---|
Este procedimento armazena credenciais de serviço de nuvem no Autonomous Database. | |
Este procedimento remove uma credencial existente do Autonomous Database. | |
Esse procedimento atualiza imediatamente o segredo do vault de uma credencial de segredo do vault para obter a versão mais recente do segredo do vault para o |
|
Este procedimento atualiza atributos de credenciais de serviço em nuvem no Autonomous Database. |
- Procedimento CREATE_CREDENTIAL
Este procedimento armazena credenciais de serviço de nuvem no Autonomous Database. - Procedimento DROP_CREDENTIAL
Este procedimento remove uma credencial existente do Autonomous Database. - Procedimento REFRESH_VAULT_CREDENTIAL
Este procedimento atualiza o segredo do vault de uma credencial secreta do vault. - Procedimento UPDATE_CREDENTIAL
Esse procedimento atualiza um atributo com um novo valor para umcredential_name
especificado.
Tópico principal: DBMS_CLOUD Subprogramas e APIs REST
CREATE_CREDENTIAL Procedimento
Este procedimento armazena credenciais de serviço de nuvem no Autonomous Database.
Use credenciais de serviço de nuvem armazenadas para acessar o serviço de nuvem para carregamento de dados, para consulta de dados externos residentes na nuvem ou para outros casos ao usar procedimentos DBMS_CLOUD
com um parâmetro credential_name
. Este procedimento é sobrecarregado:
-
Use os parâmetros relacionados ao Oracle Cloud Infrastructure, incluindo:
user_ocid
,tenancy_ocid
,private_key
efingerprint
somente quando estiver usando a autenticação Chaves de Assinatura do Oracle Cloud Infrastructure. -
Use o parâmetro
params
para uma das seguintes opções:-
Credenciais de ARNs (Amazon Resource Names)
-
Credenciais do Google Analytics ou do Google BigQuery
-
Credenciais de segredo do vault para uso com um vault suportado:
- Oracle Cloud Infrastructure Vault
- Vault Principal do Azure
- AWS Secrets Manager
- Gerenciador de segredos do GCP
-
Sintaxe
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
params IN CLOB DEFAULT);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser armazenada. O parâmetro |
|
Os argumentos |
|
Os argumentos |
|
Especifica o texto do comentário da credencial. Este campo pode ser útil para descrever e distinguir entre credenciais. O tamanho máximo do comentário é de 3800 caracteres. |
|
Especifica o OCID do usuário. Consulte Onde Obter o OCID da Tenancy e o OCID do Usuário para obter detalhes sobre como obter o OCID do Usuário. |
|
Especifica o OCID da tenancy. Consulte Onde Obter o OCID da Tenancy e o OCID do Usuário para obter detalhes sobre como obter o OCID da Tenancy. |
|
Especifica a chave privada gerada. Não há suporte para chaves privadas geradas com uma frase-senha. É necessário gerar a chave privada sem uma frase-senha. Consulte Como Gerar uma Chave de Assinatura de API para obter detalhes sobre a geração de um par de chaves no formato PEM. |
|
Especifica uma impressão digital. Após o upload de uma chave pública gerada para a conta do usuário, a impressão digital é exibida na console. Use a impressão digital exibida para esse argumento. Consulte Como Obter a Impressão Digital da Chave e Como Gerar uma Chave de Assinatura de API para obter mais detalhes. |
|
Especifica parâmetros de credencial para um dos seguintes itens:
|
Observações de Uso
-
Esta operação armazena as credenciais no banco de dados em um formato criptografado.
-
Você pode ver as credenciais no seu esquema consultando a tabela
user_credentials
. -
Você pode ver os comentários da credencial no seu esquema consultando a tabela
user_credentials
. Por exemplo:SELECT comments FROM user_credentials WHERE credential_name = 'MY_CRED';
-
O usuário
ADMIN
pode ver todas as credenciais consultando a tabeladba_credentials
. -
Você só precisa criar credenciais uma vez, a menos que suas credenciais de serviço de nuvem mudem. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para procedimentos
DBMS_CLOUD
que exigem um parâmetrocredential_name
. -
Este procedimento é sobrecarregado. Se você fornecer um dos atributos de autenticação baseados em chave,
user_ocid
,tenancy_ocid
,private_key
oufingerprint
, será considerado que que a chamada é uma credencial baseada na Chave de Assinatura do Oracle Cloud Infrastructure. -
Você pode listar credenciais na view
ALL_CREDENTIALS
. Por exemplo, execute o seguinte comando para listar credenciais:SELECT credential_name, username, comments FROM all_credentials;
Credenciais do Oracle Cloud Infrastructure (Tokens de Autenticação)
Para o Oracle Cloud Infrastructure, o username
é o seu nome de usuário do Oracle Cloud Infrastructure. A password
é o seu token de autenticação do Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Use credenciais baseadas em Token de Autenticação ao autenticar chamadas para o OCI Object Storage. Para chamadas para qualquer outro tipo de serviço de nuvem do Oracle Cloud Infrastructure, use Credenciais Baseadas em Chave de Assinatura do Oracle Cloud Infrastructure.
Para o OCI Object Storage, o valor do parâmetro username
deve incluir o domínio de Identidades e o nome de usuário do seu perfil. Você pode encontrar o domínio de Identidades associado a um usuário na Console do Oracle Cloud Infrastructure.
Por exemplo:
oracleidentitycloudservice/adb_user@example.com
Com o domínio de Identidades padrão, você não precisa incluir o nome de domínio Default
. Por exemplo:
adb_user@example.com
Credenciais Baseadas em Chave de Assinatura do Oracle Cloud Infrastructure
Use os parâmetros relacionados à chave de assinatura do Oracle Cloud Infrastructure, incluindo: user_ocid
, tenancy_ocid
, private_key
e fingerprint
com a autenticação de Chaves de Assinatura do Oracle Cloud Infrastructure.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Não há suporte para chaves privadas geradas com uma frase-senha. É necessário gerar a chave privada sem uma frase-senha. Consulte Como Gerar uma Chave de Assinatura de API para obter mais informações.
Credenciais do Oracle Cloud Infrastructure Object Storage Classic
Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage Classic, username
será seu nome de usuário do Oracle Cloud Infrastructure Classic e password
será sua senha do Oracle Cloud Infrastructure Classic.
Credenciais do Amazon Web Services (AWS)
Se seus arquivos de origem residirem no Amazon S3 ou você estiver chamando uma API da AWS, username
será seu ID da chave de acesso da AWS e password
será sua chave de acesso secreta da AWS. Consulte AWS Identity and Access Management.
Credenciais do Microsoft Azure
Se seus arquivos de origem residirem no Armazenamento de Blobs do Azure ou no Armazenamento do Data Lake do Azure ou você estiver chamando uma API do Azure, username
será o nome da conta de armazenamento do Azure e password
será uma chave de acesso à conta de armazenamento do Azure. Consulte Sobre contas de armazenamento do Azure.
Credenciais Compatíveis com o Amazon S3
Serviço | Informações de Credenciais |
---|---|
Oracle Cloud Infrastructure (Chaves Secretas do Cliente) |
Se seus arquivos de origem residirem no Oracle Cloud Infrastructure, você precisará usar Chaves Secretas do Cliente com URLs compatíveis com o S3. Consulte Como Trabalhar com Chaves Secretas do Cliente para obter mais informações. |
Google Cloud Storage |
Se seus arquivos de origem residirem no Google Cloud Storage ou você estiver chamando APIs do Google Cloud Storage, será necessário definir um projeto padrão do Google e obter uma chave HMAC para criar credenciais a serem fornecidas com URLs compatíveis com o S3 do Google Cloud Storage. Use o id da chave HMAC como o nome do usuário e o segredo HMAC como a senha. Consulte Projetos e Chaves HMAC para obter mais informações. |
Wasabi Hot Cloud Storage |
Se seus arquivos de origem residirem no Wasabi Hot Cloud Storage ou você estiver chamando APIs do Wasabi Hot Cloud Storage, você precisará das Chaves de Acesso para criar credenciais a serem fornecidas com URLs compatíveis com o S3. Use a Chave de Acesso do Wasabi Hot Cloud Storage como o nome do usuário e a Chave Secreta do Wasabi Hot Cloud Storage como a senha. Consulte Criando um Conjunto de Chaves de Acesso à API do Wasabi para obter mais informações. |
Credenciais do ARN (Amazon Resource Names) da AWS
Se seus arquivos de origem residirem no Amazon S3 ou você estiver chamando uma API da AWS, use params
para especificar os parâmetros do ARN (Amazon Resource Names).
Parâmetro | Valor |
---|---|
aws_role_arn |
Especifica o Amazon Resource Name (ARN) que identifica a atribuição da AWS. Se esse parâmetro não for informado ao criar a credencial, |
external_id_type |
Se preferir, defina Se esse parâmetro não for fornecido ao criar a credencial, o valor padrão será |
Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'MY_CRED',
params => JSON_OBJECT(
'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
'external_id_type' value 'database_ocid'));
END;
/
GitHub Token de Acesso Pessoal
Se seus arquivos de origem residirem em um repositório GitHub ou você estiver chamando uma API GitHub, username
será seu e-mail GitHub e password
será seu token de acesso pessoal GitHub. Consulte Criando um token de acesso pessoal para obter mais informações.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'MY_GITHUB_CRED',
username => 'user@example.com',
password => 'your_personal_access_token' );
END;
/
Credenciais do Google Analytics ou do Google BigQuery
Se você estiver acessando o Google Analytics ou o Google BigQuery, use o parâmetro params
para especificar os parâmetros de credencial OAuth 2.0 do Google.
Parâmetro | Valor |
---|---|
gcp_oauth2 |
Especifica o acesso OAuth 2.0 para o Google Analytics ou Google BigQuery com um objeto JSON que inclui os seguintes parâmetros e seus valores:
Consulte Usando OAuth 2.0 para Acessar APIs do Google para obter mais informações sobre as credenciais do Google OAuth. |
Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'GOOGLE_BIGQUERY_CRED',
params => JSON_OBJECT('gcp_oauth2' value
JSON_OBJECT(
'client_id' value 'client_id',
'client_secret' value 'client_secret',
'refresh_token' value 'refresh_token' )));
END;
/
Credenciais de Segredo do Vault com o Oracle Cloud Infrastructure Vault
Para criar credenciais de segredo do vault com o Oracle Cloud Infrastructure Vault, use o parâmetro params
para especificar os parâmetros necessários:
-
username
: Especifica o nome de usuário de qualquer tipo de credencial de nome de usuário/senha, como o nome de usuário da senha Swift do OCI. Por exemplo, se você tiver uma credencial Swift com o nome de usuário "scott" e a senha como "password", forneça "scott" como o parâmetrousername
. -
secret_id
: É o ID do segredo do vault. Especifique o valorsecret_id
como o OCID do segredo do vault. Consulte Visão Geral do Vault para obter mais informações. -
region
: É um parâmetro opcional que especifica o identificador da região do oracle cloud. A região, quando especificada, indica o local onde o segredo do Oracle Cloud Infrastructure Vault está localizado.Por padrão,
CREATE_CREDENTIAL
usa oregion
mapeado da chave de região nosecret_id
. Um exemplo de região éus-ashburn-1
.Consulte Regiões e Domínios de Disponibilidade para obter uma lista completa de regiões.
Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'OCI_SECRET_CRED',
params => JSON_OBJECT(
'username' value 'scott',
'region' value 'us-ashburn-1',
'secret_id' value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/
Observações sobre o uso de um segredo do Oracle Cloud Infrastructure Vault para armazenar segredos do vault:
- Ao usar um Oracle Cloud Infrastructure Vault, na instância do Autonomous Database, você deve ativar a autenticação principal com
DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL
. -
No Oracle Cloud Infrastructure, você deve especificar uma política para que o controlador de recursos acesse o segredo.
Para criar uma credencial secreta do vault, você deve ter o privilégio EXECUTE
no pacote DBMS_CLOUD
.
Credenciais de Segredo do Vault com o Azure Key Vault
Para criar credenciais do Azure Key Vault, use o parâmetro params
para especificar os parâmetros necessários:
-
username
: Especifica o nome de usuário associado à chave. -
secret_id
: Especifica o nome do segredo. -
azure_vault_name
: Especifica o nome do vault no qual o segredo está localizado.
Consulte Criar um vault de chaves para obter mais informações.
Para criar uma credencial secreta do vault, você deve ter o privilégio EXECUTE
no pacote DBMS_CLOUD
.
Credenciais de Segredo do Vault com o AWS Secrets Manager
Para criar credenciais de segredo do vault com o AWS Secrets Manager, use o parâmetro params
para especificar os parâmetros necessários:
-
username
: Especifica a chave de acesso do AWS Secrets Manager. -
secret_id
: O AWS Secrets Manager é o AWS ARN. -
region
: (Opcional) Especifica a região de serviço da AWS na qual o vault e o segredo estão localizados. Um exemplo da região da AWS é "us-east-2". Oregion
padrão é a região especificada com o ARN no parâmetrosecret_id
.Consulte Gerenciando Regiões da AWS para obter mais informações.
Para criar uma credencial secreta do vault, você deve ter o privilégio
EXECUTE
no pacoteDBMS_CLOUD
.
Credenciais de Segredo do Vault com o GCP Secret Manager
Para criar credenciais do GCP Secret Manager, use o parâmetro params
para especificar os parâmetros necessários:
-
username
: Especifica o nome de usuário associado ao segredo. -
secret_id
: É o nome do segredo. -
gcp_project_id
: Especifica o ID do projeto no qual o segredo está localizado.
Consulte Gerenciador de Segredos para obter mais informações.
Para criar uma credencial secreta do vault, você deve ter o privilégio EXECUTE
no pacote DBMS_CLOUD
.
Tópico principal: DBMS_CLOUD para Gerenciamento de Acesso
DROP_CREDENTIAL Procedimento
Este procedimento remove uma credencial existente do Autonomous Database.
Sintaxe
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser removida. |
Tópico principal: DBMS_CLOUD para Gerenciamento de Acesso
Procedimento REFRESH_VAULT_CREDENTIAL
Este procedimento atualiza o segredo do vault de uma credencial de segredo do vault.
Este procedimento permite que você atualize imediatamente o segredo do vault de uma credencial de segredo do vault para obter a versão mais recente do segredo do vault para o credential_name
especificado.
Sintaxe
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL
(
credential_name IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser atualizada. |
Observações de Uso
-
O usuário
ADMIN
pode ver todas as credenciais consultando a tabeladba_credentials
. -
Você pode listar credenciais na view
ALL_CREDENTIALS
. Por exemplo, execute o seguinte comando para listar credenciais:SELECT credential_name, username, comments FROM all_credentials;
Exemplo
BEGIN
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL
(
credential_name => 'AZURE_SECRET_CRED');
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Acesso
UPDATE_CREDENTIAL Procedimento
Este procedimento atualiza um atributo com um novo valor para um credential_name
especificado.
Use credenciais armazenadas para carregamento de dados, para consultar dados externos que residem na Nuvem ou sempre que usar procedimentos DBMS_CLOUD
com o parâmetro credential_name
.
Sintaxe
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser atualizada. |
|
Nome do atributo a ser atualizado. Para uma credencial do tipo de nome de usuário/senha, os valores válidos de Para uma credencial de um Amazon ARN, os valores Para uma credencial do Google BigQuery ou do Google Analytics, os valores válidos de Dependendo do vault que você está usando, para Credenciais do Segredo do Vault, os valores válidos de
attribute são:
Consulte CREATE_CREDENTIAL Procedimento para obter mais informações. |
|
Novo valor para o atributo especificado. |
Observações de Uso
-
O valor do nome do usuário faz distinção entre maiúsculas e minúsculas. Ele não pode conter aspas duplas ou espaços.
-
O usuário
ADMIN
pode ver todas as credenciais consultandodba_credentials
. -
Você só precisa criar credenciais uma vez, a menos que suas credenciais de serviço de nuvem mudem. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para procedimentos
DBMS_CLOUD
que exigem um parâmetrocredential_name
. -
Você pode listar credenciais na view
ALL_CREDENTIALS
. Por exemplo, execute o seguinte comando para listar credenciais:SELECT credential_name, username, comments FROM all_credentials;
Exemplos
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Acesso
DBMS_CLOUD 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 Database do Cloud Object Storage ou de arquivos em um diretório. | |
Esse procedimento com o parâmetro format type definido com o valor orc , parquet ou avro carrega dados para tabelas existentes do Autonomous 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 na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos do Autonomous Database. | |
Procedimento CREATE_CLOUD_TABLE |
Este procedimento cria uma tabela de nuvem na qual todos os dados persistentes são armazenados no Oracle-Managed Object Storage. |
CREATE_EXTERNAL_TABLE Procedimento para o Apache Iceberg |
Esse procedimento cria tabelas externas para tabelas do Apache Iceberg nas configurações suportadas. |
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 em dados externos do Autonomous Database. |
Esse procedimento cria uma tabela particionada externa em arquivos na Nuvem. Isso permite que você execute consultas em dados externos do Autonomous Database. | |
Este procedimento cria o índice de texto nos arquivos de armazenamento de objetos. |
|
Esse procedimento cria uma tabela particionada híbrida. Isso permite que você execute consultas em dados particionados híbridos do Autonomous 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 indicado no Autonomous 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. |
|
Esse procedimento exporta dados do Autonomous 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 Armazenamento de Objetos na Nuvem como texto com opções de CSV, JSON, Parquet ou XML; ou usando o driver de acesso ORACLE_DATAPUMP para gravar dados em um arquivo de dump. |
|
Este procedimento é sobrecarregado. O form de procedimento lê um objeto do Cloud Object Storage e o copia para o Autonomous Database. O form de função lê um objeto do Cloud Object Storage e retorna um BLOB para o Autonomous 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. | |
Este procedimento move um objeto de um bucket do Cloud Object Storage para outro. | |
Este procedimento é sobrecarregado. De uma forma, o procedimento copia um arquivo do Autonomous Database para o Cloud Object Storage. De outra, o procedimento copia um BLOB do Autonomous 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 de formato especificadas para a tabela externa em uma tabela de arquivos incorretos no Autonomous Database. | |
Este procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela arquivo inválido no Autonomous Database. | |
Esse 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 de arquivos inválidos do Autonomous 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âmetrooperation_id
. - COPY_DATA Procedimento
Este procedimento carrega dados em tabelas existentes do Autonomous Database de arquivos na Nuvem ou de arquivos em um diretório. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. - COPY_DATA Procedimento para Arquivos Avro, ORC ou Parquet
Esse procedimento com o parâmetroformat
type
definido com o valoravro
,orc
ouparquet
carrega dados para tabelas existentes do Autonomous Database de arquivos Avro, ORC ou Parquet na Nuvem ou de arquivos em um diretório. - Procedimento COPY_OBJECT
Esse procedimento copia um objeto de um bucket ou pasta do Cloud Object Storage para outro. - Procedimento CREATE_CLOUD_TABLE
Este procedimento cria uma Tabela da Nuvem. Todos os dados da Tabela da Nuvem são armazenados no Object Storage gerenciado pela Oracle (as Tabelas da Nuvem armazenam apenas seus metadados no banco de dados). - Procedimento CREATE_EXTERNAL_PART_TABLE
Este procedimento cria uma tabela particionada externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos do Autonomous Database. - Procedimento CREATE_EXTERNAL_TABLE
Este procedimento cria uma tabela externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos do Autonomous Database. - CREATE_EXTERNAL_TABLE Procedimento para Apache Iceberg
Este procedimento cria tabelas externas para tabelas do Apache Iceberg nas configurações suportadas. - CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet
Esse procedimento com o parâmetroformat
type
definido com o valoravro
,orc
ouparquet
cria uma tabela externa com arquivos de formato Avro, ORC ou Parquet na Nuvem ou em um diretório. - Procedimento CREATE_EXTERNAL_TEXT_INDEX
Esse procedimento cria um índice de texto nos arquivos do Object Storage. - Procedimento CREATE_HYBRID_PART_TABLE
Esse procedimento cria uma tabela particionada híbrida. Isso permite executar consultas em dados particionados híbridos do Autonomous Database usando objetos e arquivos de banco de dados na Nuvem ou objetos e arquivos de banco de dados em um diretório. - Procedimento DELETE_ALL_OPERATIONS
Este procedimento limpa todas as operações de carregamento de dados registradas na tabelauser_load_operations
do seu esquema ou limpa todas as operações de carregamento de dados do tipo especificado, conforme indicado com o parâmetrotype
. - Procedimento DELETE_FILE
Este procedimento remove o arquivo especificado do diretório indicado no Autonomous Database. - Procedimento DELETE_OBJECT
Este procedimento exclui o objeto especificado no armazenamento de objetos. - Procedimento DELETE_OPERATION
Esse procedimento limpa as entradas de carga de dados para o ID de operação especificado registrado nas tabelasuser_load_operations
oudba_load_operations
no seu esquema. - Procedimento DROP_EXTERNAL_TEXT_INDEX
Este procedimento elimina o índice de texto nos arquivos do Object Storage. - Procedimento EXPORT_DATA
Esse procedimento exporta dados do Autonomous Database com base no resultado de uma consulta. Este procedimento é sobrecarregado e suporta a gravação de arquivos na nuvem ou em um diretório. - GET_OBJECT Procedimento e Função
Este procedimento é sobrecarregado. O form de procedimento lê um objeto do Cloud Object Storage e o copia para o Autonomous Database. O form de função lê um objeto do Cloud Object Storage e retorna umBLOB
para o Autonomous Database. - 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. - 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. - Procedimento MOVE_OBJECT
Esse procedimento move um objeto de um bucket ou pasta do Cloud Object Storage para outro. - PUT_OBJECT Procedimento
Este procedimento é sobrecarregado. De uma forma, o procedimento copia um arquivo do Autonomous Database para o Cloud Object Storage. De outra, o procedimento copia umBLOB
do Autonomous Database para o Cloud Object Storage. - 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. - Procedimento VALIDATE_EXTERNAL_PART_TABLE
Este procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela de arquivos inválidos do Autonomous Database. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. - 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 de formato especificadas para a tabela externa em uma tabela de arquivos incorretos no Autonomous Database. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. - 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 de arquivos inválidos do Autonomous Database. O formulário sobrecarregado permite que você use o parâmetrooperation_id
.
Tópico principal: DBMS_CLOUD Subprogramas e APIs REST
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. Você pode usar Esse 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 da 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 regulares 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 DBMS_CLOUD Formatos de URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição Diretório 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 é: 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: Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo: use aspas duplas para especificar um nome de diretório com 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 suportados são: Além dos formatos mencionados para dados JSON, o Autonomous Database também oferece suporte a outros formatos. Para obter a lista de argumentos de formato suportados pelo Autonomous Database, consulte DBMS_CLOUD Opções de Formato do Pacote. |
|
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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento COPY_DATA
Este procedimento carrega dados em tabelas existentes do Autonomous Database de arquivos na Nuvem ou de arquivos em 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. Você pode usar Esse parâmetro não é usado quando você especifica um diretório ou URL de Hiperlink de Tabela com |
|
Este parâmetro especifica uma das seguintes opções:
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 da 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 regulares 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 DBMS_CLOUD Formatos de URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição URL do Hiperlink da Tabela Você pode usar um Hiperlink de Tabela das seguintes maneiras:
Diretório 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 é: 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: Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo: use aspas duplas para especificar um nome de diretório com 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 é NULL, o que significa que os campos e os tipos de dados são determinados pela definição da tabela de destino. A sintaxe desse argumento é a mesma da cláusula Quando o valor da opção Para obter um exemplo usando |
|
As opções que descrevem o formato dos arquivos de origem, log e arquivos inválidos. Para ver a lista de opções e saber como especificar os valores, consulte DBMS_CLOUD Package Format Options. Para as opções de formato de arquivo Avro, ORC ou Parquet, consulte DBMS_CLOUD Opções de Formato do Pacote 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 |
Nota 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 \n
do UNIX/Linux 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 DBMS_CLOUD Package Format Options 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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
COPY_DATA Procedimento para Arquivos Avro, ORC ou Parquet
format
type
definido com o valor avro
, orc
ou parquet
carrega dados para tabelas existentes do Autonomous Database de arquivos Avro, ORC ou Parquet na Nuvem ou de arquivos em um diretório.
Assim como os arquivos de texto, os dados são copiados do arquivo Avro, ORC ou Parquet de origem para a tabela interna pré-existente.
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. Você pode usar Esse 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 da 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 regulares 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 DBMS_CLOUD Formatos de URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição Diretório 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 é: 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: Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo: use aspas duplas para especificar um nome de diretório com 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 em tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte DBMS_CLOUD Mapeamento de Tipo de Dados ORC para Oracle do Pacote. Para arquivos Parquet, consulte DBMS_CLOUD Mapeamento de Tipo de Dados Parquet para Oracle do Pacote Parquet para obter detalhes sobre mapeamento. Para arquivos Avro, consulte DBMS_CLOUD Mapeamento de Tipo de Dados Avro para Oracle do Pacote 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 DBMS_CLOUD Opções de Formato do Pacote para Avro, ORC ou Parquet. |
Observações de Uso
-
Assim como com outros arquivos de dados, as cargas de dados Avro, ORC e Parquet geram logs que podem ser visualizados nas tabelas
dba_load_operations
euser_load_operations
. Cada operação de carga adiciona um registro adba
[user]_load_operations
que indica a tabela que contém os logs.A tabela de log fornece informações resumidas sobre a carga.
-
Para Avro, ORC ou Parquet, quando o parâmetro
format
type
é definido com o valoravro
,orc
ouparquet
, a tabelaBADFILE_TABLE
fica sempre vazia.-
Para arquivos Parquet, erros de restrição
PRIMARY KEY
geram 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.
-
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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 do Cloud Object ou em outro provedor.
Quando a origem e o destino estão em Armazenamentos de Objetos distintos ou têm contas diferentes com o mesmo provedor de nuvem, você pode 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. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para a localização do bucket ou da pasta do Object Storage de origem. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
Especifica o URI do Armazenamento de Objetos de destino. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Você pode usar 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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento CREATE_CLOUD_TABLE
Este procedimento cria uma Tabela de Nuvem. Todos os dados da Tabela da Nuvem são armazenados no Object Storage gerenciado pela Oracle (as Tabelas da Nuvem armazenam apenas seus metadados no banco de dados).
Sintaxe
DBMS_CLOUD.CREATE_CLOUD_TABLE
(
table_name IN VARCHAR2,
column_list IN CLOB,
params IN CLOB);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da Tabela da Nuvem. |
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a Tabela de Nuvem. |
Observações de Uso
-
Atributos
DEFAULT
: Ocolumn_list
pode incluir a cláusulaDEFAULT
, que funciona como a cláusulaDEFAULT
em umCREATE TABLE
comum. Consulte CREATE TABLE para obter informações sobre o comportamento da cláusulaDEFAULT
. -
Use
DROP TABLE
para eliminar uma Tabela da Nuvem. As Tabelas da Nuvem não suportam a lixeira.Por exemplo:
DROP TABLE CLOUD_TAB1;
-
Você pode conceder privilégios
SELECT
,INSERT
eUPDATE
para uma Tabela da Nuvem. Nenhum outro privilégio pode ser concedido a uma Tabela da Nuvem.Consulte Configurando Autorização de Privilégio e Função para obter mais informações.
Exemplos
EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE
( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
(
table_name => 'CLOUD_TABLE_WITH_DEFAULT',
column_list => 'I INTEGER,
A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento CREATE_EXTERNAL_PART_TABLE
Esse procedimento cria uma tabela particionada externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos do Autonomous 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. Você pode usar |
|
Especifica a cláusula de partição completa, 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 da 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 regulares 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 DBMS_CLOUD Formatos de URI para obter mais informações. Consulte Condição REGEXP_LIKE 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 é NULL, o que significa que os campos e seus 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 objetos que não se baseiam no formato hive, a ordem das colunas especificadas Para ver todas as opções de parâmetro |
Observações de Uso
-
Você não pode chamar esse procedimento com os parâmetros
partitioning_clause
efile_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_list
não for especificado, a opçãopartition_columns
do parâmetroformat
deverá incluirname
etype
. -
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_TABLE
suporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados, que incluem:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage ou Azure Data Lake Storage
-
Amazon S3
-
Compatível com Amazon S3, incluindo: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage e Wasabi Hot Cloud Storage.
-
GitHub Repositório
Consulte DBMS_CLOUD Formatos de URI para obter mais informações.
-
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
suporta 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_TABLE
com 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_CLOUD
tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_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, oDBMS_CLOUD
procurará o\n
do UNIX/Linux 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 DBMS_CLOUD Package Format Options para obter informações sobre a opção de formato
recorddelmiter
. -
As tabelas particionadas externas criadas com
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
incluem duas colunas invisíveisfile$path
efile$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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento CREATE_EXTERNAL_TABLE
Este procedimento cria uma tabela externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos do Autonomous 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. Você pode usar Esse parâmetro não é usado quando você especifica um diretório ou um URL de Hiperlink de Tabela com |
|
Este parâmetro especifica uma das seguintes opções:
URIs do arquivo de origem da 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 regulares 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 DBMS_CLOUD Formatos de URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição URL do Hiperlink da Tabela Você pode usar um URL de Hiperlink de Tabela para criar uma tabela externa das seguintes maneiras:
Diretório
Observação Consulte Sobre Hiperlinks de Tabela no Autonomous Database e Procedimento GET_PREAUTHENTICATED_URL para obter mais informações.
Os URLs de Hiperlink de Tabela não suportam curingas. 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 é: 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: Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo: use aspas duplas para especificar um nome de diretório com 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 DBMS_CLOUD Package Format Options. Para arquivos de formato Avro, ORC ou Parquet, consulte CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet. |
Observações de Uso
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
suporta arquivos particionados externos nas origens de armazenamento de objetos na nuvem compatíveis, incluindo:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage ou Azure Data Lake Storage
-
Amazon S3
-
Compatível com Amazon S3, incluindo: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage e Wasabi Hot Cloud Storage.
-
GitHub Repositório
-
Oracle Cloud Infrastructure Object Storage com URLs de Hiperlink de Tabela
A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte DBMS_CLOUD Formatos de URI para obter mais informações.
-
-
O limite de registro padrão é
detected newline
. Comdetected newline
, oDBMS_CLOUD
tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_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, oDBMS_CLOUD
procurará o\n
do UNIX/Linux 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 DBMS_CLOUD Package Format Options 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
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
CREATE_EXTERNAL_TABLE Procedimento para o Apache Iceberg
Esse procedimento cria tabelas externas para tabelas do Apache Iceberg nas configurações suportadas.
Para obter uma descrição das configurações suportadas, consulte Sobre a consulta de tabelas do Apache Iceberg.
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 do Iceberg (se usado). Para configurações do AWS e do OCI, a credencial deve ser criada conforme descrito no Procedimento CREATE_CREDENTIAL. No momento, não há suporte para as credenciais do AWS ARN (Amazon Resource Names). |
|
Deve ser NULL se um catálogo Iceberg for especificado (consulte o parâmetro format abaixo). Se um catálogo de iceberg 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 derivados automaticamente dos metadados Iceberg. Os nomes de coluna 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 os tipos de dados Iceberg e Parquet, Avro e ORC. Portanto, os usuários não podem especificar |
|
Deve ser NULL, pois os nomes de coluna e os tipos de dados são derivados automaticamente dos metadados Iceberg. |
|
O parâmetro Para obter exemplos e informações adicionais: consulte os exemplos abaixo, Suporte Iceberg a Amostras do OCI Data Flow, Formatos de URI DBMS_CLOUD. |
Exemplo de tabelas AWS Iceberg usando um catálogo AWS Glue
O parâmetro format
ao criar tabelas em uma tabela do AWS Iceberg usando um AWS Glue Catalog é 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 tabela AWS Iceberg usando um URI de arquivo de metadados
format
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 tabela Iceberg do OCI usando o catálogo HadoopCatalog
format
ao criar tabelas por meio de uma tabela Iceberg do OCI 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 de URI nativo.iceberg_table_path
: O caminhodatabase_name.table name
usado ao criar a tabela.
Exemplo de tabela Iceberg do OCI usando o URI do arquivo de metadados
format
ao criar tabelas em 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'
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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 de formato Avro, ORC ou Parquet na Nuvem ou em um diretório.
Isso permite que você execute consultas em dados externos do Autonomous 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. Você pode usar Esse 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 da 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 regulares 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 DBMS_CLOUD Formatos de URI. Consulte Condição REGEXP_LIKE para obter mais informações sobre a condição Diretório 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 é: 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: Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: Por exemplo: use aspas duplas para especificar um nome de diretório com 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 DBMS_CLOUD Mapeamento de Tipo de Dados Parquet para Oracle para obter detalhes. Para arquivos ORC, consulte DBMS_CLOUD Mapeamento de Tipo de Dados do Pacote ORC para Oracle para obter detalhes. Para arquivos Avro, consulte DBMS_CLOUD Mapeamento de Tipo de Dados Avro para Oracle do Pacote 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 em tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte DBMS_CLOUD Mapeamento de Tipo de Dados ORC para Oracle do Pacote Para arquivos Parquet, consulte DBMS_CLOUD Mapeamento de Tipo de Dados Parquet para Oracle para obter detalhes. Para arquivos Avro, consulte DBMS_CLOUD Mapeamento de Tipo de Dados Avro para Oracle do Pacote para obter detalhes. |
|
Para arquivos de origem |
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 DBMS_CLOUD Mapeamento de Nome de Coluna Avro, ORC e Parquet para Oracle do Pacote para obter informações sobre mapeamento de nome de coluna e uso de conversão de nome de coluna no Oracle SQL.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento CREATE_EXTERNAL_TEXT_INDEX
Este procedimento cria um índice de texto nos arquivos do Object Storage.
O procedimento CREATE_EXTERNAL_TEXT_INDEX
cria índice de texto nos arquivos do serviço 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. Consulte Configurar Políticas e Atribuições para Acessar Recursos para obter mais informações. Se você não fornecer um valor |
location_uri |
Especifica o bucket do Object Store ou o URI da pasta. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
index_name |
Especifica o nome do índice que você está construindo nos arquivos localizados no local location_uri .
Este 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 interrupção 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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
CREATE_HYBRID_PART_TABLE Procedimento
Esse procedimento cria uma tabela particionada híbrida. Isso permite executar consultas em dados particionados híbridos do Autonomous 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. Você pode usar |
|
Especifica a cláusula de partição completa, 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 regulares 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 Condição REGEXP_LIKE 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 é NULL, o que significa que os campos e seus 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 DBMS_CLOUD Package Format Options. |
Observações de Uso
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
suporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados, que incluem:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage ou Azure Data Lake Storage
-
Amazon S3
-
Compatível com Amazon S3, incluindo: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage e Wasabi Hot Cloud Storage.
-
GitHub Repositório
A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte DBMS_CLOUD Formatos de URI para obter mais informações.
-
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
suporta 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_TABLE
incluem duas colunas invisíveisfile$path
efile$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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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
-
Este procedimento não exclui operações em execução no momento (operações com status "Em Execução").
-
Este procedimento exclui todas as tabelas de log e arquivos de log associados às operações.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
DELETE_FILE Procedimento
Este procedimento remove o arquivo especificado do diretório indicado no Autonomous 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 Database. |
|
O nome do arquivo a ser removido. |
force |
Ignore e não reporte erros se o arquivo não existir. Os valores válidos são: |
Para executar
DBMS_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 para esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de gravação a adb_user
:GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;
Exemplo
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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. Você pode usar |
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 DBMS_CLOUD Formatos de URI. |
force |
Ignore e não reporte 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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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. |
Nota de Uso
-
Este procedimento exclui todas as tabelas de log e arquivos de log associados ao ID de operação especificado na entrada.
Exemplo
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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 ou usando o driver de acesso ORACLE_DATAPUMP para gravar dados em um arquivo de dump do Oracle Datapump.
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. Você pode usar 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 DBMS_CLOUD Formatos de URI. |
|
Uma string JSON que fornece opções de formato de exportação. A opção suportada é:
|
|
Use esse parâmetro para especificar uma instrução SELECT warehouse_id, quantity FROM inventories Para obter informações com o formato Quando 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
query
fornecido 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, o
DBMS_CLOUD.EXPORT_DATA
gera os resultados da consulta especificada no Armazenamento de Objetos na Nuvem ou em um local de diretório em um destes formatos:-
Arquivos CSV, JSON, Parquet ou XML.
Consulte Exportar Dados para o Armazenamento de Objetos como Texto e Exportar Dados para um Diretório para obter mais informações sobre o uso de
DBMS_CLOUD.EXPORT_DATA
com arquivos de saída CSV, JSON, Parquet ou XML. -
Usando o driver de acesso ORACLE_DATAPUMP para gravar dados em um arquivo de dump.
-
-
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 o seu banco de dados usar OCPUs) da instância do Autonomous Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
O tamanho do arquivo de saída padrão é 10 MB para CSV, JSON ou XML. Você pode alterar esse valor com a opção
maxfilesize
do parâmetroformat
. Consulte DBMS_CLOUD Package Format Options para EXPORT_DATA para obter mais informações. -
Para saída Parquet, cada arquivo gerado tem menos de 128 MB e vários arquivos de saída podem ser gerados. No entanto, se você tiver menos de 128 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 o seu banco de dados usar OCPUs) da instância do Autonomous Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
Observações de Uso para a Saída ORACLE_DATAPUMP (DBMS_CLOUD.EXPORT_DATA
com o parâmetro format
type
opção datapump
):
-
EXPORT_DATA
usaDATA_PUMP_DIR
como o diretório de log padrão. Portanto, o privilégio de gravação emDATA_PUMP_DIR
é necessário ao usar a saídaORACLE_DATAPUMP
. -
A exportação do Autonomous Database usando
DBMS_CLOUD.EXPORT_DATA
com o parâmetroformat
, a opçãotype
,datapump
só suporta os armazenamentos de objetos Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure Object Storage Classic ou a saída de diretório. -
Quando você especifica
DBMS_CLOUD.EXPORT_DATA
com a opçãotype
do parâmetroformat
datapump
, o valor do parâmetrocredential_name
não pode ser um controlador de recursos do OCI. -
O Oracle Data Pump divide cada parte do arquivo de dump em chunks menores para a obtenção de uploads mais rápidos. A console do Oracle Cloud Infrastructure Object Storage mostra vários arquivos para cada parte do arquivo de dump que você exporta. O tamanho dos arquivos de dump reais será exibido como 0 (zero) e seus chunks de arquivos relacionados como 10 MB ou menos. Por exemplo:
O download do arquivo de dump de zero byte na console do Oracle Cloud Infrastructure ou usando a CLI do Oracle Cloud Infrastructure não fornecerá a você os arquivos de dump completos. Para fazer download dos arquivos de dump completos do Object Store, use uma ferramenta que suporte Swift, como curl, e forneça seu log-in de usuário e token de autenticação Swift.exp01.dmp exp01.dmp_aaaaaa exp02.dmp exp02.dmp_aaaaaa
curl -O -v -X GET -u 'user1@example.com:auth_token' \ https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp
Se você importar um arquivo com os procedimentos
DBMS_CLOUD
que suportam o parâmetroformat
type
com o valor 'datapump
', só será necessário fornecer o nome do arquivo principal. Os procedimentos que suportam o tipo de formato 'datapump
' descobrem e fazem download automaticamente dos chunks.Quando você usa
DBMS_CLOUD.DELETE_OBJECT
, o procedimento descobre e exclui automaticamente os chunks quando o procedimento exclui o arquivo principal. -
O procedimento
DBMS_CLOUD.EXPORT_DATA
cria o(s) arquivo(s) de dump com base nos valoresfile_uri_list
especificados por você, da seguinte maneira:-
Conforme mais arquivos são necessários, o procedimento cria arquivos adicionais usando
file_uri_list
. -
O procedimento não substitui arquivos. Se um arquivo de dump no
file_uri_list
existir, oDBMS_CLOUD.EXPORT_DATA
reportará um erro. -
O
DBMS_CLOUD.EXPORT_DATA
não cria buckets.
-
-
O número de arquivos de dump que o
DBMS_CLOUD.EXPORT_DATA
gera é determinado quando o procedimento é executado. O número de arquivos de dump gerados depende do número de nomes de arquivos fornecidos no parâmetrofile_uri_list
, bem como do número de OCPUs do Autonomous Database disponíveis para a instância, do nível de serviço e do tamanho dos dados.Por exemplo, se você usar uma instância do Autonomous Database com 1 OCPU ou o serviço
low
, um único arquivo de dump será exportado sem paralelismo, mesmo que você forneça vários nomes de arquivo. Se você usar uma instância do Autonomous Database com 4 OCPUs com o serviçomedium
ouhigh
, os jobs poderão ser executados em paralelo e vários arquivos de dump serão exportados se você fornecer vários nomes de arquivo. -
Os arquivos de dump criados com
DBMS_CLOUD.EXPORT_DATA
não podem ser importados usando oimpdp
do Oracle Data Pump. Dependendo do banco de dados, você pode usar esses arquivos da seguinte forma:-
Em um Autonomous Database, você pode usar os arquivos de dump com os procedimentos
DBMS_CLOUD
que suportam o parâmetroformat
type
com o valor 'datapump
'. Você pode importar os arquivos de dump usandoDBMS_CLOUD.COPY_DATA
ou pode chamarDBMS_CLOUD.CREATE_EXTERNAL_TABLE
para criar uma tabela externa. -
Em qualquer outro Oracle Database, como o Oracle Database 19c on-premises, você pode importar os arquivos de dump criados com o procedimento
DBMS_CLOUD.EXPORT_DATA
usando o driver de acessoORACLE_DATAPUMP
. Consulte Unloading and Loading Data with the ORACLE_DATAPUMP Access Driver para obter mais informações.
-
-
O valor do parâmetro
query
fornecido pode ser uma consulta avançada, se necessário, como uma consulta que inclui junções ou subconsultas.
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
ADMIN
ou ter acessoWRITE
ao diretório. -
O
DBMS_CLOUD.EXPORT_DATA
não cria diretórios. -
O procedimento não substitui arquivos. Por exemplo, se um arquivo de dump no
file_uri_list
existir, oDBMS_CLOUD.EXPORT_DATA
reportará 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 datapump
:
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.dmp',
format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
query => 'SELECT warehouse_id, quantity FROM inventories'
);
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.
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, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
);
END;
/
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA
exportando dados para um local de diretório com o parâmetro type
com o valor datapump
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
file_uri_list => 'export_dir:sales.dmp',
format => json_object('type' value 'datapump'),
query => 'SELECT * FROM sales'
);
END;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
GET_OBJECT Procedimento e Função
Este procedimento é sobrecarregado. O form de procedimento lê um objeto do Cloud Object Storage e o copia para o Autonomous Database. O form de função lê um objeto do Cloud Object Storage e retorna um BLOB
para o Autonomous 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. Você pode usar |
|
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 DBMS_CLOUD Formatos de URI. |
|
O nome do diretório no banco de dados. Pé 1Você pode usar um URL de Hiperlink de Tabela das seguintes maneiras:
|
|
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 |
Nota de rodapé 1
Para executar DBMS_CLOUD.GET_OBJECT
com um usuário diferente 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 adb_user
:
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;
Retornar Valores
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 armazenada 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.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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. |
Observações de Uso
-
Para executar
DBMS_CLOUD.LIST_FILES
com um usuário diferente de ADMIN, conceda 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 aadb_user
:GRANT READ ON DIRECTORY data_pump_dir TO adb_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_FILES
não obtém o valor da soma de verificação e retornaNULL
para esse campo.
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
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
LIST_OBJECTS Funçã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.
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. Você pode usar |
location_uri |
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 DBMS_CLOUD Formatos de URI. |
Observações de Uso
-
Dependendo dos recursos do armazenamento de objetos, o
DBMS_CLOUD.LIST_OBJECTS
não retorna valores para determinados atributos e o valor de retorno do campo éNULL
nesse caso.Todos os Armazenamentos de Objetos suportados retornam valores para os campos
OBJECT_NAME
,BYTES
eCHECKSUM
.A tabela a seguir mostra o suporte para os campos
CREATED
eLAST_MODIFIED
pelo Armazenamento de Objetos:Armazenamento de Objetos CREATED
LAST_MODIFIED
Nativo do Oracle Cloud Infrastructure Retorna o timestamp Retorna o timestamp Swift da Oracle Cloud Infrastructure Retorna NULL
Retorna o timestamp Oracle Cloud Infrastructure Classic Retorna NULL
Retorna o timestamp Amazon S3 Retorna NULL
Retorna o timestamp Compatível com Amazon S3 Retorna NULL
Retorna o timestamp Azure Retorna o timestamp Retorna o timestamp GitHub Repositório -
O valor da soma de verificação é a soma de verificação MD5. Esse é um número sextavado de 32 caracteres que é calculado no conteúdo do objeto. Espera-se que ele tenha um valor de soma de verificação diferente se a credencial
OCI$RESOURCE_PRINCIPAL
for usada. -
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.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento MOVE_OBJECT
Este 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 do Cloud Object ou em outro provedor.
Quando a origem e o destino estão em Armazenamentos de Objetos distintos ou têm contas diferentes com o mesmo provedor de nuvem, você pode 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. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para a localização do bucket ou da pasta do Object Storage de origem. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
Especifica o URI do bucket ou pasta do Object Storage de destino, onde os arquivos precisam ser movidos. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Você pode usar 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;
/
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento PUT_OBJECT
Este procedimento é sobrecarregado. De uma forma, o procedimento copia um arquivo do Autonomous Database para o Cloud Object Storage. De outra, o procedimento copia um BLOB
do Autonomous 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. Você pode usar |
|
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 DBMS_CLOUD Formatos de URI. |
|
O nome do diretório no Autonomous Database. Pé 2 |
|
Especifica o |
|
O nome do arquivo no diretório especificado. |
|
Especifica a compactação usada para armazenar o objeto. Valor padrão: |
Nota de rodapé 2
Para executar DBMS_CLOUD.PUT_OBJECT
com um usuário diferente 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 a adb_user
:
GRANT READ ON DIRECTORY data_pump_dir TO adb_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 de Uso
Dependendo do Cloud Object Storage, o tamanho do objeto transferido é 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 |
Azure Blob Storage ou Azure Data Lake Storage |
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 DBMS_CLOUD Formatos de URI para obter mais informações.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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 |
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento VALIDATE_EXTERNAL_PART_TABLE
Este procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela arquivo inválido no Autonomous 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 todas as partições ou subpartições externas sequencialmente 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 é |
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
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 de formato especificadas para a tabela externa em uma tabela de arquivos incorretos no Autonomous 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 referir aos arquivos Avro, ORC ou Parquet, a validação será interrompida na primeira linha rejeitada. Quando a tabela externa especifica o parâmetro |
Observações de Uso
-
O
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
funciona com tabelas externas particionadas e tabelas híbridas particionadas. Isso potencialmente lê dados de todas as partições externas até querowcount
seja atingido oustop_on_error
seja aplicado. Você não tem controle sobre qual partição, ou partes de uma partição, é lida em que ordem.
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
Procedimento VALIDATE_HYBRID_PART_TABLE
Esse 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 de arquivos inválidos do Autonomous 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 todas as partições ou subpartições externas sequencialmente 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 é |
Tópico principal: DBMS_CLOUD para Objetos e Arquivos
DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Os subprogramas para operações de arquivo em massa no pacote DBMS_CLOUD.
Subprograma | Descrição |
---|---|
Procedimento BULK_COPY |
Este procedimento copia arquivos de um bucket do Cloud Object Storage para outro. |
Procedimento BULK_DELETE |
O procedimento exclui arquivos do bucket ou pasta do Cloud Object Storage. |
Procedimento BULK_DOWNLOAD |
Este procedimento faz download de arquivos do bucket do Cloud Object Store para um diretório no Autonomous Database. |
Procedimento BULK_MOVE |
Este procedimento move arquivos de um bucket do Cloud Object Storage para outro. |
Procedimento BULK_UPLOAD |
Este procedimento faz upload de arquivos de um diretório no Autonomous Database para o Cloud Object Storage. |
- Procedimento BULK_COPY
Esse procedimento copia arquivos em massa de um bucket do Cloud Object Storage para outro. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. - Procedimento BULK_DELETE
Este procedimento exclui arquivos em massa do Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. Você pode filtrar a lista de arquivos a serem excluídos usando um padrão de expressão regular compatível com o operadorREGEXP_LIKE
. - BULK_DOWNLOAD Procedimento
Este procedimento faz download de arquivos para um diretório do Autonomous Database no Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. Você pode filtrar a lista de arquivos a serem baixados usando um padrão de expressão regular compatível com o operadorREGEXP_LIKE
. - Procedimento BULK_MOVE
Esse procedimento move arquivos em massa de um bucket ou pasta do Cloud Object Storage para outro. O formulário sobrecarregado permite que você use o parâmetrooperation_id
. - Procedimento BULK_UPLOAD
Este procedimento copia arquivos de um diretório do Autonomous Database para o Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetrooperation_id
.
Tópico principal: DBMS_CLOUD Subprogramas e APIs REST
Procedimento BULK_COPY
Esse procedimento copia arquivos em massa de um bucket do Cloud Object Storage para outro. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Você pode filtrar a lista de arquivos a serem excluídos usando um padrão de expressão regular compatível com o operador REGEXP_LIKE
.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento do Cloud Object ou em outro provedor.
Quando a origem e o destino estão em Armazenamentos de Objetos distintos ou têm contas diferentes com o mesmo provedor de nuvem, você pode 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.
Sintaxe
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para a localização do bucket ou da pasta do Object Storage de origem. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
Especifica o URI do bucket ou pasta do Object Storage de destino, no qual os arquivos precisam ser copiados. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica a expressão REGEX para filtrar arquivos. O padrão de expressão REGEX deve ser compatível com o operador Se você não fornecer um valor Consulte REGEXP_LIKE Condição para obter mais informações. |
|
Especifica as opções de configuração adicionais para a operação de arquivo. Essas opções são especificadas como uma string JSON. As opções de formato suportadas são:
Se você não fornecer um valor |
|
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
-
Um erro é retornado quando o URI de origem e destino aponta para o mesmo bucket ou pasta do Object Storage.
Exemplo
BEGIN
DBMS_CLOUD.BULK_COPY
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Procedimento BULK_DELETE
Este procedimento exclui arquivos em massa do Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetro operation_id
. Você pode filtrar a lista de arquivos a serem excluídos usando um padrão de expressão regular compatível com o operador REGEXP_LIKE
.
Sintaxe
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para um local do serviço Object Storage no Autonomous Database. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
Especifica a expressão REGEX para filtrar arquivos. O padrão de expressão REGEX deve ser compatível com o operador Se você não fornecer um valor Consulte REGEXP_LIKE Condição para obter mais informações. |
|
Especifica as opções de configuração adicionais para a operação de arquivo. Essas opções são especificadas como uma string JSON. As opções de formato suportadas são:
Se você não fornecer um valor |
|
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.BULK_DELETE
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Procedimento BULK_DOWNLOAD
Este procedimento faz download de arquivos para um diretório do Autonomous Database no Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetro operation_id
. Você pode filtrar a lista de arquivos a serem baixados usando um padrão de expressão regular compatível com o operador REGEXP_LIKE
.
Sintaxe
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para um local do serviço Object Storage no Autonomous Database. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome do diretório no Autonomous Database do qual você deseja fazer download dos arquivos. Este parâmetro é obrigatório. |
|
Especifica a expressão REGEX para filtrar arquivos. O padrão de expressão REGEX deve ser compatível com o operador Se você não fornecer um valor Consulte REGEXP_LIKE Condição para obter mais informações. |
|
Especifica as opções de configuração adicionais para a operação de arquivo. Essas opções são especificadas como uma string JSON. As opções de formato suportadas são:
Se você não fornecer um valor |
|
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.BULK_DOWNLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Procedimento BULK_MOVE
Esse procedimento move arquivos em massa de um bucket ou pasta do Cloud Object Storage para outro. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Você pode filtrar a lista de arquivos a serem excluídos usando um padrão de expressão regular compatível com o operador REGEXP_LIKE
.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento do Cloud Object ou em outro provedor.
Quando a origem e o destino estão em Armazenamentos de Objetos distintos ou têm contas diferentes com o mesmo provedor de nuvem, você pode 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.
A primeira etapa na movimentação de arquivos é copiá-los para o local de destino e, em seguida, excluir os arquivos de origem, uma vez copiados com sucesso.
O objeto será renomeado em vez de movido se o Armazenamento de Objetos permitir a renomeação de operações entre os locais de origem e de destino.
Sintaxe
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage de origem. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para a localização do bucket ou da pasta do Object Storage de origem. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
Especifica o URI do bucket ou pasta do Object Storage de destino, onde os arquivos precisam ser movidos. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica a expressão REGEX para filtrar arquivos. O padrão de expressão REGEX deve ser compatível com o operador Se você não fornecer um valor Consulte REGEXP_LIKE Condição para obter mais informações. |
|
Especifica as opções de configuração adicionais para a operação de arquivo. Essas opções são especificadas como uma string JSON. As opções de formato suportadas são:
Se você não fornecer um valor |
|
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.BULK_MOVE
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
Um erro é retornado quando o URI de origem e destino aponta para o mesmo bucket ou pasta do serviço Object Storage.
Tópico principal: DBMS_CLOUD para Gerenciamento de Arquivos em Massa
Procedimento BULK_UPLOAD
Este procedimento copia arquivos de um diretório do Autonomous Database para o Cloud Object Storage. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. Você pode usar Se você não fornecer um valor |
|
Especifica o URI, que aponta para um local de Armazenamento de Objetos para fazer upload de arquivos. Este parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI para obter mais informações. |
|
O nome do diretório no Autonomous Database do qual você faz upload dos arquivos. Este parâmetro é obrigatório. |
regex_filter |
Especifica a expressão REGEX para filtrar arquivos. O padrão de expressão REGEX deve ser compatível com o operador Se você não fornecer um valor Consulte REGEXP_LIKE Condição para obter mais informações. |
|
Especifica as opções de configuração adicionais para a operação de arquivo. Essas opções são especificadas como uma string JSON. As opções de formato suportadas são:
Se você não fornecer um valor |
|
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.BULK_UPLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
);
END;
/
Tópico principal: DBMS_CLOUD para Gerenciamento de Arquivos em Massa
DBMS_CLOUD APIs REST
Esta seção abrange as APIs REST DBMS_CLOUD
fornecidas com o Autonomous Database.
API REST | Descrição |
---|---|
Essa função retorna os cabeçalhos de resposta HTTP como dados JSON em um objeto JSON no Autonomous Database. | |
Essa função retorna a resposta HTTP no formato RAW do Autonomous Database. Isso será útil se for esperado que a resposta HTTP seja de formato binário. | |
Essa função retorna o código de status de resposta HTTP como número inteiro no Autonomous Database. O código de status ajuda a identificar se a solicitação foi bem-sucedida. | |
Essa função retorna a resposta HTTP no formato VARCHAR2 ou CLOB no Autonomous Database. Geralmente, a maioria das APIs REST na Nuvem retorna a resposta JSON em formato de texto. Esta função é útil se você espera que a resposta HTTP esteja no formato de texto.
|
|
Essa função retorna o tamanho do cache de resultados configurado. |
|
Essa função inicia uma solicitação HTTP, obtém a resposta e encerra a resposta no Autonomous Database. Essa função oferece um workflow para enviar uma solicitação de API REST na Nuvem com argumentos e um código de resposta e payload de retorno. | |
Esse procedimento define o tamanho máximo do cache para a sessão atual. |
- DBMS_CLOUD Visão Geral da API REST
Quando você usa PL/SQL no seu aplicativo e precisa chamar APIs REST na Nuvem, pode usarDBMS_CLOUD.SEND_REQUEST
para enviar as solicitações da API REST. - DBMS_CLOUD Constantes da API REST
Descreve as constantesDBMS_CLOUD
para fazer solicitaçõesHTTP
usandoDBMS_CLOUD.SEND_REQUEST
. - DBMS_CLOUD Cache de Resultados da API REST
Você pode salvar os resultados da API RESTDBMS_CLOUD
ao definir o parâmetrocache
como verdadeiro comDBMS_CLOUD.SEND_REQUEST
. A viewSESSION_CLOUD_API_RESULTS
descreve as colunas que você pode usar quando os resultados da API REST são salvos. - Função GET_RESPONSE_HEADERS
Essa função retorna os cabeçalhos de resposta HTTP como dados JSON em um objeto JSON. - Função GET_RESPONSE_RAW
Essa função retorna a resposta HTTP no formato RAW. Isso será útil se for esperado que a resposta HTTP seja de formato binário. - Função GET_RESPONSE_STATUS_CODE
Essa função retorna o código de status de resposta HTTP como número inteiro. O código de status ajuda a identificar se a solicitação foi bem-sucedida. - Função GET_RESPONSE_TEXT
Essa função retorna a resposta HTTP no formatoTEXT
(VARCHAR2
ouCLOB
). Geralmente, a maioria das APIs REST na Nuvem retorna a resposta JSON em formato de texto. Esta função é útil se você espera que a resposta HTTP esteja no formato de texto. - Função GET_API_RESULT_CACHE_SIZE
Essa função retorna o tamanho do cache de resultados configurado. O valor do tamanho do cache só se aplica à sessão atual. - SEND_REQUEST Função e Procedimento
Essa função e procedimento inicia uma solicitação HTTP, obtém a resposta e termina a resposta. Esta função fornece um workflow para enviar uma solicitação de API REST na nuvem com argumentos e retorna um código de resposta e um payload. Se você usar o procedimento, poderá exibir resultados e detalhes da resposta dos resultados salvos com a viewSESSION_CLOUD_API_RESULTS
. - Procedimento SET_API_RESULT_CACHE_SIZE
Esse procedimento define o tamanho máximo do cache para a sessão atual. O valor do tamanho do cache só se aplica à sessão atual. - DBMS_CLOUD Exemplos de API REST
Mostra exemplos usandoDBMS_CLOUD.SEND_REQUEST
para criar e excluir um bucket do Oracle Cloud Infrastructure Object Storage e um exemplo para listar todos os compartimentos na tenancy.
Tópico principal: DBMS_CLOUD Subprogramas e APIs REST
DBMS_CLOUD Visão Geral da API REST
Quando você usa PL/SQL no seu aplicativo e precisa chamar APIs REST na Nuvem, pode usar DBMS_CLOUD.SEND_REQUEST
para enviar as solicitações da API REST.
As funções da API REST DBMS_CLOUD
permitem que você faça solicitações HTTP
usando DBMS_CLOUD.SEND_REQUEST
, obtenha os resultados e os salve. Essas funções fornecem uma API genérica que permite chamar qualquer API REST com os seguintes serviços de nuvem suportados:
- Oracle Cloud Infrastructure
Consulte Referência de API e Pontos Finais para obter informações sobre APIs REST do Oracle Cloud Infrastructure.
- Amazon Web Services (AWS)
Consulte Guias e Referências de API para obter informações sobre APIs REST da Amazon Web Services.
- Azure Cloud Rodapé 3
Consulte Referência de API REST do Azure para obter informações sobre APIs REST do Azure.
- Oracle Cloud Infrastructure Classic
Consulte Todos os Pontos Finais REST para obter informações sobre APIs REST do Oracle Cloud Infrastructure Classic.
- GitHub Repositório
Consulte GitHub API REST para obter mais informações.
Tópico principal: DBMS_CLOUD APIs REST
DBMS_CLOUD Constantes de API REST
Descreve as constantes DBMS_CLOUD
ao fazer solicitações HTTP
usando DBMS_CLOUD.SEND_REQUEST
.
DBMS_CLOUD
supports GET
, PUT
, POST
, HEAD
and DELETE
HTTP methods. The REST API method to be used for an HTTP request is typically documented in the Cloud REST API documentation.
Nome | Tipo | Valor |
---|---|---|
METHOD_DELETE |
VARCHAR2(6) |
'DELETE' |
METHOD_GET |
VARCHAR2(3) |
'GET' |
METHOD_HEAD |
VARCHAR2(4) |
'HEAD' |
METHOD_POST |
VARCHAR2(4) |
'POST' |
METHOD_PUT |
VARCHAR2(3) |
'PUT' |
Tópico principal: DBMS_CLOUD APIs REST
DBMS_CLOUD Cache de Resultados da API REST
Você pode salvar os resultados da API REST DBMS_CLOUD
ao definir o parâmetro cache
como verdadeiro com DBMS_CLOUD.SEND_REQUEST
. A view SESSION_CLOUD_API_RESULTS
descreve as colunas que você pode usar quando os resultados da API REST são salvos.
Por padrão, as chamadas de API REST DBMS_CLOUD
não salvam os resultados da sessão. Nesse caso, você usa a função DBMS_CLOUD.SEND_REQUEST
para retornar resultados.
Quando você usa DBMS_CLOUD.SEND_REQUEST
e define o parâmetro cache
como TRUE
, os resultados são salvos e você pode exibir os resultados passados na view SESSION_CLOUD_API_RESULTS
. Salvar e consultar resultados históricos de solicitações da API REST DBMS_CLOUD
podem ajudar você quando precisar trabalhar com resultados anteriores em seus aplicativos.
Por exemplo, para consultar resultados recentes da API REST DBMS_CLOUD
, use a view SESSION_CLOUD_API_RESULTS
:
SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;
Quando você salva os resultados da API DBMS_CLOUD
REST com DBMS_CLOUD.SEND_REQUEST
, os dados salvos só ficam disponíveis na mesma sessão (conexão) Depois que a sessão for encerrada, os dados salvos não estarão mais disponíveis.
Use DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
e DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
para exibir e definir o tamanho do cache da API REST DBMS_CLOUD
e para desativar o armazenamento no cache.
- Parâmetro DBMS_CLOUD cache_scope de Resultados da API REST
Quando você salva resultados da API RESTDBMS_CLOUD
comDBMS_CLOUD.SEND_REQUEST
, o acesso aos resultados emSESSION_CLOUD_API_RESULTS
é fornecido com base no valor decache_scope
. - DBMS_CLOUD View SESSION_CLOUD_API_RESULTS da API REST
Você pode salvar os resultados da API RESTDBMS_CLOUD
ao definir o parâmetrocache
como verdadeiro comDBMS_CLOUD.SEND_REQUEST
. A viewSESSION_CLOUD_API_RESULTS
descreve as colunas que você pode usar quando os resultados da API REST são salvos.
Tópico principal: DBMS_CLOUD APIs REST
Parâmetro cache_scope de Resultados da API REST DBMS_CLOUD
Quando você salva os resultados da API REST DBMS_CLOUD
com DBMS_CLOUD.SEND_REQUEST
, o acesso aos resultados em SESSION_CLOUD_API_RESULTS
é fornecido com base no valor de cache_scope
.
Por padrão, cache_scope
é 'PRIVATE'
e somente o usuário atual da sessão pode acessar os resultados. Se você definir cache_scope
como 'PUBLIC'
, todos os usuários da sessão poderão acessar os resultados. O valor padrão para cache_scope
especifica que cada usuário só pode ver os resultados da API REST DBMS_CLOUD.SEND_REQUEST
gerados pelos procedimentos que eles chamam com os direitos do chamador. Quando você chama DBMS_CLOUD.SEND_REQUEST
em uma sessão, há três possibilidades que determinam se o usuário atual pode ver resultados no cache, com base no valor cache_scope
:
-
Você executa diretamente
DBMS_CLOUD.SEND_REQUEST
como instrução de nível superior e a chamada paraDBMS_CLOUD.SEND_REQUEST
e os resultados da API REST são salvos com o mesmo nome de usuário. Nesse caso, você tem acesso a todos os resultados com o valor padrão, 'PRIVATE'
, definido paracache_scope
. -
Você grava um procedimento de direitos do invocador do encapsulador e, como usuário atual, sua chamada com
DBMS_CLOUD.SEND_REQUEST
chama o procedimento e os resultados da API REST são salvos com o mesmo nome de usuário. Nesse caso, você tem acesso a todos os resultados com o valor padrão,PRIVATE'
, definido paracache_scope
. -
Você grava o procedimento de direitos do definidor de um wrapper e o procedimento pertence a outro usuário. Quando você chama
DBMS_CLOUD.SEND_REQUEST
dentro do procedimento, os resultados são salvos com o nome de usuário do proprietário do procedimento.Para esse caso, um usuário dos direitos de outro definidor está chamando
DBMS_CLOUD.SEND_REQUEST
e os resultados da API REST são salvos com o proprietário do procedimento desse definidor. Para esse caso, por padrão, quandocache_scope
éPRIVATE'
, a sessão do chamador não pode ver os resultados.Se o proprietário do procedimento do definidor quiser disponibilizar os resultados para qualquer usuário da sessão de chamada, ele deverá definir
cache_scope
como'PUBLIC'
noDBMS_CLOUD.SEND_REQUEST
.
Tópico principal: DBMS_CLOUD Cache de Resultados da API REST
Exibição DBMS_CLOUD API REST SESSION_CLOUD_API_RESULTS
Você pode salvar os resultados da API REST DBMS_CLOUD
ao definir o parâmetro cache
como verdadeiro com DBMS_CLOUD.SEND_REQUEST
. A view SESSION_CLOUD_API_RESULTS
descreve as colunas que você pode usar quando os resultados da API REST são salvos.
A view SESSION_CLOUD_API_RESULTS
será a view criada se você armazenar resultados no cache com DBMS_CLOUD.SEND_REQUEST
. Você pode consultar resultados históricos que pertencem à sessão de usuário. Quando a sessão termina, os dados em SESSION_CLOUD_API_RESULTS
são expurgados.
Coluna | Descrição |
---|---|
URI |
O URL de solicitação da API REST DBMS_CLOUD
|
TIMESTAMP |
O timestamp de resposta da API REST DBMS_CLOUD
|
CLOUD_TYPE |
O tipo de nuvem da API REST DBMS_CLOUD , como Oracle Cloud Infrastructure, AMAZON_S3 e AZURE_BLOB
|
REQUEST_METHOD |
O método de solicitação da API REST DBMS_CLOUD , como GET , PUT , HEAD |
REQUEST_HEADERS |
Os cabeçalhos de solicitação da API REST DBMS_CLOUD
|
REQUEST_BODY_TEXT |
O corpo da solicitação da API REST DBMS_CLOUD em CLOB |
RESPONSE_STATUS_CODE |
O código de status de resposta da API REST DBMS_CLOUD , como 200(OK) , 404(Not Found) |
RESPONSE_HEADERS |
Os cabeçalhos de resposta da API REST DBMS_CLOUD
|
RESPONSE_BODY_TEXT |
O corpo da resposta da API REST DBMS_CLOUD em CLOB |
SCOPE |
O |
Tópico principal: DBMS_CLOUD Cache de Resultados da API REST
GET_RESPONSE_HEADERS Função
Essa função retorna os cabeçalhos de resposta HTTP como dados JSON em um objeto JSON.
Sintaxe
DBMS_CLOUD.GET_RESPONSE_HEADERS
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN JSON_OBJECT_T;
Parâmetros
Parâmetro | Descrição |
---|---|
resp |
O tipo de Resposta HTTP retornada de |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid_response |
ORA-20025 |
Objeto de tipo de resposta inválido informado para |
Tópico principal: DBMS_CLOUD APIs REST
GET_RESPONSE_RAW Função
Essa função retorna a resposta HTTP no formato RAW. Isso será útil se for esperado que a resposta HTTP seja de formato binário.
Sintaxe
DBMS_CLOUD.GET_RESPONSE_RAW
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN BLOB;
Parâmetros
Parâmetro | Descrição |
---|---|
resp |
O tipo de Resposta HTTP retornada de |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid_response |
ORA-20025 |
Objeto de tipo de resposta inválido informado para |
Tópico principal: DBMS_CLOUD APIs REST
Função GET_RESPONSE_STATUS_CODE
Essa função retorna o código de status de resposta HTTP como número inteiro. O código de status ajuda a identificar se a solicitação foi bem-sucedida.
Sintaxe
DBMS_CLOUD.GET_RESPONSE_STATUS_CODE
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN PLS_INTEGER;
Parâmetros
Parâmetro | Descrição |
---|---|
resp |
O tipo de Resposta HTTP retornada de |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid_response |
ORA-20025 |
Objeto de tipo de resposta inválido informado para |
Tópico principal: DBMS_CLOUD APIs REST
Função GET_RESPONSE_TEXT
Essa função retorna a resposta HTTP no formato TEXT
(VARCHAR2
ou CLOB
). Geralmente, a maioria das APIs REST na Nuvem retorna a resposta JSON em formato de texto. Esta função é útil se você espera que a resposta HTTP esteja no formato de texto.
Sintaxe
DBMS_CLOUD.GET_RESPONSE_TEXT
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN CLOB;
Parâmetros
Parâmetro | Descrição |
---|---|
resp |
O tipo de Resposta HTTP retornada de |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid_response |
ORA-20025 |
Objeto de tipo de resposta inválido informado para |
Tópico principal: DBMS_CLOUD APIs REST
Função GET_API_RESULT_CACHE_SIZE
Essa função retorna o tamanho do cache de resultados configurado. O valor do tamanho do cache só se aplica à sessão atual.
Sintaxe
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
()
RETURN NUMBER;
Tópico principal: DBMS_CLOUD APIs REST
SEND_REQUEST Função e Procedimento
Essa função e procedimento inicia uma solicitação HTTP, obtém a resposta e finaliza a resposta. Esta função fornece um workflow para enviar uma solicitação de API REST na nuvem com argumentos e retorna um código de resposta e um payload. Se você usar o procedimento, poderá exibir resultados e detalhes da resposta dos resultados salvos com a view SESSION_CLOUD_API_RESULTS
.
Sintaxe
DBMS_CLOUD.SEND_REQUEST
(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL)
RETURN DBMS_CLOUD_TYPES.resp;
DBMS_CLOUD.SEND_REQUEST
(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para autenticação com a API nativa da nuvem correspondente. Você pode usar |
uri |
URI HTTP para fazer a solicitação. |
method |
Método de Solicitação HTTP: Para obter mais informações, consulte DBMS_CLOUD Constantes da API REST. |
headers |
Cabeçalhos da Solicitação HTTP para a API nativa da nuvem correspondente no formato JSON. Os cabeçalhos de autenticação são definidos automaticamente; só informam cabeçalhos personalizados. |
|
Um URL de solicitação assíncrona. Para obter o URL, selecione sua API de solicitação na lista de APIs (consulte https://docs.cloud.oracle.com/en-us/iaas/api/). Em seguida, navegue para encontrar a API da sua solicitação no painel esquerdo. Por exemplo, API de Serviços de Banco de Dados → Autonomous Database → StopAutonomousDatabase. Esta página mostra o home da API (e mostra o ponto final base). Em seguida, anexe o ponto final base com o caminho relativo obtido para o link WorkRequest da solicitação de serviço. |
wait_for_states |
Aguardar estados é um status do tipo: Vários estados são permitidos para |
timeout |
Especifica o timeout, em segundos, para solicitações assíncronas com os parâmetros O valor default é |
cache |
Se O valor padrão é |
cache_scope |
Especifica se todos podem ter acesso a esse cache de resultados de solicitação. Valores válidos: |
body |
Corpo da Solicitação HTTP para solicitações |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid_req_method |
ORA-20023 |
O método de solicitação informado para |
invalid_req_header |
ORA-20024 |
Os cabeçalhos de solicitação especificados para |
Observações sobre Uso
-
Se você estiver usando o Oracle Cloud Infrastructure, use um valor de credencial baseado em Chave de Assinatura para o
credential_name
. Consulte CREATE_CREDENTIAL Procedimento para obter mais informações. -
Os parâmetros opcionais
async_request_url
,wait_for_states
etimeout
permitem tratar solicitações de longa execução. Usando essa forma assíncrona desend_request
, a função aguarda o status de conclusão especificado emwait_for_states
antes de retornar. Com esses parâmetros na solicitação de envio, você informa os estados esperados de retorno no parâmetrowait_for_states
e usa o parâmetroasync_request_url
para especificar uma solicitação de serviço associada. A solicitação não é retornada imediatamente. Em vez disso, ela sondaasync_request_url
até que o estado de retorno seja um dos estados esperados ou até quetimeout
seja excedido (timeout
é opcional). Se nenhumtimeout
for especificado, a solicitação aguardará até que ocorra um estado encontrado emwait_for_states
.
Tópico principal: DBMS_CLOUD APIs REST
SET_API_RESULT_CACHE_SIZE Procedimento
Esse procedimento define o tamanho máximo do cache para a sessão atual. O valor do tamanho do cache só se aplica à sessão atual.
Sintaxe
DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(
cache_size IN NUMBER);
Parâmetros
Parâmetro | Descrição |
---|---|
cache_size |
Defina o tamanho máximo do cache para o valor especificado Se o tamanho do cache for definido como O tamanho padrão do cache é |
Exceções
Exceção | Erro | Descrição |
---|---|---|
invalid API result cache size |
ORA-20032 |
O valor mínimo é 0 e o máximo é 10000. Essa exceção é mostrada quando o valor de entrada é menor que 0 ou maior que 10000. |
Exemplo
EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(101);
Tópico principal: DBMS_CLOUD APIs REST
DBMS_CLOUD Exemplos de API REST
Mostra exemplos usando DBMS_CLOUD.SEND_REQUEST
para criar e excluir um bucket do Oracle Cloud Infrastructure Object Storage e um exemplo para listar todos os compartimentos na tenancy.
Esses exemplos mostram as APIs de solicitação do Oracle Cloud Infrastructure e exigem que você use uma credencial baseada em Chave de Assinatura para o credential_name
. As credenciais baseadas em Chave de Assinatura do Oracle Cloud Infrastructure incluem os argumentos private_key
e fingerprint
.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Consulte CREATE_CREDENTIAL Procedure para obter informações sobre DBMS_CLOUD.CREATE_CREDENTIAL
.
Exemplo de Criação de Bucket
Mostra um exemplo usando DBMS_CLOUD.SEND_REQUEST
com o método HTTP POST
para criar um bucket de armazenamento de objetos chamado bucketname
.
Consulte CreateBucket para obter detalhes sobre a API do Oracle Cloud Infrastructure Object Storage Service desse exemplo.
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(
JSON_OBJECT('name' value 'bucketname',
'compartmentId' value 'compartment_OCID'))
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
Observações
-
Neste exemplo,
namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure ebucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações. -
Em que:
region
é uma região de ponto final. Consulte a referência de API do Armazenamento de Objetos em Referência de API e Pontos Finais para obter mais informações. Por exemplo, em queregion
é:us-phoenix-1
.
Exemplo de Exclusão de Bucket
Mostra um exemplo usando DBMS_CLOUD.SEND_REQUEST
com o método HTTP DELETE
para excluir um bucket de armazenamento de objetos chamado bucketname
.
Consulte DeleteBucket para obter detalhes sobre a API do Oracle Cloud Infrastructure Object Storage Service desse exemplo.
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
method => DBMS_CLOUD.METHOD_DELETE
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
Observações
-
Neste exemplo,
namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure ebucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações. -
Em que:
region
é uma região de ponto final. Consulte a referência de API do Armazenamento de Objetos em Referência de API e Pontos Finais para obter mais informações. Por exemplo, em queregion
é:us-phoenix-1
.
Exemplo de Lista de Compartimentos
Mostra um exemplo usando DBMS_CLOUD.SEND_REQUEST
com o método HTTP GET
para listar todos os compartimentos na tenancy (compartimento raiz). Esse exemplo mostra como especificar cabeçalhos de solicitação no DBMS_CLOUD.SEND_REQUEST
.
Consulte ListCompartments para obter detalhes sobre a API do Oracle Cloud Infrastructure Identity and Access Management Service desse exemplo.
--
-- List compartments
--
DECLARE
resp DBMS_CLOUD_TYPES.resp;
root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
-- Send request
dbms_output.put_line('Send Request');
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
method => DBMS_CLOUD.METHOD_GET,
headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
);
dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
dbms_output.put_line(CHR(10));
END;
/
Em que: region
é uma região de ponto final. Consulte a referência de API do IAM ( Identity and Access Management) em Referência de API e Pontos Finais para obter mais informações. Por exemplo, em que region
é: uk-london-1
.
Exemplo de Solicitação Assíncrona
Mostra um exemplo usando DBMS_CLOUD.SEND_REQUEST
com o método HTTP POST
para executar a operação de interrupção do Autonomous Database e aguardar o status. Esse exemplo mostra como usar DBMS_CLOUD.SEND_REQUEST
com os parâmetros async_request_url
, wait_for_states
e timeout
.
--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
l_resp DBMS_CLOUD_TYPES.resp;
l_resp_json JSON_OBJECT_T;
l_key_shape JSON_OBJECT_T;
l_body JSON_OBJECT_T;
status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
l_body := JSON_OBJECT_T('{}');
l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
dbms_output.put_line(l_body.to_clob);
dbms_output.put_line('Send Request');
l_resp := DBMS_CLOUD.send_request(
credential_name => 'NATIVE_CRED_OCI',
uri => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(l_body.to_clob),
async_request_url => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
wait_for_states => status_array,
timeout => 600
);
dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/
Em que: region
é uma região de ponto final. Consulte a referência de API do IAM ( Identity and Access Management) em Referência de API e Pontos Finais para obter mais informações. Por exemplo, em que region
é: uk-london-1
.
O ocid
é o identificador de recursos do Oracle Cloud Infrastructure. Consulte Identificadores de Recursos para obter mais informações.
Tópico principal: DBMS_CLOUD APIs REST
Legenda da Nota de Rodapé
Nota de rodapé 3: O suporte para chamadas de API REST do Azure Cloud é limitado ao domínio "blob.windows.net".