[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