Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • 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.