Subject Re: [ib-support] Re: character set error on open table
Author Helen Borrie
At 02:27 PM 12/03/2003 +0000, you wrote:
> > So - is this the table that is causing the error? And, if so, why
>do you
> > think the problem has anything to do with the character set? Are
>there
> > character fields in it as well?
>
>No, there aren't.
>
>create table TEM_ENDERECO (
>ID_ENDERECO INTEGER not null,
>ID_PARCEIRO INTEGER not null,
>constraint PK_TEM_ENDERECO primary key (ID_ENDERECO, ID_PARCEIRO)
>);
>
>But this message tell me that "Cannot transliterate character..."
>:
>Arithmetic overflow or division by zero has occurred.
>arithmetic exception, numeric overflow, or string truncation.
>Cannot transliterate character between character sets.

Sure, but if the table has no character columns then you might need to look
at one of the arithmetic errors - what might have happened in a calculation
somewhere, that an integer oveflow occurred, e.g. a number string that was
cast to integer, perhaps?


>When this message appear, in the EMS IB Manager (when I open my
>table), is appearing a window with a memo named "SQL TEXT" with the
>query:
>
>select A.RDB$RELATION_NAME,
>A.RDB$CONSTRAINT_NAME,
>A.RDB$CONSTRAINT_TYPE,
>B.RDB$CONST_NAME_UQ,
>B.RDB$UPDATE_RULE,
>B.RDB$DELETE_RULE,
>C.RDB$RELATION_NAME as FK_Table,
>A.RDB$INDEX_NAME,
>D.RDB$FIELD_NAME as FK_Field,
>E.RDB$FIELD_NAME as OnField
>from RDB$REF_CONSTRAINTS B, RDB$RELATION_CONSTRAINTS A,
>RDB$RELATION_CONSTRAINTS C,
>RDB$INDEX_SEGMENTS D, RDB$INDEX_SEGMENTS E
>where (A.RDB$CONSTRAINT_TYPE = 'FOREIGN KEY') and
>(A.RDB$CONSTRAINT_NAME = B.RDB$CONSTRAINT_NAME) and
>(B.RDB$CONST_NAME_UQ=C.RDB$CONSTRAINT_NAME) and
>(C.RDB$INDEX_NAME=D.RDB$INDEX_NAME) and
>(A.RDB$INDEX_NAME=E.RDB$INDEX_NAME)
>and (A.RDB$RELATION_NAME = 'TEM_ENDERECO')
>order by A.RDB$RELATION_NAME, A.RDB$CONSTRAINT_NAME,
>D.RDB$FIELD_POSITION, E.RDB$FIELD_POSITION

There might be a string error somewhere in this system query, where you
have added a constraint somewhere that has a name that is too long or uses
an illegal character. (The limit is 31 characters, and you are restricted
to using US ascii characters in identifiers).

heLen