...
- When executing a query after disconnection by the TIMEOUT policy described previously
- In the case of a thread program, a connection unique name that does not exist is used
Check the above details and take appropriate action for the related matters. For example, if it is caused by the TIMEOUT policy, it is necessary to take measures such as increasing the TIMEOUT setting value of the session or performing query tuning.
Communication link failure
Info |
---|
|
Calculate stack overflow
Code Block | ||
---|---|---|
| ||
ALTER SESSION SET STACK SIZE = 8192; |
Because this value causes an increase in memory, it is recommended to change and use only the relevant session rather than reflecting it on the entire system.
Conversion not applicable
Code Block | ||
---|---|---|
| ||
CREATE TABLE t2 (a BYTE (2)); INSERT INTO t2 VALUES (CLOB’1’); |
As in the example above, when CLOB data is put in the BYTE column, an error occurs because the type conversion cannot be converted from CLOB to BYTE. That is, there is a matrix compatible with each column type, but this error occurs when such incompatible queries are executed.
For compatibility between column types, please refer to the ALTIBASE ODBC User Manual.
Invalid cursor state
This occurs when attempting to open CURSOR again without normally closing CURSOR. Or, it occurs when attempting to fetch a CURSOR that has already been fetched again.
Occasionally, if the user program is a thread, it may not properly control concurrency for the connection object and thus handle a cursor that is not valid in its own thread. The user must resolve the problem by using it.
Code Block | ||
---|---|---|
| ||
DECLARE CURSOR OPEN CURSOR FETCH CURSOR /** CLOSE CURSOR **/ -- Omission cases |
Not defined cursor
Code Block | ||
---|---|---|
| ||
DECLARE CURSOR1 FOR :statement; If (SQLCODE != 0) -- Error must be checked even in the PREPARE stage Error_process(); OPEN CURSOR1 USING :variable; |
Invalid request to process the SQL statement
Generally, this error occurs frequently in thread-structured programs, and also occurs when the order of protocols exchanged between the ALTIBASE server and the client-server is different when the concurrency control for the thread-structured connection object is incorrect as described above.
If it is in the thread-structure program, the user needs to make sure that this concurrency control is correct. Alternatively, the user should check whether the order in which queries should be executed, such as PREPARE->BINGING->EXECUTE, is not properly followed.
Invalid literal
Code Block | ||
---|---|---|
| ||
CREATE TABLE t1 (a INTEGER); INSERT INTO t1 VALUES (‘AAAA’); |
This occurs when an attempt is made to insert data as a string even though the column type is numeric, as in the example above.
Conversely, if the user tries to insert a string into a numeric variable, an error occurs as follows.
Code Block | ||
---|---|---|
| ||
Invalid character value for cast specification. |
Invalid length of data type
Code Block | ||
---|---|---|
| ||
CREATE TABLE t1 (a CHAR(2)); INSERT INTO t1 VALUES ('aaaa'); [ERR-2100D : Invalid length of the data type] |
As in the example above, the column type can store up to 2 bytes. If the user tries to input 4 bytes, an error occurs because the data value is larger than the specified column size.
Indicator variable required but not supplied error
Code Block | ||
---|---|---|
| ||
int IND_C1; int IND_C2; EXEC SELECT C1, C2 INTO :H_C1 INDICATOR :IND_C1 , :H_C2 INDICATOR :IND_C2; |
Incompatible NLS between the client and the server
This error occurs when an attempt is made to connect to the ALTIBASE server with a character set different from the character set in the server. For example, the server is set to MS949, but this error occurs when the client tries to connect with the US7ASCII value.
Panel |
---|
SELECT * FROM V$NLS_PARAMETERS; (Version 5.3 or later) |
This error only occurs in versions prior to 5.3. From version 5.3, the connection is possible with US7ASCII even if the character set is different. However, if the user tries to store characters such as Hangul due to the difference in character set between the server and the client, it may be stored as incorrect data.
Invalid size of data to bind to host variable Data Size …
Invalid character in use
Info |
---|
|
Too many pages are allocated
For ALTIBASE memory tablespaces, the sum of all memory tablespaces cannot exceed MEM_MAX_DB_SIZE in $ALTIBASE_HOME/conf/altibase.properties. This error message occurs because all space is full.
The Tablespace does not have enough free space
The transaction exceeds lock timeout specified by user
Time | Session A | Session B |
---|---|---|
T1 | INSERT INTO x1 VALUES … (Lock획득) |
|
T2 |
| ALTER TABLE x1 ADD COLUMN …(Error) |
As shown in the table above, if session B attempts to execute DDL while session A acquires the lock with DML first, this error occurs. Therefore, check if a lock exists in the table and resolve it before proceeding.
The update log size ‘…’ is bigger than TRX_UPDATE_MAX_LOGSIZE ‘…’
Code Block | ||
---|---|---|
| ||
ALTER SESSION SET TRX_UPDATE_MAX_LOGSIZE = 0; (Settings that remove the restriction) |
Please be cautious when processing such changes, as more redo log files are created and a situation such as a disk pool failure may occur. Additionally, ALTIBASE attempts to acquire the X-Lock on the table to prevent the increase of resources due to MVCC when making bulk changes, so users need to be aware that queries and changes to the table will be queued due to the X-Lock.
String data right truncated
This error occurs when the value of the character type returned from the SELECT statement is larger than the size of the declared host variable. Check the column size of the table to be accessed by accessing the DB, and declare the size of the used host variable as (column size + 1 byte).
Value overflow
Code Block |
---|
CREATE TABLE x2 (a NUMERIC(10, 5)); insert into x2 values (123444.5678); [ERR-21010 : Value overflow] |
Several statement still opened