HP 3000 Manuals

SQL Statements with Exceptions [ IMAGE/SQL Administration Guide ] MPE/iX 5.0 Documentation


IMAGE/SQL Administration Guide

SQL Statements with Exceptions 

ALTER TABLE 
[REV BEG]

   *   ALTER TABLE cannot be used to add a column to an IMAGE/SQL table.
       For example, the command

            isql=> alter table sales.customer add (newcol float); 

       results in the following error:

            Operation not allowed on non-SQL table.  (DBERR 2454)

   *   ALTER TABLE cannot add a UNIQUE constraint to an IMAGE/SQL table.
       The command

            isql=> alter table sales.customer 
                   add constraint unique (last_name); 

       results in this error:

            Command not allowed on a TurboIMAGE table.  (DBERR 13502)

   *   The ALTER TABLE DROP CONSTRAINT specification is also not
       supported.

   *   ALTER TABLE cannot add a CHECK constraint to an IMAGE/SQL table.
       The command

            isql=> alter table sales.customer 
                   add constraint check (last_name < 'SMITH') 
                   constraint checkname; 

       is not allowed.

   *   ALTER TABLE cannot add a referential constraint to an IMAGE/SQL
       table.
[REV END]

BEGIN ARCHIVE 
[REV BEG]

SQL archive logging does not capture modifications made to IMAGE/SQL
databases.

TURBOSTORE Online Backup requires special procedures when TurboIMAGE/XL
databases (and therefore IMAGE/SQL databases) are in use during the store
operation.

BEGIN WORK 

IMAGE/SQL transactions are managed by using the TurboIMAGE/XL intrinsics
DBXBEGIN and DBXEND. The BEGIN WORK statement does not invoke DBXBEGIN
until the first modification or repeatable read is requested for an
IMAGE/SQL table.

The priority specified in a BEGIN WORK statement is ignored by IMAGE/SQL.
IMAGE/SQL uses priority 100 for all lock requests involving IMAGE/SQL
tables.

If isolation level RR (repeatable read), CS (cursor stability), or RC
(read commited) is specified and the IMAGE/SQL user has a MODE attribute
of 1, 2, 3, or 4, all read operations within the transaction will be
repeatable reads.

If isolation level RU (read uncommitted) is specified, all read
operations within the transaction will be read-uncommitted.

CHECKPOINT 

Contents of log buffers are written to the log file or files, but contain
no IMAGE/SQL work.

Data buffers containing changed pages are written to DBEFiles, but
contain no IMAGE/SQL data.

COMMIT ARCHIVE 

SQL archive logging does not capture modifications made to IMAGE/SQL
databases.

COMMIT WORK 

The KEEP CURSOR option of the OPEN statement cannot be used with a cursor
that references an IMAGE/SQL table.  Because KEEP CURSOR does not apply
to IMAGE/SQL tables, COMMIT WORK:

   *   releases all IMAGE/SQL locks acquired during the current
       transaction

   *   closes all cursors that reference IMAGE/SQL tables

   *   does not implicitly start a new IMAGE/SQL transaction

COMMIT WORK ends an IMAGE/SQL transaction by calling DBXEND and then
calls DBUNLOCK to release all locks acquired during the transaction.[REV
END]

CREATE INDEX 
[REV BEG]

CREATE INDEX cannot be used to create an index on an IMAGE/SQL table.
The command

     isql => create index sales.newindex on 
     sales.customer (last_name asc); 

invokes this error:

     Operation not allowed on non-sql table.  (DBERR 2454)

CREATE SCHEMA 

CREATE SCHEMA cannot be used to define an IMAGE/SQL database, but can be
used to define a view.

CREATE TABLE 

CREATE TABLE is not supported.

DECLARE CURSOR 

A cursor that references an IMAGE/SQL table (in the QueryEXPRESSION or
StatementName of the FOR clause) cannot be opened with the KEEP CURSOR
option of the OPEN statement.

DELETE 

If SQL detects an error during a DELETE statement that references an
IMAGE/SQL table, the current transaction is aborted regardless of the
setting of the SET DML ATOMICITY and SET CONSTRAINTS statements.

The set of rows to be affected by the DELETE statement is determined
before any rule fires, and this set remains fixed until completion of the
rule.  If the rule adds to the set, the additional rows will not be
deleted.  If the rule deletes from the set, a TurboIMAGE/XL intrinsic
error will result and the current transaction will be aborted.

If an error occurs during the processing of any rule considered during
execution of this statement, the current transaction will be aborted.

DELETE WHERE CURRENT 

This has the same considerations as DELETE.

DROP DBEFILE 

DROP DBEFILE cannot be used to drop DBEFiles containing IMAGE/SQL
objects.

DROP TABLE 

DROP TABLE cannot be used to drop an IMAGE/SQL table.  An IMAGE/SQL table
can be dropped only by detaching the database with the IMAGE/SQL DETACH
statement.[REV END]

DROP VIEW 
[REV BEG]

Cannot be used to drop a view created by IMAGESQL. A view created by
IMAGE/SQL can be dropped only by detaching the database with the
IMAGE/SQL DETACH command.

INSERT 

If SQL detects an error during an INSERT statement that references an
IMAGE/SQL table, the current transaction is aborted regardless of the
setting of the SET DML ATOMICITY and SET CONSTRAINTS statements.

If an error occurs during the processing of any rule considered during
execution of this statement, the current transaction will be aborted.

IMAGE/SQL columns are defined as NOT NULL with default values.  Default
values are based on IMAGE/SQL item types.  If columns are omitted from
the column name list of an INSERT statement, the missing columns will be
defined using the default values.  The default values are listed in Table
2-5 .

LOCK TABLE 

A LOCK TABLE statement always provides an EXCLUSIVE lock to a
TurboIMAGE/XL data set.

OPEN 

A cursor referencing an IMAGE/SQL table (in the QueryExpression or
StatementName of the DECLARE CURSOR statement) cannot be opened with the
KEEP CURSOR option.

IMAGE/SQL columns are defined as NOT NULL. The INDICATOR option of the
OPEN statement therefore cannot be used with IMAGE/SQL.

REVOKE 

REVOKE cannot be used to revoke authorities granted by the IMAGE/SQL
ATTACH statement.

ROLLBACK WORK 

Savepoints cannot be defined in an IMAGE/SQL transaction.  The TO clause
of ROLLBACK WORK therefore cannot be used with an IMAGE/SQL transaction.

SAVEPOINTS 

Savepoints cannot be defined in an IMAGE/SQL transaction.

SELECT 

IMAGE/SQL columns are defined as NOT NULL. The INDICATOR option of the
SELECT statement therefore cannot be used with IMAGE/SQL.[REV END]

SET CONSTRAINTS 
[REV BEG]

If a modification error occurs within an IMAGE/SQL transaction, the
current transaction is aborted regardless of the setting of SET
CONSTRAINTS.

SET DML ATOMICITY 

If a modification error occurs within an IMAGE/SQL transaction, the
current transaction is aborted regardless of the setting of SET DML
AUTOMICITY.

START DBE NEW 

The default 1000 pages used by START DBE NEW may not be sufficient to
allow a database to be attached with IMAGESQL.

TRANSFER OWNERSHIP 

IMAGE/SQL objects created by the IMAGESQL ATTACH statement cannot be
transferred to another owner.

UPDATE 

If ALLBASE/SQL detects an error during an UPDATE statement that
references an IMAGE/SQL table, the current transaction is aborted
regardless of the setting of the SET DML ATOMICITY and SET CONSTRAINTS
statements.

The set of rows to be affected by the UPDATE statement is determined
before any rule fires, and this set remains fixed until completion of the
rule.  If the rule adds to the set, the additional rows will not be
updated.  If the rule deletes from the set, a TurboIMAGE/XL intrinsic
error will result and the current transaction will be aborted.

If an error occurs during the processing of any rule considered during
execution of this statement, the current transaction will be aborted.

IMAGE/SQL columns are defined as NOT NULL. The NULL option of the SET
clause therefore cannot be used with IMAGE/SQL columns.

If an IMAGE/SQL column specified in an UPDATE statement corresponds to a
search or sort item in a TurboIMAGE/XL detail data set, the database's
Critical Item Update flag must be set to ON. If an IMAGE/SQL column
specified in an UPDATE statement corresponds to a search item in a
TurboIMAGE/XL detail data set and the corresponding master data set is a
manual master, the new column value must already exist as a chain head in
the master data set.

UPDATE WHERE CURRENT 

This has the same considerations as UPDATE.[REV END]



MPE/iX 5.0 Documentation