[firebase-br] Função DIGITS(), alguma maneira de contornar sua ausencia?
Gladiston Santana
gladiston em vidy.com.br
Ter Nov 8 12:39:55 -03 2016
revisão para ficar genérica:
create or alter procedure get_digits (
str varchar (255),
valid_digits varchar (255) = '012346789')
returns (
result_value varchar (255))
as
declare variable nsize_of_str integer = 0;
declare variable i integer;
declare variable sonlychar char (1);
begin
-- segundo parâmetro é opcional se for manter apenas numeros, modo de
usar:
-- select result_value from
get_digits('(11)5555-4444/5555-33333,'0123456789/')
-- retorna 1155554444/555533333
result_value=null;
nsize_of_str = octet_length(str); -- CHARACTER_LENGTH
if ((str is not null) and (nsize_of_str > 0)) then
begin
result_value = '';
i = 1;
while (i <= nsize_of_str) do
begin
sOnlyChar = SUBSTRING (str FROM i FOR 1);
if ( position (sOnlyChar in valid_digits)>0 ) then
begin
result_value = result_value || sOnlyChar;
end
i = i + 1;
end
end
suspend;
end
Mais detalhes sobre a lista de discussão lista