CURSOR c_pre_med IS
SELECT tip_presc.cd_tip_presc, tip_presc.ds_tip_presc, pre_med.cd_atendimento
FROM dbamv.pre_med,
dbamv.itpre_med,
dbamv.tip_presc
WHERE itpre_med.cd_tip_esq = 'MOT'
AND pre_med.cd_pre_med = itpre_med.cd_pre_med
AND tip_presc.cd_tip_esq = 'MOT'
AND tip_presc.cd_tip_presc = itpre_med.cd_tip_presc
AND pre_med.cd_atendimento = v_cd_atendimento;
CURSOR c_pre_med1 IS
SELECT 1
FROM dbamv.pre_med
WHERE pre_med.cd_atendimento = v_cd_atendimento
AND pre_med.cd_unid_int = :cd_unid_int
AND TRUNC(pre_med.dt_pre_med) BETWEEN v_dt_pre_med AND :data_final;
--AND pre_med.dt_pre_med BETWEEN :data_inicial AND :data_final
--AND TRUNC(pre_med.dt_pre_med) = v_dt_pre_med;
v_tem_pre_med NUMBER := 0;
v_pre_med c_pre_med%ROWTYPE;
BEGIN
FOR v_atendimentos IN c_atendimentos LOOP
v_cd_atendimento := v_atendimentos.cd_atendimento;
v_dt_pre_med := v_atendimentos.dt_pre_med;
v_pre_med := NULL;
OPEN c_pre_med;
FETCH c_pre_med INTO v_pre_med;
CLOSE c_pre_med;
IF v_pre_med.ds_tip_presc IS NOT NULL THEN
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (v_pre_med.cd_tip_presc,1,v_cd_atendimento);
ELSE
v_tem_pre_med := 0;
OPEN c_pre_med1;
FETCH c_pre_med1 INTO v_tem_pre_med;
CLOSE c_pre_med1;
IF v_tem_pre_med = 1 THEN
-- 'NÃO DEFINIDO'
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (NULL,1,v_cd_atendimento);
ELSE
-- '>>>SEM/ADMISSÃO<<<'
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (0,1,v_cd_atendimento);
END IF;
END IF;
END LOOP;
FORMS_DDL('COMMIT');
MESSAGE('Atenção. Processo Finalizado com Sucesso.');
EXCEPTION
WHEN OTHERS THEN
MESSAGE(SQLERRM);
MESSAGE(' ');
END;
AJUDA POR FAVOR - Rodar rotina
-
- Rank: Programador Pleno
- Mensagens: 31
- Registrado em: Sex, 26 Jan 2007 6:23 pm
- Localização: Campo Mourão - PR
Preciso testar (rodar) esse comado, mas não sei como, se alguém puder me ajudar ficaria muito grato.
Obrigado.
- dr_gori
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você pode se conectar no SQL*Plus, por exemplo.
Aí você roda assim:
Poe um declare que está faltando no bloco, e executa com a barra embaixo.
Aí você roda assim:
declare
CURSOR c_pre_med IS
SELECT tip_presc.cd_tip_presc, tip_presc.ds_tip_presc, pre_med.cd_atendimento
FROM dbamv.pre_med,
dbamv.itpre_med,
dbamv.tip_presc
WHERE itpre_med.cd_tip_esq = 'MOT'
AND pre_med.cd_pre_med = itpre_med.cd_pre_med
AND tip_presc.cd_tip_esq = 'MOT'
AND tip_presc.cd_tip_presc = itpre_med.cd_tip_presc
AND pre_med.cd_atendimento = v_cd_atendimento;
CURSOR c_pre_med1 IS
SELECT 1
FROM dbamv.pre_med
WHERE pre_med.cd_atendimento = v_cd_atendimento
AND pre_med.cd_unid_int = :cd_unid_int
AND TRUNC(pre_med.dt_pre_med) BETWEEN v_dt_pre_med AND :data_final;
--AND pre_med.dt_pre_med BETWEEN :data_inicial AND :data_final
--AND TRUNC(pre_med.dt_pre_med) = v_dt_pre_med;
v_tem_pre_med NUMBER := 0;
v_pre_med c_pre_med%ROWTYPE;
BEGIN
FOR v_atendimentos IN c_atendimentos LOOP
v_cd_atendimento := v_atendimentos.cd_atendimento;
v_dt_pre_med := v_atendimentos.dt_pre_med;
v_pre_med := NULL;
OPEN c_pre_med;
FETCH c_pre_med INTO v_pre_med;
CLOSE c_pre_med;
IF v_pre_med.ds_tip_presc IS NOT NULL THEN
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (v_pre_med.cd_tip_presc,1,v_cd_atendimento);
ELSE
v_tem_pre_med := 0;
OPEN c_pre_med1;
FETCH c_pre_med1 INTO v_tem_pre_med;
CLOSE c_pre_med1;
IF v_tem_pre_med = 1 THEN
-- 'NÃO DEFINIDO'
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (NULL,1,v_cd_atendimento);
ELSE
-- '>>>SEM/ADMISSÃO<<<'
INSERT INTO dbamv.tip_presc_aux_h9j VALUES (0,1,v_cd_atendimento);
END IF;
END IF;
END LOOP;
FORMS_DDL('COMMIT');
MESSAGE('Atenção. Processo Finalizado com Sucesso.');
EXCEPTION
WHEN OTHERS THEN
MESSAGE(SQLERRM);
MESSAGE(' ');
END;
/
- dr_gori
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Daí você executa só os inserts
Outra opção é comentar na rotina o que você não quer que rode...
SQL> INSERT INTO dbamv.tip_presc_aux_h9j VALUES (0,1,'seutexto')
/
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
Há também a opção de testar usando o PL/SQL Developer, que é uma ferramenta show de bola. Ela permite inclusive testar as procedures e functions, com debug e acesso aos valores das variáveis.
Mas se você fizer o que o Dr. disse, vai funcionar certinho!!
Ah... pra comentar, claro:
Para comentar uma linha:
Para comentar um bloco inteiro:
É simples, mas já vi gente me perguntando isso... então aí está!
Mas se você fizer o que o Dr. disse, vai funcionar certinho!!
Ah... pra comentar, claro:
Para comentar uma linha:
-- seu_codigo_aqui;
Para comentar um bloco inteiro:
/*
seu_codigo_aqui;
seu_codigo_aqui;
seu_codigo_aqui;
seu_codigo_aqui;
seu_codigo_aqui;
*/
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes