[firebase-br] tabela temporaria

Denilson Hauch denilsonhauch em gmail.com
Seg Jan 15 16:29:26 -03 2007


tenho uma sp que junta dados de duas tabelas e grava em uma terceira tabela

toda vez q a sp é executada limpo a tabela e gravo os dados das duas tabelas

qdo só um terminal executa funciona blza mas qdo + de um terminal tenta 
executar da erro


como faço para criar uma tabela temporaria? ou tem alguma outra forma de se 
fazer isto sem tabela



CREATE PROCEDURE "IMPORTA"
(
  "NOME_TEMP" VARCHAR(50)
)
RETURNS
(
  "OK" CHAR(1)
)
AS
DECLARE VARIABLE CODIGO INTEGER;
DECLARE VARIABLE I INTEGER;
DECLARE VARIABLE DATA DATE;
DECLARE VARIABLE MEDICO VARCHAR(50);
DECLARE VARIABLE IDADE CHAR(3);
DECLARE VARIABLE SEXO CHAR(1);
DECLARE VARIABLE LAUDO BLOB;
DECLARE VARIABLE EXAME VARCHAR(50);
DECLARE VARIABLE NOME_NOVO VARCHAR(50);
BEGIN
I=0;
DELETE FROM NOVO;
FOR select COD_ANTIGO, DATA, MEDICO, IDADE, SEXO, LAUDO, EXAME, NOME FROM 
ANTIGO
WHERE NOME CONTAINING :NOME_TEMP
into :CODIGO, :DATA, :MEDICO, :IDADE, :SEXO, :LAUDO, :EXAME, :NOME_NOVO
DO
BEGIN
I= I + 1;
INSERT INTO NOVO(COD_NOVO, DATA, MEDICO, IDADE, SEXO, LAUDO, EXAME, NOME, 
CONTROLE, CONT)
values(:CODIGO, :DATA, :MEDICO, :IDADE, :SEXO, :LAUDO, :EXAME, :NOME_NOVO, 
'A', :I);
END
FOR select ITENS_RECE.N_RECEP2,  ITENS_RECE.RESULTADO, ITENS_RECE.TITULO,
RECEPCAO.DT_EXAME, PACIENTES.SEXO, PACIENTES.IDADE, PACIENTES.NOME_PAC, 
MEDICOS.NOME_MEDICO
FROM ITENS_RECE,  RECEPCAO, PACIENTES, MEDICOS
WHERE NOME_PAC CONTAINING :NOME_TEMP AND ITENS_RECE.N_RECEP2 = 
RECEPCAO.N_RECEP2
      AND  RECEPCAO.COD_PAC = PACIENTES.COD_PAC AND RECEPCAO.CODIGO = 
MEDICOS.CODIGO
into :CODIGO, :LAUDO, :EXAME, :DATA, :SEXO, :IDADE, :NOME_NOVO, :MEDICO
DO
BEGIN
I= I + 1;
INSERT INTO NOVO(COD_NOVO, DATA, MEDICO, IDADE, SEXO, LAUDO, EXAME, 
NOME,CONTROLE, CONT)
values(:CODIGO, :DATA, :MEDICO, :IDADE, :SEXO, :LAUDO, :EXAME, 
:NOME_NOVO,'N',:I);
END
SUSPEND;
END







Mais detalhes sobre a lista de discussão lista