Chamar procedures externos como funções SQL
Mostra as etapas para chamar procedimentos externos usando PL/SQL no seu banco de dados.
- Visão Geral de Procedimentos Externos
Procedimentos externos são funções gravadas em uma linguagem de terceira geração que podem ser chamadas de dentro de PL/SQL ou SQL como se fossem uma rotina ou função PL/SQL. - Sobre o Uso de Procedimentos Externos no Autonomous Database
Você pode chamar e usar procedimentos externos no seu Autonomous Database com funções definidas pelo usuário. - Definir o Procedimento C
Defina o procedimento C usando um desses protótipos. - Criar um Arquivo (.so) de Biblioteca Compartilhada
Crie uma biblioteca de objetos compartilhados (arquivo.so
). A biblioteca de objetos compartilhados contém o procedimento C (procedimento externo) que foi definido na etapa anterior. - Obtenha o Aplicativo de Pilha EXTPROC do OCI Marketplace
Mostra as etapas para obter o Aplicativo de PilhaEXTPROC
do OCI Marketplace. - Iniciar o Aplicativo de Pilha EXTPROC
Inicie o Aplicativo de PilhaEXTPROC
na página Detalhes do Aplicativo EXTPROC. - Criar Pilha para o Aplicativo Agente EXTPROC
Mostra as etapas para criar Pilha para a instânciaEXTPROC
. - Fazer Upload da Wallet para Criar Conexão Segura com a Instância do Agente EXTPROC
Uma wallet autoassinada é criada como parte da criação do aplicativo do agenteEXTPROC
. Essa wallet permite que você acesse a instância do agenteExtrpoc
. - Etapas para Chamar um Procedimento Externo como uma Função SQL
Mostra as etapas para chamar um Procedimento externo como uma função SQL.
Tópico principal: Chamar Funções Definidas pelo Usuário
Visão Geral de Procedimentos Externos
procedures externos são funções gravadas em uma linguagem de terceira geração e que podem ser chamadas de dentro de PL/SQL ou SQL como se fossem uma rotina ou função PL/SQL.
Os procedimentos externos promovem a reutilização, a eficiência e a modularidade. Bibliotecas de links dinâmicos (DLLs) existentes gravadas em outras linguagens podem ser chamadas de programas PL/SQL. As DLLs são carregadas somente quando necessário e podem ser aprimoradas sem afetar os programas de chamada.
O uso de procedimentos externos também melhora o desempenho, pois as linguagens de terceira geração executam determinadas tarefas com mais eficiência do que o PL/SQL, que é mais adequado para o processamento de transações SQL.
Os procedimentos externos são úteis quando:
-
Resolver problemas científicos e de engenharia
-
Analisando dados
-
Controle de dispositivos e processos em tempo real
Consulte O Que É um Procedimento Externo? para obter mais informações.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Sobre o Uso de Procedimentos Externos no Autonomous Database
Você pode chamar e usar procedimentos externos no seu Autonomous Database com funções definidas pelo usuário.
Você não instala procedimentos externos em uma instância do Autonomous Database. Para usar um procedimento externo, o procedimento é hospedado remotamente em uma VM em execução em uma VCN (Rede Virtual na Nuvem) do Oracle Cloud Infrastructure.
Só há suporte para procedimentos externos quando o Autonomous Database está em um ponto final privado. A instância do agente EXTPROC
é hospedada em uma sub-rede privada e o Autonomous Database acessa o agente EXTPROC
por meio de um RCE ( Reverse Connection Endpoint).
O Autonomous Database só suporta procedimentos externos em linguagem C.
Os procedimentos externos são implantados usando:
-
Uma imagem de contêiner fornecida pela Oracle com o agente
EXTPROC
instalado e configurado como parte da pilha do Marketplace do Oracle Cloud Infrastructure (OCI).A instância do agente
EXTPROC
é hospedada remotamente em uma VM em execução em uma VCN (Rede Virtual na Nuvem) do Oracle Cloud Infrastructure. A comunicação segura entre o seu Autonomous Database e a instância do agenteEXTPROC
é garantida definindo regras de Grupo de Segurança de Rede (NSG) de modo que o tráfego seja permitido da sua instância do Autonomous Database em execução em um ponto final privado para a instância do agenteEXTPROC
.A imagem do agente
EXTPROC
é pré-configurada para hospedar e executar procedimentos externos na porta 16000. -
Procedimentos PL/SQL para criar uma biblioteca e registrar e chamar funções e procedimentos externos.
Consulte DBMS_CLOUD_FUNCTION Package para obter mais informações.
Siga estas etapas para chamar um procedimento externo no Autonomous Database:
-
Defina o procedimento C. Consulte Definir o Procedimento C.
-
Crie uma biblioteca de objetos compartilhados (arquivo
.so
). Consulte Criar um Arquivo (.so) de Biblioteca Compartilhada. -
Inicie o aplicativo de pilha
EXTPROC
do Autonomous Database. Consulte Obter o Aplicativo de Pilha EXTPROC do OCI Marketplace. -
Provisione e configure o agente
EXTPROC
do Oracle Autonomous Database. Consulte Criar Pilha para Aplicativo do Agente EXTPROC para obter mais informações. -
Configure o Autonomous Database para estabelecer conexão com a instância do agente
EXTPROC
. Consulte Fazer Upload da Wallet para Criar Conexão Segura com a Instância do Agente EXTPROC para obter mais informações. -
Crie uma biblioteca remota usando
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
. Consulte Etapas para Chamar um Procedimento Externo como uma Função SQL para obter mais informações. -
Use a função definida pelo usuário criada na etapa anterior. Consulte Etapas para Chamar um Procedimento Externo como uma Função SQL para obter mais informações.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Definir o procedimento C
Defina o procedimento C usando um desses protótipos.
-
Protótipos do estilo Kernighan & Ritchie. Por exemplo:
void UpdateSalary(x) float x; ...
-
Protótipos ISO/ANSI que não sejam tipos de dados numéricos menores que a largura total (como
float
,short
,char
). Por exemplo:void UpdateSalary(double x) ...
-
Outros tipos de dados que não mudam de tamanho sob promoções de argumento padrão.
Este exemplo altera o tamanho em promoções de argumento padrão:
void UpdateSalary(float x) ...
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Criar um Arquivo de Biblioteca Compartilhada (.so)
Crie uma biblioteca de objetos compartilhados (arquivo .so
). A biblioteca de objetos compartilhados contém o procedimento C (procedimento externo) que foi definido na etapa anterior.
Você gera uma biblioteca de objetos compartilhada usando o seguinte comando:
gcc -I/u01/app/oracle/extproc_libs/ -shared -fPIC -o extproc.so UpdateSalary.c
Isso cria o objeto compartilhado (.so
), biblioteca extproc.so
. O procedimento UpdateSalary
, definido na etapa anterior, está contido na biblioteca extproc.so
. As bibliotecas de objeto compartilhado (.so
) são carregadas dinamicamente no runtime.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Obtenha o Aplicativo OCI Marketplace EXTPROC Stack
Mostra as etapas para obter o Aplicativo de Pilha EXTPROC
do OCI Marketplace.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Iniciar Aplicativo de Pilha EXTPROC
Inicie o Aplicativo de Pilha EXTPROC
na página Detalhes do Aplicativo EXTPROC.
Isso leva você à página Criar pilha que permite criar pilha para o agente EXTPROC
.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Criar Pilha para Aplicativo do Agente EXTPROC
Mostra as etapas para criar a Pilha para a instância EXTPROC
.
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Fazer Upload da Wallet para Criar uma Conexão Segura com a Instância do Agente EXTPROC
Uma wallet autoassinada é criada como parte da criação do aplicativo do agente EXTPROC
. Essa wallet permite que você acesse a instância do agente Extrpoc
.
EXTPROC
, o Autonomous Database e o agente EXTPROC
se conectam usando o mTLS (Mutual Transport Layer Security). Ao usar o mTLS (Mutual Transport Layer Security), os clientes se conectam por meio de uma conexão do banco de Dados TCPS (Secure TCP) usando o TLS 1.2 padrão com um certificado da autoridade de certificado (CA) do cliente confiável. Consulte Sobre a Conexão com uma Instância do Autonomous Database para obter mais informações.
Você também pode obter e usar um certificado público emitido por uma Autoridade de Certificação (CA).
Como pré-requisito, exporte a wallet para o serviço Object Storage do diretório /u01/app/oracle/extproc_wallet
na VM em que EXTPROC
é executado.
Siga estas etapas para fazer upload da wallet para o seu Autonomous Database:
Tópico principal: Chamar Procedimentos Externos como Funções SQL
Etapas para Chamar um Procedimento Externo como uma Função SQL
Mostra as etapas para chamar um Procedimento externo como uma função SQL.
Depois de iniciar o aplicativo de pilha EXTPROC
do OCI Marketplace e configurá-lo para executar procedimentos externos, você cria uma biblioteca de funções wrapper SQL que fazem referência e chamam seus respectivos procedimentos externos.
Como pré-requisito, as bibliotecas na lista branca devem ser copiadas para o diretório /u01/app/oracle/extproc_libs
na VM EXTPROC
.
Tópico principal: Chamar Procedimentos Externos como Funções SQL