Chiappa, bom dia!
OK. Compreendido. Vou verificar os detalhes, daqui, agora.
E - mais uma vez - muito obrigado por todas as dicas/informações fornecidas.
Um abraço
Eugênio Tenórioeu_tenór...@yahoo.com.br

    Em terça-feira, 3 de abril de 2018 10:00:16 BRT, jlchia...@yahoo.com.br 
[oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:  
 
     
Tudo blz ? Então, antes de responder a sua pergunta , deixa eu confirmar : vc 
ENTENDEU que o seu erro é de SINTAXE, vc está usando um comando DE MANEIRA 
ERRADA, né ? E isso não tem como prevenir, o procedimento é SIMPLESMENTE 
escrever o comando corretamente, sim sim ?? 
  Muito bem : isso posto e entendido, os erros de runtime (ie, um comando 
escrito de maneira CORRETA e VÁLIDA que encontra uma situação excepcional - 
tipo, não encontrou dados, ou recebeu mais dados que o previsto, um dado 
inválido apenas em poucas linhas, etc) são capturados no PL/SQL *** não *** com 
um IF mas sim com uma cláusula EXCEPTION : pense na EXCEPTION como um condição 
de ON ERROR GOTO no BASIC, tipo um ponto da sua rotina para onde o fluxo de 
execução vai ser DESVIADO automaticamente quando der erro...  A sintaxe dele é 
: imediatamente antes de um END que termina um bloco BEGIN/END vc declara a 
área de EXCEPTION e indica quais linhas vão ser acionadas em quais situações de 
erro...
  
  ==> o CRITICAMENTE IMPORTANTE pra ser dito aqui (vide manual oficial Oracle 
em https://docs.oracle.com/cloud/latest/db112/CNCPT/transact.htm#CNCPT016) é 
que um comando SQL é ATÔMICO, ie, ele TEM SUCESSO OU FALHA na íntegra, pra 
TODAS as linhas de TODAS as tabelas envolvidas.... Assim, se vc tem um SELECT 
que vc pediu pro SQL executar na íntegra (é o que acontece tanto pra cursor 
implícito quanto pra SQL inserido fora de LOOPs), não há como vc controlar o 
erro a nível de LINHA, uma falha é uma falha.... SE vc quer ter controle 
absoluto a esse nível, a nível de CADA LINHA RECUPERADA, em princípio vc TEM 
que usar cursor EXPLÍCITO, onde é VOCÊ que manda o PL/SQL ler cada linha do 
SELECT contido no cursor , assim vc Pode capturar / tratar cada erro em cada 
linha... 
   Para exemplo, digamos que vou pesquisar uma tabela por uma coluna que não é 
chave única, e assim estou prevendo que possa ter mais de uma linha retornada a 
cada pedido de leitura, o que viola o fato de que uma variável local (sem ser 
array) só pode ter UM valor assignado a cada vez - nesse caso uma Opção poderia 
ser tratar a exceção... Não é a única NEM a melhor mas serve como exemplo 
didático... 
   Seria algo mais ou menos tipo :
  
CREATE OR REPLACE PROCEDURE PROC_NOME_COMPLETO (P_DEPARTMENT_ID number) IS
    l_employee_full_name         VARCHAR2(500);
    cursor c is
        SELECT last_name || ', ' || first_name
          FROM employees
         WHERE DEPARTMENT_ID = P_DEPARTMENT_ID;
BEGIN
   open c;
      loop
         Begin
            fetch c into l_employee_full_name;
            Exit When c%NotFound;
            Dbms_Output.Put_Line('Empregado Depto=' || P_DEPARTMENT_ID || 
',full name=' || l_employee_full_name);
         Exception
            when TOO_MANY_ROWS then
               dbms_output.put_line('Depto=' || P_DEPARTMENT_ID || ' possui 
mais de um empregado!!');
         End;
      end loop;
   close c;
END;

 ==> Claro, o construto acima é PSEUDOCÓDIGO, não o executei mas acho que deu 
pra pegar a idéia : Ou seja, vc aplica a condição de erro num EXCEPTION, não 
existe IF envolvido... Okdoc ?? mais refs, goto manual PL/SQL da sua versão....
 
 []s
 
   Chiappa
  #yiv5688126680 #yiv5688126680 -- #yiv5688126680ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5688126680 
#yiv5688126680ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5688126680 
#yiv5688126680ygrp-mkp #yiv5688126680hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv5688126680 #yiv5688126680ygrp-mkp #yiv5688126680ads 
{margin-bottom:10px;}#yiv5688126680 #yiv5688126680ygrp-mkp .yiv5688126680ad 
{padding:0 0;}#yiv5688126680 #yiv5688126680ygrp-mkp .yiv5688126680ad p 
{margin:0;}#yiv5688126680 #yiv5688126680ygrp-mkp .yiv5688126680ad a 
{color:#0000ff;text-decoration:none;}#yiv5688126680 #yiv5688126680ygrp-sponsor 
#yiv5688126680ygrp-lc {font-family:Arial;}#yiv5688126680 
#yiv5688126680ygrp-sponsor #yiv5688126680ygrp-lc #yiv5688126680hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5688126680 
#yiv5688126680ygrp-sponsor #yiv5688126680ygrp-lc .yiv5688126680ad 
{margin-bottom:10px;padding:0 0;}#yiv5688126680 #yiv5688126680actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5688126680 
#yiv5688126680activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5688126680
 #yiv5688126680activity span {font-weight:700;}#yiv5688126680 
#yiv5688126680activity span:first-child 
{text-transform:uppercase;}#yiv5688126680 #yiv5688126680activity span a 
{color:#5085b6;text-decoration:none;}#yiv5688126680 #yiv5688126680activity span 
span {color:#ff7900;}#yiv5688126680 #yiv5688126680activity span 
.yiv5688126680underline {text-decoration:underline;}#yiv5688126680 
.yiv5688126680attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv5688126680 .yiv5688126680attach div a 
{text-decoration:none;}#yiv5688126680 .yiv5688126680attach img 
{border:none;padding-right:5px;}#yiv5688126680 .yiv5688126680attach label 
{display:block;margin-bottom:5px;}#yiv5688126680 .yiv5688126680attach label a 
{text-decoration:none;}#yiv5688126680 blockquote {margin:0 0 0 
4px;}#yiv5688126680 .yiv5688126680bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv5688126680 
.yiv5688126680bold a {text-decoration:none;}#yiv5688126680 dd.yiv5688126680last 
p a {font-family:Verdana;font-weight:700;}#yiv5688126680 dd.yiv5688126680last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5688126680 
dd.yiv5688126680last p span.yiv5688126680yshortcuts 
{margin-right:0;}#yiv5688126680 div.yiv5688126680attach-table div div a 
{text-decoration:none;}#yiv5688126680 div.yiv5688126680attach-table 
{width:400px;}#yiv5688126680 div.yiv5688126680file-title a, #yiv5688126680 
div.yiv5688126680file-title a:active, #yiv5688126680 
div.yiv5688126680file-title a:hover, #yiv5688126680 div.yiv5688126680file-title 
a:visited {text-decoration:none;}#yiv5688126680 div.yiv5688126680photo-title a, 
#yiv5688126680 div.yiv5688126680photo-title a:active, #yiv5688126680 
div.yiv5688126680photo-title a:hover, #yiv5688126680 
div.yiv5688126680photo-title a:visited {text-decoration:none;}#yiv5688126680 
div#yiv5688126680ygrp-mlmsg #yiv5688126680ygrp-msg p a 
span.yiv5688126680yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv5688126680 
.yiv5688126680green {color:#628c2a;}#yiv5688126680 .yiv5688126680MsoNormal 
{margin:0 0 0 0;}#yiv5688126680 o {font-size:0;}#yiv5688126680 
#yiv5688126680photos div {float:left;width:72px;}#yiv5688126680 
#yiv5688126680photos div div {border:1px solid 
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv5688126680 
#yiv5688126680photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv5688126680
 #yiv5688126680reco-category {font-size:77%;}#yiv5688126680 
#yiv5688126680reco-desc {font-size:77%;}#yiv5688126680 .yiv5688126680replbq 
{margin:4px;}#yiv5688126680 #yiv5688126680ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv5688126680 #yiv5688126680ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv5688126680 
#yiv5688126680ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv5688126680 
#yiv5688126680ygrp-mlmsg select, #yiv5688126680 input, #yiv5688126680 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv5688126680 
#yiv5688126680ygrp-mlmsg pre, #yiv5688126680 code {font:115% 
monospace;}#yiv5688126680 #yiv5688126680ygrp-mlmsg * 
{line-height:1.22em;}#yiv5688126680 #yiv5688126680ygrp-mlmsg #yiv5688126680logo 
{padding-bottom:10px;}#yiv5688126680 #yiv5688126680ygrp-msg p a 
{font-family:Verdana;}#yiv5688126680 #yiv5688126680ygrp-msg 
p#yiv5688126680attach-count span {color:#1E66AE;font-weight:700;}#yiv5688126680 
#yiv5688126680ygrp-reco #yiv5688126680reco-head 
{color:#ff7900;font-weight:700;}#yiv5688126680 #yiv5688126680ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv5688126680 #yiv5688126680ygrp-sponsor 
#yiv5688126680ov li a {font-size:130%;text-decoration:none;}#yiv5688126680 
#yiv5688126680ygrp-sponsor #yiv5688126680ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv5688126680 
#yiv5688126680ygrp-sponsor #yiv5688126680ov ul {margin:0;padding:0 0 0 
8px;}#yiv5688126680 #yiv5688126680ygrp-text 
{font-family:Georgia;}#yiv5688126680 #yiv5688126680ygrp-text p {margin:0 0 1em 
0;}#yiv5688126680 #yiv5688126680ygrp-text tt {font-size:120%;}#yiv5688126680 
#yiv5688126680ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv5688126680   

Responder a