The SELECT, UPDATE, and INSERT statements do not manipulate the values of smart large objects directly. Instead, they use a handle value, which is a type of pointer, to access the BLOB or CLOB value, as follows:
To access the data of a smart-large-object column, you must use one of the following application programming interfaces (APIs):
You cannot use the name of a smart-large-object column in expressions that involve arithmetic operators. For example, operations such as addition or subtraction on the smart-large-object handle value have no meaning.
When you select a smart-large-object column, you can assign the handle value to any number of columns: all columns with the same handle value share the CLOB or BLOB value. This storage arrangement reduces the amount of disk space that the CLOB or BLOB value, but when several columns share the same smart-large-object value, the following conditions result:
To remove these constraints, you can create separate copies of the BLOB or CLOB data for each column that needs to access it. You can use the LOCOPY function to create a copy of an existing smart large object.
You can also use the built-in functions LOTOFILE, FILETOCLOB, and FILETOBLOB to access smart-large-object values, as described in Smart-Large-Object Functions (IDS). For more information on the BLOB and CLOB data types, see the IBM Informix Guide to SQL: Reference.
Conditional expressions return values that depend on the outcome of conditional tests. This diagram shows the syntax for Conditional Expressions.
Conditional Expressions: (1) |--+-| CASE Expressions |------+--------------------------------| | (2) | +-| NVL Function |----------+ | (3) | '-| DECODE Function |-------'