Hola de nuevo,
He llevado a cabo vuestros consejos, pero no ha habido forma de conseguir mi propósito.
Os dejo el código del procedimiento. Su funcionamiento es simple, se trata de coger los dos primeros caracteres del código postal, y con ello cojo lo provincia y población de otra tabla, para así modificar la ficha del cliente.
Código SQL
[-]create procedure actualiza_codigo_postales
as
declare variable postal integer;
declare variable codigo_postal varchar(10);
declare variable provincia integer;
declare variable poblacion integer;
declare variable cliente smallint;
declare variable empresa smallint;
declare variable direccion smallint;
begin
for select empresa,cod_postal,codigo_cliente,num_direccion from cli_direcciones
into :empresa,:codigo_postal,:cliente,:direccion do
begin
if ((codigo_postal <> '') or (codigo_postal is not null)) then
begin
provincia = cast( substring(codigo_postal FROM 1 FOR 2) as integer);
if (provincia > 0) then
begin
select codigo from poblaciones
where cod_postal =:codigo_postal
and provincia = : provincia
into : poblacion;
if (poblacion is null) then poblacion = 0;
if (provincia is null) then provincia = 0;
update cli_direcciones
set provincia = : provincia,poblacion = : poblacion
where empresa =:empresa
and codigo_cliente =:cliente
and num_direccion =:direccion;
end
end
end
suspend;
end
Un saludo.
MUCHAS GRACIAS A TODOS!!