rafads
(usa Fedora)
Enviado em 03/07/2012 - 11:12h
Estou estudando Procedure e resolvendo uma questao de uma prova ...
Gostaria de uma ajuda na resolução, pois estou com dificuldades de fazer uma Pocedure
As tabelas do banco da questao é :
CREATE TABLE CONSULTA
(COD_CONS INTEGER NOT null,
DATA_CONS DATE NOT NULL,
COD_MED INTEGER NOT NULL,
COD_PAC INTEGER NOT null,
PRIMARY KEY (COD_CONS),
FOREIGN KEY (COD_PAC) REFERENCES PACIENTE,
FOREIGN KEY (COD_MED) REFERENCES MEDICO);
CREATE TABLE EXAME
(COD_CONS INTEGER NOT NULL,
COD_EXAME INTEGER NOT null,
NOME_EXAME VARCHAR(40),
DATA_EXAME DATE,
PRIMARY KEY (COD_CONS,COD_EXAME) );
--- Questão --
Considerando, crie uma Procedure que receba todos os dados de um Exame e faça a inserção no banco. Antes de inserir a procedure deve verificar se o codigo de consulta informado existe na tabela Consulta. Caso não exista, a inserção nao deve ser feita.
Resolvi no seguinte modo SÓ QUE NÃO ESTÁ DANDO CERTO ... OCORRE UM ERRO:
CREATE PROCEDURE insere_exame (
COD_CONS INTEGER,
COD_EXAME INTEGER,
NOME_EXAME VARCHAR(40),
DATA_EXAME DATE)
AS
DECLARE VARIABLE AUX INTEGER;
begin
SELECT COUNT(*) FROM consulta
where CONSULTA.cod_cons = EXAME.cod_cons
INTO AUX;
IF(AUX IS NOT NULL) THEN
INSERT INTO EXAME values (cod_cons,cod_exame,nome_exame,data_exame);
suspend;
end
O ERRO :
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
COD_CONS.
At line 13, column 72.
Espero a ajuda de vocês,
Att.