Firebird - Funcao Ocorre |
Top Previous Next |
|
SET TERM ^ ;
CREATE PROCEDURE SP_OCORRE ( I_TEXTO VARCHAR(24000), I_SEPARADOR VARCHAR(1)) RETURNS ( R_VEZES INTEGER) AS DECLARE VARIABLE L_TAMANHO INTEGER; DECLARE VARIABLE L_POSICAO INTEGER; DECLARE VARIABLE L_CARAC VARCHAR(1); BEGIN R_VEZES = 0; L_POSICAO = 0; L_TAMANHO = STRLEN(I_TEXTO); WHILE (L_POSICAO <= L_TAMANHO) DO BEGIN L_POSICAO = L_POSICAO + 1; L_CARAC = SUBSTR(I_TEXTO, L_POSICAO, L_POSICAO); IF (L_CARAC = I_SEPARADOR) THEN BEGIN R_VEZES = R_VEZES + 1; END END SUSPEND; end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE SP_OCORRE TO SYSDBA; |