Hola
Estoy probando de pasar de Firebird 2.0 a 2.5 una BD y me encuentro con el problema al restaurar que me da el error
Cita:
gbak:restoring stored procedure COMPROBA_ASSENTAMENT_TMP_S
gbak: ERROR:Malformed string
gbak:Invalid metadata detected. Use -FIX_FSS_METADATA option.
gbak:Exiting before completion due to errors
|
El problema esta en que el procedure devuelve un campo MISSATGE
que recoge una cadena con una palabra acentuada
Código SQL
[-]
create procedure COMPROBA_ASSENTAMENT_TMP_S (
CODI_EMPRESA varchar(10),
EXERCICI integer,
N_ASENT integer,
IVA varchar(1))
returns (
TOT_BE varchar(1),
SERIE varchar(2),
COMPTE_CL_PR varchar(15),
MISSATGE varchar(100))
as
begin
TOT_BE='S';
MISSATGE=NULL;
serie=null;
compte_cl_pr =null;
select min(codi_iva) FROM assentaments_temp where CODI_EMPRESA=:codi_empresa AND EXERCICI=:EXERCICI AND N_ASENT=:n_asent AND codi_IVA IS NOT NULL INTO :codi_iva;
SELECT TIP_GRUP_ID FROM busca_tip_grup_iva_repercutit INTO :P_TIP_GRUP_R;
SELECT TIP_GRUP_ID FROM busca_tip_grup_iva_SUPORTAT INTO :P_TIP_GRUP_S;
SELECT TIP_GRUP_ID FROM busca_tip_grup_clients INTO :P_TIP_GRUP_cl;
SELECT TIP_GRUP_ID FROM busca_tip_grup_proveidors INTO :P_TIP_GRUP_pr;
SELECT TIP_GRUP_ID FROM busca_tip_grup_retencio_clients INTO :P_TIP_GRUP_re;
SELECT TIP_GRUP_ID FROM busca_tip_grup_retencio_provei INTO :P_TIP_GRUP_res;
SELECT SERIE_SUPORTADA,TIPUS FROM tip_iva_comptable WHERE CODI_EMPRESA=:codi_empresa AND CODI=:CODI_IVA
INTO :SERIE,:P_TIP_IVA;
select count(*) from assentaments_temp a join comptes ch ON A.CODI_EMPRESA=Ch.CODI_EMPRESA AND A.EXERCICI=Ch.EXERCICI AND A.haber=Ch.CODI
join select_tip_grups(:CODI_EMPRESA,:EXERCICI,:P_TIP_GRUP_res) stg on (stg.codi_grup=ch.grup_3 or stg.codi_grup=ch.grup_4)
WHERE A.CODI_EMPRESA=:CODI_EMPRESA AND A.EXERCICI=:EXERCICI AND A.N_ASENT=:N_ASENT into :num1;
if (:num1>1) then TOT_BE='N';
if (:TOT_BE='N') then
MISSATGE='Assentament amb mes d''un apunt de Retenció';
La base de datos original 2.0 tiene charset ISO8859_1
Utilizo para restaurar ibexpert v 2006 i pido crear nueva BD
Me crea la Bd con los dominios i tablas,generadores,udf
pero sin ningun procedure
Luego yo voy script executive i ejecuto el procedure que falla en el restore
COMPROBA_ASSENTAMENT_TMP_S i me lo traga
Supongo que el problema es el acento de Retenció
Es un problema del Ibexpert ?
Debo hacerlo a traves del gback ?
Saludos
Panta