[ RDBMS ]

Erro no Agente Oraclo PL/SQL 

 Há dois tipos de erros que o Oracle PL/SQL Agente manipula:
 
Erros de aplicação
Erros de aplicação são específicos à aplicação de PL/SQL. Todos os procedimentos de PL/SQL que você escreve deveriam ter o próprio tratamento de exceção redirecionando a saida para o HTML apropriado.

Porque o Agente de PL/SQL não lê a saída HTML para determinar seu conteúdo, e o correto tratamento de exceções geram as mensahem de erro HTML, o redirecionamento de exceções são transparentes. O  Agente PL/SQL está preocupado, se o código de PL/SQL gera saída HTML, das operação que tiveram êxito. O usuário pensará que todas as mensagens de redirecionamento de exceções são geradas pelos procedimentos do Agente PL/SQL.

Erros de sistemas
Erros de sistemas são descobertos pelo Agente Oracle PL/SQL. Estes são erros que acontecem quando o Agente de PL/SQL está impossibilitado de retornar o procedimento de PL/SQL ou quando uma exceção de PL/SQL não é redirecionada para o procedimento armazenado e causa a exceção a ser propagada atráves do Agente PL/SQL como um erro de sistema. Isto causa um documento padrão de HTML a ser devolvido ao browser.

Por exemplo, se o Agente do Oracle não pode fazer uma conexão para o Oracle7 Server, o procedimento PL/SQL não pode rodar e um erro de sistema acontece. O Agente PL/SQL então retorna uma mensagem de erro padrão para o browser ou retorna uma página de erro de HTML específica (se for configurado previamente como parte do DCD que usa o parâmetro de OWA_ERR_PAGE).

Classes de Mensagens de Erro
 

CÓDIGO DESCRIÇÃO
  00000 - 00099   Servidor Oracle
  00200 - 00249   Arquivos de controle
  00250 - 00299   Arquivamento e recuperação
  00300 - 00379   Arquivos de registro de redo
  00440 - 00485   Processos de segundo plano
  00700 - 00709   Cache de dicionario
  00900 - 00999   Analise de declarações SQL
  01100 - 01250   O banco de dados e seus arquivos de suporte
  01400 - 01489   Erros de execução de SQL
  01500 - 01699   Conjunto de comandos SQL de DBA
  02376 - 02399   Recursos
  04030 - 04039   Memória e o spool compartilhado
  04040 - 04069   Procedimentos armazenados
  12100 - 12299   SQL*Net
  12500 - 12699   SQL*Net
  12700 - 12799   Uso de opções de várias linguas
  ORA-00600   Erro retornado quando o Oracle encontra alguma dificuldade interna. É uma mensagem generica seguida de até seis argumentos entre colchetes.


Conclusão
Exceções é o método da PL/SQL de tratar com condições de erro. Em um aplicativo real, você pode não encontrar a informação que está procurando ao tentar recuperar dados. O Oracle realiza processamento até terminar com sucesso ou encontrar uma condição de erro, abaixo segue a relação da exceções mais comuns na PL/SQL; testando essas exceções, você pode detectar erros que aparecem em seu programa PL/SQL.
 
 

  Exceções   Explicação   Código /  SQLCODE
CURSOR_ALREADY_OPEN Tentativa de abrir um cursor já aberto.   ORA-06511  /  -6511
DUP_VAL_ON_INDEX Essa exceção detecta uma tentativa de criar uma entrada em um índice cujos valores de coluna-chave já existem. Suponha, por exemplo, um aplicativo de cobrança controlado pelo número da fatura. Se um programa tentasse criar um número da fatura duplicado, essa exceção apareceria.   ORA-00001  /  -1
INVALID_CURSOR Referência a um cursor inválido ou tentativa de operação inválida de cursor.   ORA-01001  /  -1001
INVALID_NUMBER Tentativa de usar algo diferente de um número onde havia essa exigência.   ORA-01722  /  -1722
LOGIN_DENIED Solicitação de conexão negada.   ORA-01017  /  -1017
NO_DATA_FOUND Se uma declaração select tenta recuperar dados com base em suas condições, essa exceção aparece quando nenhuma linha satisfaz os critérios de seleção.   ORA-01403  /  +100
NOT_LOGGED_ON Ausência de conexão com o Oracle7.   ORA-01012  /  -1012
PROGRAM_ERROR Erro interno do PL/SQL.   ORA-06501  /  -6501
STORAGE_ERROR Erro de memória do PL/SQL.   ORA-06500  /  -6504
TIMEOUT_ON_RESOURCE Timeout atingido durante espera de um recurso do Oracle7.   ORA-00051  /  -6500
TOO_MANY_ROWS Como cada cursor implícito é capaz de recuperar apenas uma linha, essa exceção detecta a existência de mais de uma linha.   ORA-01422  /  -1422
TRANSACTION_BACKED_OUT Um servidor remoto desfez sua transação.   ORA- 
VALUE_ERROR Essa exceção indica que houve uma operação de atribuição em que o campo de destino não é suficientemente grande para conter o valor que está sendo colocado. Por exemplo, se o texto VERDADE @BSOLUTA for atribuído a uma variável definida vomo "varchar2(6)", então essa exceção aparece. Pode indicar também um erro de aritmética, de conversão ou de restrição.    ORA-06502  /  -6502
ZERO_DIVIDE Tentativa de dividir um número por zero.   ORA-01476  /  -1476


Exemplo
Vou montar um pequeno esquema para tratamento de exceções:

PROCEDURE teste
     < declaração das variáveis >.
BEGIN
       < instruções >
   EXCEPTION
       WHEN NO_DATA_FOUND
          THEN
            < função que trata o erro ou mensagem de erro >
       WHEN TOO_MANY_ROWS
          THEN
            < função que trata o erro ou mensagem de erro >
       WHEN OTHERS
          THEN
            < função que trata o erro ou mensagem de erro >
END;
 

Referência :


<=

http://www.absoluta.org      ---oOo---      verdade@absoluta.org

Copyright © 1998 - 1999  Verdade @bsoluta