Gets statement or condition information from the diagnostics area.
where statement-information is:
and condition-info is:
Usage
Embedded, Procedural.
Description
Selected status information from the diagnostics area is retrieved. The diagnostics area holds information about the most recently executed SQL statement. There is only one diagnostics area for each application, independent of the number of connections that the application holds. Observe that the GET DIAGNOSTICS statement itself does not change the diagnostics area, apart from setting SQLSTATE.
The GET DIAGNOSTICS statement can be in two forms: the first form retrieves statement information about the most recent SQL statement executed. The second form of GET DIAGNOSTICS is the CONDITION form, which retrieves condition information for the most recently executed SQL statement. The ordinal number of the condition to be returned is specified immediately following the keyword CONDITION.
statement-information Information Items
The information items for statement-information are described in the following table:
Information item |
Data type |
Description |
---|---|---|
NCHAR VARYING(128) |
A string identifying the preceding embedded SQL statement executed. |
|
NCHAR VARYING(128) |
A string identifying the preceding prepared SQL statement executed. |
|
CHAR(1) |
Indicates if there are any conditions for which no condition information has been stored. N if all detected conditions are stored in the diagnostics area, otherwise Y. |
|
INTEGER |
The number of condition messages stored for the most recently executed SQL statement. |
|
INTEGER |
The number of rows inserted, updated or deleted if the last statement was INSERT, searched UPDATE or searched DELETE. |
|
INTEGER |
Indicates if a transaction is active or not. 0 = transaction not active 1 = transaction is active. |
condition-info Information Items
The information items for condition-info are described in the following table:
Information item |
Data type |
Description |
---|---|---|
NCHAR VARYING(128) |
The catalog name of the schema containing the table on which the violated constraint is defined, always an empty string (""). |
|
NCHAR VARYING(128) |
The defining source of the two first characters (the class portion) of the SQLSTATE value. |
|
NCHAR VARYING(128) |
The name of the table column on which the violated constraint is defined. If the constraint involves more than one column or the data change operation causing the condition is not in the table on which the constraint is defined, this will be an empty string (""). |
|
NCHAR VARYING(128) |
The value specified for condition-name in the DECLARE CONDITION statement declaring the condition as a named condition. This will be the empty string ("") if the condition has not been declared as a named condition. |
|
INTEGER |
The ordinal number of the condition on the diagnostics condition stack. |
|
NCHAR VARYING(128) |
The connection name specified in a CONNECT, DISCONNECT or SET CONNECTION statement. The name of the current connection for all other statements. |
|
NCHAR VARYING(128) |
The catalog name of the schema containing the violated constraint, always an empty string (""). |
|
NCHAR VARYING(128) |
The name of the schema containing the violated constraint. |
|
NCHAR VARYING(128) |
The name of the violated constraint. |
|
NCHAR VARYING(128) |
The name of the cursor which is in an invalid state, when the condition: 24000 - 'Invalid Cursor State' is raised. |
|
INTEGER |
The length in characters of the relevant part the SQL statement, starting at ERROR_POSITION. |
|
INTEGER |
The position in the SQL statement where the specified condition occurred. Value < 1 means unknown position. |
|
INTEGER |
The length of the message text for the specified condition. |
|
INTEGER |
Currently the same as MESSAGE_LENGTH. |
|
NCHAR VARYING(254) |
The descriptive message text for the specified condition. |
|
INTEGER |
The internal Mimer SQL return code relating to the condition. See the Mimer SQL Programmer's Manual, Return Codes. |
|
NCHAR VARYING(128) |
The name of the routine parameter causing the condition. |
|
CHAR(5) |
Value of SQLSTATE for the specified condition. |
|
NCHAR VARYING(128) |
The catalog name of the schema containing the function or procedure in which the condition was raised, always an empty string (""). |
|
NCHAR VARYING(128) |
The name of the schema containing the function or procedure in which the condition was raised. |
|
NCHAR VARYING(128) |
The name of the function or procedure in which the condition was raised. |
|
NCHAR VARYING(128) |
The name of the schema containing the table on which the violated constraint is defined. If the data change operation causing the condition is not in the table on which the constraint is defined, this will be an empty string (""). |
|
NCHAR VARYING(128) |
The database name specified in a CONNECT, DISCONNECT or SET CONNECTION statement. The current database name for all other statements. |
|
NCHAR VARYING(128) |
Specific name of the procedure or function in which the condition was raised. |
|
NCHAR VARYING(128) |
The defining source of the three last characters (the subclass portion) of the SQLSTATE value. |
|
NCHAR VARYING(128) |
The name of the table on which the violated constraint is defined. If the data change operation causing the condition is not in the table on which the constraint is defined, this will be an empty string (""). |
|
NCHAR VARYING(128) |
The catalog name of the schema containing the table supporting the trigger in which the condition was raised, always an empty string (""). |
|
NCHAR VARYING(128) |
The name of the schema containing the table supporting the trigger in which the condition was raised. |
|
NCHAR VARYING(128) |
The name of the trigger in which the condition was raised. |
Values for COMMAND_FUNCTION and DYNAMIC_FUNCTION
The COMMAND_FUNCTION and DYNAMIC_FUNCTION information items can contain any of the following values:
ALLOCATE CURSOR |
DROP STATEMENT |
ALLOCATE DESCRIPTOR |
DROP SYNONYM |
ALTER DATABANK |
DROP TABLE |
ALTER DATABANK RESTORE |
DROP TRIGGER |
ALTER IDENT |
DROP TYPE |
ALTER SHADOW |
DROP VIEW |
ALTER STATEMENT |
DYNAMIC CLOSE |
ALTER TABLE |
DYNAMIC DELETE CURSOR |
ALTER TYPE |
DYNAMIC FETCH |
ASSIGNMENT |
DYNAMIC OPEN |
CALL |
DYNAMIC UPDATE CURSOR |
CLOSE CURSOR |
ENTER |
COMMENT |
EXECUTE |
COMMIT WORK |
EXECUTE IMMEDIATE |
CONNECT |
FETCH |
CREATE BACKUP |
GET DESCRIPTOR |
CREATE COLLATION |
GET DIAGNOSTICS |
CREATE DATABANK |
GRANT |
CREATE DOMAIN |
GRANT OBJECT PRIVILEGE |
CREATE FUNCTION |
GRANT SYSTEM PRIVILEGE |
CREATE IDENT |
INSERT |
CREATE INDEX |
LEAVE |
CREATE METHOD |
LEAVE RETAIN |
CREATE MODULE |
OPEN |
CREATE PROCEDURE |
PREPARE |
CREATE SCHEMA |
REVOKE |
CREATE SEQUENCE |
REVOKE OBJECT PRIVILEGE |
CREATE SHADOW |
REVOKE SYSTEM PRIVILEGE |
CREATE STATEMENT |
ROLLBACK WORK |
CREATE SYNONYM |
SELECT |
CREATE TABLE |
SET CONNECTION |
CREATE TRIGGER |
SET DATABANK |
CREATE TYPE |
SET DATABASE |
CREATE VIEW |
SET DESCRIPTOR |
DEALLOCATE DESCRIPTOR |
SET SESSION DIAGNOSTIC SIZE |
DEALLOCATE PREPARE |
SET SESSION ISOLATION LEVEL |
DELETE CURSOR |
SET SESSION READ ONLY |
DELETE WHERE |
SET SESSION READ WRITE |
DESCRIBE |
SET SESSION START EXPLICIT |
DISCONNECT |
SET SESSION START IMPLICIT |
DROP COLLATION |
SET SHADOW |
DROP DATABANK |
SET TRANSACTION DIAGNOSTIC SIZE |
DROP DOMAIN |
SET TRANSACTION ISOLATION LEVEL |
DROP FUNCTION |
SET TRANSACTION READ ONLY |
DROP IDENT |
SET TRANSACTION READ WRITE |
DROP INDEX |
SET TRANSACTION START EXPLICIT |
DROP METHOD |
SET TRANSACTION START IMPLICIT |
DROP MODULE |
START TRANSACTION |
DROP PROCEDURE |
UPDATE CURSOR |
DROP SCHEMA |
UPDATE STATISTICS |
DROP SEQUENCE |
UPDATE WHERE |
DROP SHADOW |
|
Language Elements
target-variable, see Target Variables.
Notes
The condition requested by the GET DIAGNOSTICS CONDITION form must be one of the conditions that exist in the diagnostics area, i.e. the condition number must be in the range from 1 up to the value of NUMBER.
Example
…
exec sql GET DIAGNOSTICS :cnt = NUMBER;
for (int i = 1; i <= cnt; i++) {
exec sql GET DIAGNOSTICS CONDITION :i
:sqlstatestr = RETURNED_SQLSTATE,
:errmsgstr = MESSAGE_TEXT,
:errmsglen = MESSAGE_LENGTH;
…
}
…
Standard Compliance
Standard |
Compliance |
Comments |
---|---|---|
SQL-2016 |
Features outside core |
Feature F121, “Basic diagnostics management”. |
|
Mimer SQL extension |
The support for NATIVE_ERROR, ERROR_LENGTH and ERROR_POSITION is a Mimer SQL extension. |