[firebase-br] Varrer Banco dados campo VARCHAR e deletar aspas duplas.

Paulo Geloramo assisinformatica em gmail.com
Sábado Novembro 21 13:15:14 -03 2020


Boa tarde,

Estou fazendo uma EXECUTE BLOCK para percorrer todos os
campos VARCHAR  do banco e deletar aspas duplas,
conforme exemplo, está retornando erro abaixo.

Alguma sugestão?

=======
EXECUTE BLOCK
AS
DECLARE T VARCHAR(31);
DECLARE F VARCHAR(31);
DECLARE K CHAR(8) CHARACTER SET OCTETS;
BEGIN
  FOR SELECT RDB$RELATION_NAME
      FROM RDB$RELATIONS
      WHERE RDB$SYSTEM_FLAG = 0 AND RDB$RELATION_TYPE = 0
      ORDER BY RDB$RELATION_NAME
      INTO :T DO
  BEGIN
    FOR SELECT R.RDB$FIELD_NAME
        FROM RDB$RELATION_FIELDS R
        JOIN RDB$FIELDS F ON F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCE
        WHERE R.RDB$RELATION_NAME = :T AND F.RDB$FIELD_TYPE = 37
        ORDER BY R.RDB$FIELD_POSITION
        INTO :F DO
    BEGIN
      FOR EXECUTE STATEMENT 'SELECT RDB$DB_KEY FROM ' || :T || ' WHERE
' || :F || ' CONTAINING ''"'''
          INTO :K DO
      BEGIN
        EXECUTE STATEMENT 'UPDATE ' || :T || ' SET '|| :F || ' =
REPLACE(' || :T || '.' || :F || ', ''"'', '''') WHERE RDB$DB_KEY = '
|| :K || ';';
      END
    END
  END
END
======
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 179.
¤.
=====


--
Paulo Geloramo
www.assisinformatica.com



Mais detalhes sobre a lista de discussão lista