Buen día:
Al final el problema era que estaba usando un TQuery para crear el procedure, lo reemplacé por un TIBSQL y listo.
quedó así:
Código SQL
[-]Create Procedure SoloNumerosx (num varchar(30)) returns (Numero varchar(30)) as
declare i integer;
declare res varchar(30);
begin
res='';
i=1;
while (i<=char_length(:num)) do begin
if ((substring(:num from i for 1) > ascii_char(47) ) and (substring(:num from i for 1)< ascii_char(58))) then begin
res =res||substring(:num from i for 1);
end
i=i+1;
end
numero=res;
suspend;
end;
Código SQL
[-]select ndoc2,
(select numero from SOLONUMEROSX (ndoc2)) as cuit,
cliente
from clientes
Sin embargo voy a utilizar la solución propuesta por [fjcg02], pero esta solución me sirve porque se trata de sacar solo guiones, que es distinto a dejar solo números.
Gracias por todo.