The IfxDocDesc data type

The main advantage of using a column of type IfxDocDesc is that you can choose to store your text documents either on the operating system file system or in the database itself. A single column of type IfxDocDesc can have rows of each storage type. You specify how you want to store the documents through the lo_protocol field of the location field of IfxDocDesc by entering one of IFX_FILE, IFX_CLOB, or IFX_BLOB.

One of the disadvantages of using the IfxDocDesc data type, however, is its complexity. IfxDocDesc is a row type whose location field is also a row type, LLD_Locator. Inserting into a column of type IfxDocDesc requires two uses of the Row() constructor, which although not impossible, is more complex than inserting into the other supported data types.

A disadvantage to storing your document in a file on the operating system file system is that it is up to you to maintain the document and ensure that it is not moved or renamed. Only a pointer to the file is stored in the database, not the data itself. If you edit the operating system file outside the context of the database server, the etx index is not automatically updated. In this case, you must manually update the index by either issuing an UPDATE statement to update the row that contains the pointer to the file or dropping and recreating the etx index.