Ir para conteúdo
cfreis01

Erro procedure (dbms_output) PL/SQL

Recommended Posts

Bom dia galera,

Estou com um erro de execução na criação de uma procedure.

Eu vou passar uma cidade como parametro e ela me retorna os funcionarios que trabalham nessa cidade se nao encontrar retorna nao encontrado.

Tem que ser por dbms_output.

Se eu executo o bloco fora de procedure ele executa, quando coloco o script numa procedure ela compila mas se eu executo:

 

BEGIN
EXECUTE FUNC_CIDADE_PROC('DALLAS');

end;

Da erro :PLS-00103: Encontrado o simbolo "EMP_CIDADE_PROC" quando um dos seguintes simbolos era esperado:
:= .(

 

Mas se compilou e executou num bloco por que esta dando erro?

 

CREATE OR REPLACE PROCEDURE EMP_CIDADE_PROC(p_cidade varchar2)
IS
contador number;
begin
 begin
    select COUNT(EMPNO)
    into contador
                   from emp emp
                       ,dept dp
                   where emp.deptno = dp.deptno
                   and dp.loc = p_cidade
                   GROUP BY LOC;
           EXCEPTION
           WHEN NO_DATA_FOUND THEN

            dbms_output.put_line('Nenhum funcionário encontrado.');
    end;
    IF(CONTADOR > 0)THEN
     FOR CUR_EMP IN( select EMP.EMPNO
                          ,EMP.JOB
                          ,EMP.SAL
                     from emp emp
                         ,dept dp
                     where emp.deptno = dp.deptno
                     and dp.loc = p_cidade)LOOP
                        dbms_output.put_line('Código: '||cur_emp.empno||' | Cargo: '||cur_emp.job||' | Salário: '||cur_emp.sal);
                     END LOOP;

    END IF;

  --

END;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Viniciusr9
      Estou com um problema com esse esse script abaixo: 
      tenho um checkbox na minha página ( não em relatório, na página mesmo, um item de página) e gostaria que o mesmo ao ser clicado e pressionado um botão submit realizasse o procedimento do script, porém ele faz o processo mas não me retorna nada. acredito que o problema seja no LOOP do APEX_APPLICATION.G_F01 . Alguém consegue me ajudar com isso?
      DECLARE V_DS_COLAB VARCHAR2(50); BEGIN APEX_DEBUG.MESSAGE('CHECK:'|| vCHECK); FOR A IN 1 .. APEX_APPLICATION.G_F01.COUNT LOOP BEGIN SELECT C.DS_COLABORADOR INTO V_DS_COLAB FROM COLABORADOR C WHERE C.USER_APEX = V('APP_USER') ; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20001,'NENHUM REGISTRO ENCONTRADO!'); WHEN TOO_MANY_ROWS THEN RAISE_APPLICATION_ERROR(-20002,'MAIS QUE UM REGISTRO ENCONTRADO!'); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20003,'ERRO NAO PREVISTO' || SQLERRM) ; END; :P12_SUPER := (V_DS_COLAB || ' - ' || TO_CHAR(SYSDATE,'DD/MM/RRRR HH24:MI')); UPDATE COMPETENCIA_COLABORADOR CC SET FINALIZADO_SN = 'S' WHERE CC.CD_EQUIPE = :P12_EQUIPE AND CC.CD_COMPETENCIA = (SELECT C.CD_COMPETENCIA FROM COMPETENCIA C WHERE TO_DATE(LPAD(C.MES_COMPETENCIA,2,'0') || '/' || C.ANO_COMPETENCIA,'MM/RRRR') = TO_DATE(:P12_COMPETENCIA,'MM/RRRR')); END LOOP; END;  
    • Por Viniciusr9
      Boa tarde pessoal,
      Sei que tem varios tópicos sobre esse erro, porém analisei todos e nenhum foi aplicável ao meu caso ( a maioria era porquê o pessoal esquecia do Group By ao final das Querys) . 
      Se alguém puder ajudar, agradeço . Os campos sem função estão inseridos no group by, porém o erro persiste .
       
       

       
      SELECT * FROM( select LPAD(C.MES_COMPETENCIA,2,'0') ||'/'||C.ANO_COMPETENCIA AS PROJETO, E.DS_EQUIPE as EQUIPE, SUM(NVL((CC.QT_HORAS_CHEIA - SUM(AU.DT_FIM - AU.DT_INI)*24 ),CC.QT_HORAS_CHEIA)) as "ESFORÇO CALCULADO" from EQUIPE E, COLABORADOR C1, COMPETENCIA C, COMPETENCIA_COLABORADOR CC, AUSENCIAS AU where E.CD_EQUIPE=CC.CD_EQUIPE and C.CD_COMPETENCIA=CC.CD_COMPETENCIA and C1.CD_COLABORADOR=CC.CD_COLABORADOR and C1.STATUS = 1 AND C1.CD_GESTOR <> C1.CD_COLABORADOR AND AU.CD_COLABORADOR (+) = C1.CD_COLABORADOR GROUP BY E.DS_EQUIPE, LPAD(C.MES_COMPETENCIA,2,'0') ||'/'||C.ANO_COMPETENCIA ) VT WHERE VT.PROJETO = ((select to_char(sysdate, 'MM') from dual)||'/'||(select to_char(sysdate, 'RRRR') from dual))  
    • Por Viniciusr9
      Script com retorno de dias uteis no mês ( desconsiderando finais de semana e feriados também ( os mesmos cadastrados em uma tabela )), ajuda!
       
      Boa tarde,
      alguém poderia me ajudar , tentei com alguns que vi pela net , fazendo alterações mas não consegui o que gostaria ainda. Preciso de um script que dado um valor (mês/ano) ele retorne a quantidade de dias uteis nesse mês, desconsiderando os sabados e domingos e os feriados listados na tabela de feriados, em Oracle Sql puro ou PL/SQL  . Agradeço pela ajuda!
    • Por cfreis01
      Boa tarde galera
      Estou tentando importar um arquivo e esta dando o erro ORA-29282 ID de arquivo invalido
      Alguem pode me ajudar?
       
      Procedure File_Open(Pdiretorio Varchar2, Parquivo Varchar2, Pmodo Char) Is Msg Varchar2(200); BEGIN O erro esta dando neste UTL_Open abaixo, abaixo esta oq cada variavel esta carregando -- pdiretorio esta vindo o diretorio do arquivo, p arquivo esta vindo o nome do arquivo que quero importar o Pmodo esta retornando 'R' Utl_Open := Utl_File.Fopen(Pdiretorio, Parquivo, Pmodo,32713); Exception When Utl_File.Invalid_Path THEN Msg := 'Diretorio invalido: ' || Pdiretorio; Lib_Proc.Add_Log(Msg || Sqlerrm, 1); When Utl_File.Invalid_Operation THEN -- esta caindo nesta exception ********* Msg := 'Arquivo invalido: ' || Parquivo; -- Lib_Proc.Add_Log(Msg || Sqlerrm, 1); When Others THEN Msg := 'Erro na abertura do arquivo: ' || Parquivo; Lib_Proc.Add_Log(Msg || Sqlerrm, 1); INSERT INTO teste_c VALUES('88');COMMIT; End File_Open;  
    • Por pdrnl
      Bom dia pessoal, estou tendo um problema numa pagina de uma aplicação apex aqui, se trata de uma dynamic action que fica estourando o seguinte erro na tela: AJAX call returned server error ORA-01403: dados não encontrados for Execute PL/SQL Code.

      O Código PL/SQL da dynamic action é o seguinte: 
       
      Declare RESPONSABILIDADE$ Number; LICENCIAMENTO$ Number; NOTA_FISCAL_ENTREGUE$ Number; DOCUMENTACAO$ Number; LOCAL$ Number; REVISAO_ENTREGUE$ Number; LAVAGEM$ Number; BENEFICIADOR$ Varchar2(100); DATA_LIBERADO$ Date; DATA_ENTREGUE$ Date; PAGAMENTO$ Number; VALOR$ Number; BANCO$ Number; VALOR_BANCO$ Number; DATA_PROTOCOLO_BNDS$ Date; Begin Select RESPONSABILIDADE, 1,--Decode(Licenciamento,'C',1,'T',Null),--LICENCIAMENTO, NOTA_FISCAL_ENTREGUE, DOCUMENTACAO, LOCAL, REVISAO_ENTREGUE, LAVAGEM, BENEFICIADOR, DATA_LIBERADO, DATA_ENTREGUE, PAGAMENTO, VALOR, BANCO, VALOR_BANCO, DATA_PROTOCOLO_BNDS--DATA_PROT_BNDES Into RESPONSABILIDADE$, LICENCIAMENTO$, NOTA_FISCAL_ENTREGUE$, DOCUMENTACAO$, LOCAL$ , REVISAO_ENTREGUE$, LAVAGEM$, BENEFICIADOR$, DATA_LIBERADO$, DATA_ENTREGUE$, PAGAMENTO$, VALOR$, BANCO$, VALOR_BANCO$, DATA_PROTOCOLO_BNDS$ From ifv_pedidos_status_veiculos Where Ifv_Empresa = :P0_Current_Emp And Ifv_Local = :P0_Current_Loc And Ifv_pedido = :P976_Ifv_PEdido And Ifv_Sequencia_Detalhe = :P976_Ifv_Seq_Detalhe And Ifv_Sequencia_Veiculo = :P976_Ifv_Seq_Veiculo; :P976_RESPONSABILIDADE := RESPONSABILIDADE$; :P976_LICENCIAMENTO := LICENCIAMENTO$ ; :P976_NOTA_FISCAL_ENTREGUE := NOTA_FISCAL_ENTREGUE$ ; :P976_DOCUMENTACAO := DOCUMENTACAO$; :P976_LOCAL := Local$; :P976_REVISAO_ENTREGUE := REVISAO_ENTREGUE$; :P976_LAVAGEM := LAVAGEM$; :P976_BENEFICIADOR := BENEFICIADOR$; :P976_DATA_LIBERADO := DATA_LIBERADO$; :P976_DATA_ENTREGUE :=DATA_ENTREGUE$; :P976_PAGAMENTO := PAGAMENTO$; :P976_VALOR := VALOR$; :P976_BANCO := BANCO$; :P976_VALOR_BANCO := VALOR_BANCO$; :P976_DATA_PROT_BNDES := DATA_PROTOCOLO_BNDS$; End;
      Os itens de SUBMIT sao esses: P976_RESPONSABILIDADE,P976_LICENCIAMENTO,P976_NOTA_FISCAL_ENTREGUE,P976_DOCUMENTACAO,P976_LOCAL,P976_REVISAO_ENTREGUE,P976_LAVAGEM,P976_BENEFICIADOR,P976_DATA_LIBERADO,P976_DATA_ENTREGUE,P976_PAGAMENTO,P976_VALOR,P976_BANCO,P976_VALOR_BANCO,P976_DATA_PROT_BNDES

      Os itens de RETURN sao esses: P976_RESPONSABILIDADE,P976_LICENCIAMENTO,P976_NOTA_FISCAL_ENTREGUE,P976_DOCUMENTACAO,P976_LOCAL,P976_REVISAO_ENTREGUE,P976_LAVAGEM,P976_BENEFICIADOR,P976_DATA_LIBERADO,P976_DATA_ENTREGUE,P976_PAGAMENTO,P976_VALOR,P976_BANCO,P976_VALOR_BANCO,P976_DATA_PROT_BNDES

      Como consigo resolver esse erro?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.