Dae galerinha...td blz...
Estou com o seguinte problema e to recorrendo a vcs...
Eu costumo fazer esse tipo de procedure no oracle...e sempre ta tudo 100% 
funcional...
Mas agora preciso começar a usar o IB Expert para criar as procedures para a 
Base em Firebird...e não estou conseguindo montar a procedure abaixo no IB 
Expert...
Alguém pode me ajudar?

Att.:
Ricardo


CREATE OR REPLACE PROCEDURE "SEL_FUNCIONARIO"
( PFILIAL IN VARCHAR2,
  PCODIGO IN VARCHAR2,
  PNOME IN VARCHAR2,
  IOCURSOR OUT SYS_REFCURSOR
) AS
  SQL_CONSULTA VARCHAR2(1000);
  LNOME VARCHAR2(100);

BEGIN
  SELECT REPLACE(PNOME, '+', '%') || '%' INTO LNOME FROM DUAL;

  SQL_CONSULTA := ' SELECT * ';
  SQL_CONSULTA := SQL_CONSULTA ||' FROM FUNCIONARIO ';
  SQL_CONSULTA := SQL_CONSULTA ||' WHERE 1 = 1 ';

  IF (PFILIAL IS NOT NULL) THEN
    SQL_CONSULTA := SQL_CONSULTA || ' AND FILIAL= ''' || PFILIAL '''';
  END IF;

  IF (PCODIGO IS NOT NULL) THEN
    SQL_CONSULTA := SQL_CONSULTA || ' AND CODIGO = ''' || PCODIGO '''';
  END IF;

  IF (LNOME IS NOT NULL) THEN 
    SQL_CONSULTA := SQL_CONSULTA || ' AND LOWER(NOME) LIKE LOWER( '''||LNOME|| 
''')';
  END IF;

  SQL_CONSULTA := SQL_CONSULTA || 'ORDER BY NOME ';

OPEN IOCURSOR FOR SQL_CONSULTA;

END SEL_FUNCIONARIO;

Responder a