Searching Based on Lengthy String Fields

The database stores most string attribute values in the lxStringTable for the object’s vault. However, lxStringTable cannot hold more than 254 bytes of data. When a string attribute’s value is larger than this limit, the data is stored in the descriptions table (lxDescriptionTable), and a pointer to this table is placed in the lxStringTable.

When performing an “includes” search (using match operators: match, match case, not match, not match case) on string attribute values, 3DSpace searches on both lxDescription and lxString tables only when the attribute involved is of type “multiline.” Also, if you use the equal operators (==, !=) and give a string of more than 254 bytes to be equal to, 3DSpace checks the values in the lxDescriptionTable only.

To search on description or other string attribute values for given text, and to force the search of both tables, you can use the “long” match operators. These operators can be used in any expression (including the where clause entry screen). For more information, see Relational Operators (RELATIONAL_OP).

Alternatively, you can include the .value syntax in the where clause:

attribute[LongString].value ~~ "matchstring"

For more information about .value keyword, see Using .value.