Definir Procedure dentro de outra (Procedure)

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

galera, é possível fazer isso no Forms, definir Procedure internernas?

no Delphi tem como, imagino que no Forms tb, mas não estou sabendo como é a sintaxe aqui, ex:

Selecionar tudo

PROCEDURE importa_usuarios IS
		
	ArqTxt          Text_IO.File_Type;
	você_Reg          VARCHAR2(800);
	vn_cont				  PLS_INTEGER := 0;		
	você_situacao     VARCHAR2(30);
	você_cd_sit       VARCHAR2(1);
	ArquivoErrado	  EXCEPTION;	
		
	PROCEDURE desabilita;	
	BEGIN
		TEXT_IO.FCLOSE(ArqTxt);						  	  
	  :b01.chk_imp_usuario  := 'N';
		:b01.caminho_arq_user := NULL;		
		SET_ITEM_PROPERTY('b01.b_open_user', ENABLED, PROPERTY_FALSE);		
	END;
	
BEGIN...


pretendo criar essa procedure 'Desabilita' para utilizá-la internamente mesmo, nos tratamentos de Exception da Procedure principal (importa_usuarios) para diminuir redundância de código

já coloquei ela antes da definicição das variáveis, mas dá erro do mesmo jeito

valeu
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,
beleza?

Não dá pra fazer isso com uma PACKAGE?
Você poderia criar uma no Forms mesmo e, utilizar as procedures que precisa, depois, só faz a chamada nos pontos do programa.
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

só se for Paulão, só queria saber mesmo se era possível

acho que não vou criar uma package só pra fazer isso não, é pouca coisa


mas valeu mesmo assim
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Pode criar Procedures DENTRO de Procedures SIM!
Mas ela só será visível dentro dessa que você criou.

Exemplo:

Selecionar tudo

SQL> set serveroutput on
SQL> 
SQL> DECLARE
  2  
  3    PROCEDURE A
  4    IS
  5  
  6      --Dentro da procedure A, eu construo a procedure B
  7      PROCEDURE B
  8      IS
  9      BEGIN
 10        DBMS_OUTPUT.PUT_LINE('ESTOU NA PROCEDURE B');
 11      END;
 12  
 13  
 14    BEGIN
 15      DBMS_OUTPUT.PUT_LINE('ESTOU NA PROCEDURE A');
 16      --Executo a procedure B
 17      B;
 18    END;
 19  
 20  BEGIN
 21  
 22    --Executa a procedure A
 23    A;
 24  
 25  END;
 26  /

ESTOU NA PROCEDURE A
ESTOU NA PROCEDURE B

PL/SQL procedure successfully completed

SQL> 
Repare que eu criei um bloco PL/SQL.
Na sessão de DECLARE, eu fiz a procedure A.
Dentro da sessão de declaração dessa procedure A, eu criei a procedure B.

No seu exemplo, o problema é que você colocou assim:

Selecionar tudo

PROCEDURE desabilita;    
e deveria ter feito assim:

Selecionar tudo

PROCEDURE desabilita IS 

Um tempo atras, rolou um tópico sobre o ESCOPO de váriáveis.
É interessante ver ele tb:
http://glufke.net/oracle/viewtopic.php?t=34

:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes