Re: [firebase-br] Migrar Firebird 3 para 5
Max Wolfring via lista <[email protected]> Sat, 20 Dec 2025 12:44:10 +0000 (UTC)
| Newsgroups | gmane.comp.db.firebase.portuguese |
|---|---|
| Message-ID | <[email protected]> |
Bom dia!Muito obrigado, resolvemos o problema desta forma, fizamos a extra=
=E7=E3o do metadata, corrigimos as fun=E7=F5es que n=E3o existiam, retiramo=
s as refer=EAncias a UDFs, e tudo est=E1 funcionando, essas observa=E7=F5es=
foram importantes para vermos o que estavamos fazendo de errado.
On Friday, December 19, 2025 at 03:17:43 PM GMT-4, Gladiston Santana vi=
a lista <[email protected]> wrote: =
=
Fun=E7=F5es para MOD e ABS j=E1 existem acho que desde a 2.5.
STRLEN poderia trocar CHAR_LENGTH
SUBSTR poderia trocar por SUBSTRING
RTRIM=A0 poderia trocar por TRIM e TRIM+TRAILING:
> SELECT TRIM(TRAILING FROM '=A0 =A0 Remove Espa=E7os=A0 =A0 =A0 ') FROM RD=
B$DATABASE;
> // Retorna 'Remove Espa=E7os'
> SELECT TRIM(TRAILING '.' FROM 'Removendo pontos no final!....') FROM
> RDB$DATABASE; // Retorna 'Removendo pontos no final!'
>
O LTRIM voce teria que criar uma SQL Function para isso, ex:
> CREATE OR ALTER FUNCTION LTRIM_CUSTOM (
>=A0 =A0 STR VARCHAR(32765)
> ) RETURNS VARCHAR(32765)
> AS
> DECLARE VARIABLE POS INTEGER =3D 1;
> DECLARE VARIABLE LEN INTEGER;
> BEGIN
>=A0 IF (STR IS NULL) THEN
>=A0 =A0 =A0 RETURN NULL;
>=A0 LEN =3D CHAR_LENGTH(STR);
>=A0 -- Percorre a string enquanto encontrar espa=E7os
>=A0 WHILE (POS <=3D LEN AND SUBSTRING(STR FROM POS FOR 1) =3D ' ') DO
>=A0 BEGIN
>=A0 =A0 =A0 POS =3D POS + 1;
>=A0 END
>=A0 -- Se POS ultrapassou LEN, a string s=F3 tinha espa=E7os
>=A0 IF (POS > LEN) THEN
>=A0 =A0 =A0 RETURN '';
>=A0 ELSE
>=A0 =A0 =A0 -- Retorna do primeiro caractere n=E3o-espa=E7o em diante
>=A0 =A0 =A0 RETURN SUBSTRING(STR FROM POS);
> END
Ex:
SELECT LTRIM_CUSTOM('=A0 =A0 teste123') FROM RDB$DATABASE;=A0 // retorna
'Teste123'
Remova as depend=EAncias de UDF e depois fa=E7a backup e restaure no 5.
[]'s e sucesso.
Em sex., 19 de dez. de 2025 =E0s 10:39, Max Wolfring via lista <
[email protected]> escreveu:
> Bom dia!Estamos migrando banco de dados do Firebird 3 para o 5 e recebemos
> a mensagem:
> gbak: WARNING:function STRLEN is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be found
> gbak: WARNING:=A0 =A0 function SUBSTR is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be found
> gbak: WARNING:=A0 =A0 function LTRIM is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be found
> gbak: WARNING:=A0 =A0 function RTRIM is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be found
> gbak: WARNING:=A0 =A0 function ABS is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be found
> gbak: WARNING:=A0 =A0 function MOD is not defined
> gbak: WARNING:=A0 =A0 module name or entrypoint could not be foundExecuta=
mos o
> script conforme recomendado no livro sobre migra=E7=E3o para o Firebird 4=
do
> Cantu:/opt/firebird/bin/isql -user sysdba -pas 4b6f4194 -i
> /opt/firebird/misc/upgrade/udf/udf_replace.sql banco.fdb
> e isso resolve quase tudo, continua dando mensageem nas fun=E7=F5es MOD e=
ABS,
> como posso resolver isso?
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.fi=
rebase.com.br/fb/artigo.php?id=3D1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista=
.html
=
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.fi=
rebase.com.br/fb/artigo.php?id=3D1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista=
.html