Runtime Database Utilities

Índice

Executor de SQL e DML

RTDBUT.UTL_DB_SQL

Descrição

Interface que permite ao usuário executar consultas e DMLs livremente no banco de dados.
O usuário pode escrever vários comandos em sequencia em uma mesma entrada. Estes comandos serão executados em uma transação e automaticamente comitados no final.

O resultado dos comandos SELECT executados será através de uma tabela.

Para os demais comandos de DML ou DDL, apenas o número de registros processados será informado.

Além dos comandos tradicionais de SQL, DML e DDL, os seguintes comandos são reconhecidos:


Todos os DML e DDL registrados são registrados no log de replicação, ou seja, são automaticamente replicados para os outros servidores conectados à base de replicação.


Comandos especiais:

LET

Permite definir uma variável com um valor.
Caso a segunda variável ser um record, cria um novo record com os mesmos atributos.
Ex:
let user = last;


SHOW

Este comando permite consultar as propriedades de configuração do ambiente. Estas propriedades são consultadas diretamente no mapa de configurações. A sintaxe de uso é:
show [chave] [,chave...];

As chaves são formadas pelo nome global da propriedade. Cada chave pode iniciar ou terminar com "*" para visualizar grupos de parâmetros.

Exemplos:
Listar uma determinada propriedade específica:
show RT.UI.CUSTOM_CSS;

Listar todas as customizações de CSS:
show *.CSS;

Listar todas as configurações de uma determinada interface:
show PROJET.CAD_OCORRENCIAS.*

Listar as configurações de DB:
show CONFIG.DB.*;

DML-INSERT e DML-UPDATE

Estes comandos permitem gerar scripts contendo comandos de INSERT ou UPDATE com os mesmos dados que estão atualmente na base.
A sintaxe é a seguinte:
DML-INSERT|DML-UPDATE TABELA [WHERE ...] [ORDER BY ...] [LIMIT] [OFFSET]
Onde:

Exemplos:
dml-insert preferencias where preferencia like 'APP.%';
dml-update atividades where id=2878487;

Comando IF-NOT-FOUND

Executa comando apenas se o comando anterior não achou registros
if-not-found comando

Exemplo:
update ... where id=...;
if-not-found insert into ...;

Comando DML-SAVE

Combina os comandos DML-UPDATE, DML-INSERT e IF-NOT-FOUND e permite copiar (alterando ou inserindo) um conjunto de registros de um BD para outro.

Faz um update seguido de um insert que é executado apenas caso não encontrar o registro.

Exemplo: Criar script para atualizar todas as naturezas de operação
dml-save naturezas_operacoes;

Irá gerar várias linhas tipo:
update ... where id=...;
if-not-found insert into ...;

Uso de macros

Dentro de qualquer comando informado, pode-se utilizar variáveis (macros) resultantes de comandos anteriores. Estas variáveis são definidas no seguinte formato ${nome-da-variavel}.

Qualquer comando SELECT executado, define automaticamente a variável "last" com os dados do último registro resultante na query. Desta forma, podemos utilizar o valor de qualquer uma destas colunas através da macro ${last.coluna}.

Exemplo:
select * from usuarios where login = 'admin';
select * from pedidos where usuario_inclusao_id = ${last.id};

Campos:

Script a ser executado. Os comandos são encerrados com um ";" (opcional na ultima linha).
Os principais comandos aceitos são:
  • SELECT - Qualquer comando SQL aceito pelo banco.
  • EXPORT - Exporta dados para CSV - Sintaxe igual ao SELECT.
  • DISPLAY - Igual ao SELECT, porém, apresenta os campos um abaixo do outro.
  • DESC tabela - Apresenta as informações sobre a tabela informada (colunas e tipagem de dados)
  • SHOW pref - Apresenta valor das preferencias. Pode usar "*" como coringa
  • CONFIG pref=valor, pref=valor, ... - Permite configurar preferencias
  • CONNECT [nome] - Conecta com outra base de dados.
  • DML-INSERT tabela WHERE condição - Gera comando de insert
  • DML-UPDATE tabela WHERE condição - Gera comando de update.
  • DML-SAVE - Gera update + comando para insert se não encontrado.
  • DML (qualquer DML aceito pelo banco)
  • DDL (qualquer DDL aceito pelo banco)
Número máximo de registros a serem listados nos comandos SELECT.
Indica se deve ou não replicar os comandos de DML e DDL para os outros servidores da rede.

Operações

Topo

Custom

Apenas inicializa o valor da replicação
Topo

Custom

Tela sem operações geradas. Totalmente customizada.
Topo

DML

Operação de alteração direta dos registros no banco de dados.
Topo

Executar

Executa os comandos informados no campo de comando.

Dúvidas frequentes

  • Como criar uma function ou procedure no PostgreSQL usando o UTL_DB_SQL ?
  • Como cria uma procedure/function de banco utilizando o UTL_DB_DQL?
  • Configurações

    RTDBUT.UTL_DB_SQL.USE_SCRIPT_ENGINE

    Usar engine de script

    Indica se a interface deve ou não utilizar o engine de script.

    Tipo: FLAG