跳到主要内容

从 -200 至 -899 的错误代码

-200 Identifier is too long.

An SQL identifier exceeded the maximum number of characters.

SQL 标识符超过了最大字符数。

Check that no identifier in the statement is longer than the maximum length and that no punctuation error, such as a missing space or comma,combines two identifiers into one.

检查语句中没有任何标识符大于最大长度,并且没有标点符号错误(如缺少空格或逗号)将两个标识符组合为一个。

-201 A syntax error has occurred.

This general error message indicates mistakes in the form of an SQL statement. Look for missing or extra punctuation (such as missing or extra commas, omission of parentheses around a subquery, and so on),keywords misspelled (such as VALEUS for VALUES), keywords misused (such as SET in an INSERT statement or INTO in a subquery), keywords out of sequence (such as a condition of "value IS NOT" instead of "NOT value IS"), or a reserved word used as an identifier.

此一般错误消息表示 SQL 语句形式的错误。查找缺少或额外的标点符号(例如缺少或额外的逗号、省略子查询周围的括号等)、拼写错误的关键字(例如 VALUES 误拼为 VALEUS)、关键字误用(例如在 INSERT 语句中的 SET 或在子查询中的 INTO)、关键字无序(例如“value IS NOT”而不是“NOT value IS”的条件),或者用作标识符的保留词。

Database servers that provide full NIST compliance do not reserve any words; queries that work with these database servers might fail and return error -201 when they are used with earlier versions of GBase 8s database servers.

提供完全符合 NIST 的数据库服务器不保留任何文字;与这些数据库服务器一起工作的查询可能会失败,并在与早期版本的 GBase 8s 数据库服务器一起使用时返回错误 -201。

The cause of this error might be an attempt to use round-robin syntax with CREATE INDEX or ALTER FRAGMENT INIT on an index. You cannot use round-robin indexes.

造成此错误的原因可能是试图在索引上使用循环语法 CREATE INDEX 或在索引上ALTER FRAGMENT INIT 。不能使用循环索引。

The error may also occur if an SQL statement uses double quotation marks around input strings and the environment variable DELIMIDENT is set.

If DELIMIDENT is set, strings that are surrounded by double quotation marks are regarded as SQL identifiers rather than string literals. For more information on the usage of DELIMIDENT, see the GBase 8s Guide to SQL: Reference.

如果 SQL 语句在输入字符串周围使用双引号,并且设置了环境变量 DELIMIDENT ,则可能发生错误。如果设置了 DELIMIDENT ,则被双引号包围的字符串被视为 SQL 标识符,而不是字符串文本。有关使用 DELIMIDENT 的更多信息,请参见 GBase 8s SQL指南:参考。

-202 An illegal character has been found in the statement.

A character that cannot be interpreted as part of an SQL statement is embedded in this statement. If a program constructed the statement, the character might be a nonprinting control character. Make sure the statement contains only printable ASCII characters, and reexecute it.

不能解释为 SQL 语句一部分的字符嵌入在此语句中。如果程序构造了该语句,则该字符可能是一个非打印控制字符。确保语句只包含可打印的 ASCII 字符,并重新执行它。

-203 An illegal integer has been found in the statement.

Where an integer value is expected, an unacceptable numeric constant appears. Inspect the statement and look for numbers that should be integers but that contain a decimal point or the letter e or that are larger than 2,147,483,647 ((2 to the 31st power) - 1).

如果需要一个整数值,则会出现一个不可接受的数字常量。检查语句,查找应该是整数但包含小数点或字母 e 或大于 2,147,483,647 (( 2 的 31 次方)-1)的数字。

-204 An illegal floating point number has been found in the statement.

A numeric constant that is punctuated like a floating-point number(with a decimal point and/or an exponent starting with e) is unacceptable. Possibly the exponent is larger than can be processed.

标点符号为浮点数(小数点和/或指数以 e 开头)的数字常量是不可接受的。指数可能大于可以处理的。

-205 The statement failed because you cannot use ROWID for views with union,intersect, minus, aggregates, group by, multiple tables, or derived tables.

The keyword ROWID stands for a virtual column that exists only in simple tables. This message refers to the ROWID of a table that is actually a view that is based on a selection involving union/intersect/minus,aggregate functions, grouping, a join of two or more tables, or derived expressions. Such query products do not have ROWID columns. Therefore this view does not have a ROWID, even though it appears to be a table. In order to use ROWID in a query, you have to apply the query to the tables that underlie the view.

关键字 ROWID 表示仅存在于简单表中的虚拟列。此消息引用表的 ROWID ,该表实际上是一个视图,该视图基于涉及联合/互斥/减号、聚合函数、分组、两个或多个表的联接或派生表达式的选择。这样的查询产品没有 ROWID 列。因此,此视图没有 ROWID ,即使它似乎是一个表。为了在查询中使用 ROWID ,必须将查询应用于视图的基础表。

-206 The specified table is not in the database.

The database server cannot find a table or view specified in the statement.

The table or view might have been renamed or dropped from the database.

数据库服务器找不到语句中指定的表或视图。表或视图可能已被重命名或从数据库中删除。

You might also get this message if you omit the keyword "TYPE" when you are trying to grant USAGE privileges on a user-defined type. For example, the following GRANT statement is correct:如果在尝试授予用户定义类型的使用权限时省略关键字“TYPE”,也可能会收到此消息。

例如,以下 GRANT 语句是正确的:GRANT USAGE ON TYPE person_row_type TO usr2;The following GRANT statement, however, generates error -206:但是,以下 GRANT 语句会产生错误 -206:GRANT USAGE ON person_row_type TO usr2;Check the names of tables and views in the statement or check for omission of the keyword "TYPE" in a GRANT statement. If the names are spelled as you intended and "TYPE" is not missing, check that you are using the database you want. To find the names of all tables in the database, query the systables table. To find the names of all views, query the sysviews table.

检查语句中表和视图的名称,或检查 GRANT 语句中是否遗漏关键字“TYPE”。如果名称按您的预期拼写,并且“TYPE”未丢失,请检查是否正在使用所需的数据库。若要查找数据库中所有表的名称,请查询系统表。若要查找所有视图的名称,请查询 sysview 表。

-207 Cannot update cursor declared on more than one table.

The cursor that is used in this statement was declared FOR UPDATE but with a SELECT statement that joins two or more tables. This action is not supported; the database server does not know how to distribute update values across multiple tables. If you declared the SELECT statement with the cursor, modify either it or the FOR UPDATE clause.

If a program constructed the SELECT statement and associated it with the cursor dynamically, the program should inform its user not to use a multitable SELECT statement in this application.

此语句中使用的游标被声明为 FOR UPDATE ,但使用了连接两个或多个表的 SELECT 语句。

不支持此操作;数据库服务器不知道如何在多个表之间分发更新值。如果使用游标声明SELECT 语句,请修改它或 FOR UPDATE 子句。如果程序构造 SELECT 语句并将其与游标动态关联,则程序应通知用户不要在此应用程序中使用多表 SELECT 语句。

-207 Cannot declare a SELECT INTO statement FOR UPDATE.

When you declare a cursor, you may not use both the INTO clause and the FOR UPDATE clause. To use this cursor to update selected rows, omit the INTO clause. Instead, use an INTO clause on the FETCH statement (or in 4GL, the FOREACH statement).

声明游标时,不能同时使用 INTO 子句和 FOR UPDATE 子句。若要使用此游标更新选定的行,请省略 INTO 子句。相反,在 FETCH 语句上使用 INTO 子句(或者在 4GL 中使用FOREACH 语句)。

-208 Memory allocation failed during query processing.

The database server needed to allocate data-space memory in order to process the query, but none was available. This error may reflect a hardware limit, an operating-system configuration limit, or a temporary shortage of space.

数据库服务器需要分配数据空间内存来处理查询,但没有可用。此错误可能反映硬件限制、操作系统配置限制或临时空间不足。

Try the query again after a delay. If it still fails, consult your system administrator. If possible, revise your query to join fewer tables, to order or group on fewer columns, or to operate in two or more separate statements. On DOS systems, exit to the operating-system command line, free some disk space or reduce the complexity of your program, and resubmit the program.

延迟后再尝试查询。如果仍然失败,请咨询系统管理员。如果可能的话,修改查询以加入更少的表,对更少的列进行排序或分组,或者在两个或多个单独的语句中操作。在 DOS 系统上,退出操作系统命令行,释放一些磁盘空间或降低程序的复杂性,然后重新提交程序。

-209 Incompatible database format.

An obsolete version of the database software built this database.

Convert the database to work with the current software. Use the dbupdate utility. You will have to run it before you use the data.

一个过时的版本的数据库软件建立了这个数据库。将数据库转换为当前软件。使用 dbupdate 实用程序。在使用数据之前,您必须运行它。

-210 Explicit path name too long.

This statement contains a file pathname that exceeds the maximum length of 64 characters. Inspect the statement to make sure that the pathname is that long. It is possible a punctuation error caused other parts of the statement to be included in the pathname. If this is not the case, either relocate the file or rename some directories along the path with shorter names.

此语句包含超过 64 个字符最大长度的文件路径名。检查语句,确保路径名有那么长。

标点符号错误可能导致语句的其他部分包含在路径名中。如果不是这样的话,可以重新定位文件,或者用较短的名称重命名路径上的一些目录。

-211 Cannot read system catalog .

The database server refers to the tables of the system catalog while it processes most statements. When it cannot read one of these important tables, a serious error results. Check the accompanying ISAM error code for more information. The effect of the error depends on the statement that is being executed and the particular table, as follows:数据库服务器在处理大多数语句时引用系统目录的表。当它无法读取这些重要表之一时,就会出现严重错误。有关更多信息,请查看附带的 ISAM 错误代码。错误的效果取决于正在执行的语句和特定的表,如下所示:* CREATE TABLE statement, systabauth not read; the table is created, but PUBLIC is not granted authorization as it normally is.

* CREATE TABLE 语句,系统不读取;表是创建的,但未像通常那样授予公共授权。

* DROP TABLE statement, systables not read; no action taken.

* DROP TABLE 语句,systables 未读;未采取任何。

* DROP TABLE statement, sysviews not read; the table is dropped but any views that depended on the table were not automatically dropped.

* DROP TABLE 语句,sysview 未读;将删除表,但依赖于该表的任何视图都不会自动删除。

* DROP VIEW statement, sysviews not read; no action taken.

* DROP VIEW 语句,sysviews 未读,未采取任何。

* DROP INDEX statement, sysindexes or systables not read; no action taken.

* DROP INDEX 语句, sysindexes 或 systables 未读, 未采取任何。

* DROP SYNONYM statement, systables or syssynonyms not read; no action taken.

* DROP SYNONYM 语句, systables 或 syssynonyms 未读,未采取任何。

* DROP DATABASE statement, systables not read; no action taken.

* DROP DATABASE 语句,systables 未读,未采取任何。

* START DATABASE statement, systables not read; no action taken.

* START DATABASE 语句,systables 未读,未采取任何。

* DATABASE statement, systables or sysusers not read; the database was not selected (no current database; for subsequent operations, see error -349). If this error was accompanied by ISAM error 103, try setting GL_USEGLU=1 in your environment before starting the instance.

* DATABASE 语句,systables 或 sysusers 未读;未选择数据库(没有当前数据库;后续操作请参见 Error-349 )。如果此错误附有 ISAM 错误 103,请尝试在启动实例之前在您的环境中设置 GL_USEGLU=1。

Other statements might be partially complete before the error is detected.

Roll back the current transaction and then investigate the cause of the error. Use the oncheck utility (secheck with GBase 8s SE or oncheck with GBase 8s OnLine) to check and repair indexes. If necessary, restore the database from backup and logical-log tapes.

在检测到错误之前,其他语句可能部分完成。回滚当前事务,然后调查错误的原因。使用 oncheck实用程序(在 GBase 8s SE中使用 secheck 或使用 GBase 8s OnLine)检查和修复索引。

必要时,从备份和逻辑日志磁带恢复数据库。

-212 Cannot add index.

This statement attempts to add an index, either explicitly with CREATE INDEX or implicitly as part of processing a SELECT on multiple unindexed tables. In any case, some error prevents the index from being created. For more information, check the accompanying ISAM error code.

Insufficient disk space is a common cause of this problem.

此语句试图显式地添加索引,或者使用 CREATE INDEX 显式地添加索引,或者隐式地作为处理多个未索引表的 SELECT 的一部分。在任何情况下,某些错误都会阻止创建索引。有关更多信息,请查看随附的 ISAM 错误代码。磁盘空间不足是造成此问题的一个常见原因。

-213 Statement interrupted by user.

The database server received an interrupt signal from the user,probably because the user pressed the interrupt key (usually Delete or Control-C). The statement ended early. A program should roll back the current transaction and terminate gracefully. If the statement could modify a table, an interactive user should execute the ROLLBACK WORK statement to remove any partial modifications.

数据库服务器收到用户的中断信号,可能是因为用户按下了中断键(通常是 Delete 或Control-C )。声明提前结束。程序应该回滚当前事务并优雅地终止。如果语句可以修改表,则交互式用户应该执行 ROLLBACK WORK 语句以删除任何部分修改。

-214 Cannot remove file for table table-name.

The database server cannot completely remove the table. Check the accompanying ISAM error code for more information. Problems with operating-system file permissions, read-only files, or hardware might cause this error.

数据库服务器无法完全删除表。有关更多信息,请查看附带的 ISAM 错误代码。操作系统文件权限、只读文件或硬件的问题可能导致此错误。

-215 Cannot open file for table table-name.

The database server cannot open the operating-system file or files in which the table is stored. Check the accompanying ISAM error code for more information. Problems with operating-system file permissions,insufficient memory, or hardware might cause this error.

数据库服务器无法打开存储表的操作系统文件。有关更多信息,请查看附带的 ISAM 错误代码。操作系统文件权限、内存不足或硬件出现问题可能导致此错误。

-216 Cannot remove index.

The database server cannot completely drop an index. Check the accompanying ISAM error code for more information. Problems with operating-system file permissions, read-only files, or hardware might cause this error.

数据库服务器不能完全删除索引。有关更多信息,请查看附带的 ISAM 错误代码。操作系统文件权限、只读文件或硬件的问题可能导致此错误。

-217 Column column-name not found in any table in the query(or SLV is undefined).

The name appears in the select list or WHERE clause of this query but is not defined in a table and does not appear as a statement local variable(SLV) definition. Check that the column name or SLV name and the names of the selected tables are spelled as you intended.

名称出现在此查询的 SELECT 列表或 WHERE 子句中,但未在表中定义,也不显示为语句局部变量(SLV)定义。检查列名或 SLV 名称以及所选表的名称是否按您的预期拼写。

If all names are spelled correctly, you are not using the right tables,the database has been changed, or you have not defined the SLV. If the name not found is a reference to a column, that column might have been renamed or dropped. If the name not found represents an SLV and you defined the SLV in the statement, make sure that the SLV definition appears before all other references to that SLV name.

如果所有名称拼写正确,则没有使用正确的表,数据库已更改,或未定义 SLV 。如果未找到的名称是对列的引用,则该列可能已被重命名或删除。如果未找到的名称表示 SLV,并且在语句中定义了 SLV,请确保 SLV 定义出现在对该 SLV 名称的所有其他引用之前。

This error message can also appear during the execution of an ALTER TABLE statement when the engine tries to update views that depend on the table.

当引擎试图更新依赖于该表的视图时,此错误消息也可以在 ALTER TABLE 语句的执行过程中出现。

-218 Synonym synonym-name not found.

The synonym is not defined in this database. Check that the name is spelled as you intended. Check that you are using the right database.

If so, the synonym was probably dropped. Possibly it was dropped automatically when the table for which it stood was dropped. To display all defined synonyms, query systables as follows:此数据库中未定义同义词。检查名称是否按您的意思拼写。检查是否使用正确的数据库。

如果是这样的话,同义词可能会被删除。当它所代表的表被删除时,它可能会自动被删除。要显示所有定义的同义词,查询系统如下:SELECT tabname FROM systables WHERE tabtype = 's'-219 Wildcard matching may not be used with non-character types.

The WHERE clause in this statement includes a test of a noncharacter column using the LIKE or MATCHES keyword and the special characters that stand for multiple characters (for example, asterisk and question mark in MATCHES and percent and underscore with LIKE). Use these tests only with columns that are defined as CHAR or VARCHAR in the database.

No automatic data conversion is provided. Check that the columns in the WHERE clause are as you intended. If so, the definition of the table has probably changed.

此语句中的 WHERE 子句包括使用 LIKE 或 MATCHES 关键字对非字符列的测试,以及表示多个字符的特殊字符(例如,MATCHES 中的星号和问号,以及 LIKE 中的百分号和下划线)。只对数据库中定义为 CHAR 或 VARCHAR 的列使用这些测试。不提供自动数据转换。检查 WHERE 子句中的列是否符合您的要求。如果是这样的话,表的定义可能已经改变了。

-220 There is no FROM clause in the query.

Every SELECT statement must include a FROM clause to name the table or tables that it queries. Check that FROM was spelled and that no extra semicolon ends the statement prematurely. To select only a constant, or to select the only value of a function that is unrelated to any table(such as USER or TODAY), you nevertheless have to name a table. You can select a known row from a system catalog, as in this example.

每个 SELECT 语句都必须包含一个 FROM 子句来命名它所查询的表。检查 FROM 拼写,并且没有额外的分号过早结束该语句。要只选择一个常量,或者选择与任何表(例如 USER或 TODAY)无关的函数的唯一值,您必须给一个表命名。可以从系统目录中选择已知的行,如本例所示。

SELECT 'today is', TODAY, 'and I am', USER FROM systables WHERE tabid = 100 The tabid value of the first user-defined table in a database is always 100, so this query always returns exactly one row if any tables are defined.

数据库中第一个用户定义的表的 tabid 值始终为 100,因此如果定义了任何表,此查询总是返回一行。

-220 Cannot begin savepoint.

If the error recurs, note all circumstances and contact GBase Technical Support.

如果错误再次发生,请注意所有情况,并与 GBase 8s 技术支持部门联系。

-221 Cannot build temporary file for new table table-name.

The database server cannot create a temporary disk file. The file should be created in the directory specified by the DBTEMP environment variable. If DBTEMP is not defined, the database server searches by default in the root directory for a subdirectory named tmp in which to create the temporary disk file. Check the accompanying ISAM error code,and look for operating-system error messages that might give more information. Possibly your account does not have write permission in that directory, or the disk might be full.

数据库服务器无法创建临时磁盘文件。应该在 DBTEMP 环境变量指定的目录中创建该文件。如果未定义 DBTEMP ,则数据库服务器缺省情况下在根目录中搜索要在其中创建临时磁盘文件的名为 tmp 的子目录。检查附带的 ISAM 错误代码,并查找可能提供更多信息的操作系统错误消息。可能您的账户在该目录中没有写权限,或者磁盘可能已满。

-222 Cannot write to temporary file for new table table-name.

The database server created a temporary disk file but received an error while it attempted to write into the file. Check the accompanying ISAM error code, and look for operating-system messages that might give more information. On UNIX systems, the file should have been created in the directory specified by the DBTEMP environment variable (/tmp by default); on DOS systems, the file should be in the current directory.

Possibly that disk is full, or a hardware error occurred.

数据库服务器创建了一个临时磁盘文件,但在试图写入该文件时收到了一个错误。检查附带的 ISAM 错误代码,并查找可能提供更多信息的操作系统消息.在 UNIX 系统上,文件应该在 DBTEMP 环境变量指定的目录中创建(缺省情况下是 /tmp);在 DOS 系统上,文件应该位于当前目录中。可能该磁盘已满,或发生硬件错误。

-223 Duplicate table name table-name in the FROM clause.

The table name appears twice in the list that follows the word FROM.

Review the statement to see if you intended to name some other table the second time. If you intended to join a table to itself, use a table alias for the second and subsequent instances of the table. The following example shows one way to find customers with the same last name:表名在单词后面的列表中出现两次。检查语句,看看是否打算第二次命名其他表。如果要将表连接到表本身,则对表的第二个实例和后续实例使用表别名。

SELECT main.lname, main.customer_num, sub.customer_num FROM customer main, customer sub WHERE main.lname = sub.lname AND main.rowid !=sub.rowid When you use table aliases (the words main and sub in the example), the table may be selected from two or more times.

当您使用表别名(示例中的单词 main 和 sub )时,可能会从两次或更多次中选择该表。

-224 Cannot open transaction log file.

The database server cannot open the file in which transaction-log entries are made. No transactions can start until this file is repaired. (In an ANSI-compliant database, nothing can be done; in other databases, only queries can be made.) Report this problem to the database server administrator. For GBase 8s SE database servers, check the accompanying ISAM error code, and look for operating-system error messages that might give more information. A START DATABASE statement specifies the path to the log file. If the file has been deleted, you can re-create it as an empty file. If the path has changed, you can issue a new START DATABASE statement to redefine it.

数据库服务器无法打开创建事务日志条目的文件。在此文件修复之前,任何事务都不能启动。(在符合 ANSI 标准的数据库中,什么也做不了;在其他数据库中,只能进行查询。)向数据库服务器管理员报告此问题。对于 GBase 8s SE 数据库服务器,请检查附带的 ISAM 错误代码,并查找可能提供更多信息的操作系统错误消息。START DATABASE语句指定日志文件的路径。如果文件已被删除,则可以将其重新创建为空文件。如果路径已更改,则可以发出新的 START DATABASE 语句来重新定义它。

-225 Cannot create file for system catalog table-name.

The database server is trying to create one of the tables for the system catalog, probably as part of a CREATE DATABASE statement. A problem with the host operating system prevents it. Check the accompanying ISAM error code for more information, and look for operating-system error messages. A shortage of disk space or operating-system file-access permission problems probably caused this error.

数据库服务器试图为系统目录创建一个表,可能是 CREATE DATABASE 语句的一部分。

主机操作系统的问题阻止了它。请检查附带的 ISAM 错误代码以获得更多信息,并查找操作系统错误消息。磁盘空间不足或操作系统文件访问权限问题可能导致此错误。

-226 Cannot create index for system catalog table-name.

The database server is trying to create one of the tables for the system catalog, probably as part of a CREATE DATABASE statement. It created the table, but a problem with the host operating system prevents it from making an index. Check the accompanying ISAM error code for more information, and look for operating-system error messages. Insufficient disk space probably caused this error.

数据库服务器试图为系统目录创建一个表,可能是 CREATE DATABASE 语句的一部分。

它创建了表,但是主机操作系统的问题阻止了它建立索引。请检查附带的 ISAM 错误代码以获得更多信息,并查找操作系统错误消息。磁盘空间不足可能导致此错误。

-227 DDL operations on ROWID prohibited.

This statement attempts to change the column named ROWID. That column is a part of every table except a fragmented table. You can select it with a SELECT statement and compare it in a WHERE clause, but you cannot alter it with a DDL statement.

此语句试图更改名为 ROWID 的列。该列是每个表的一部分,除了一个分片的表。您可以使用 SELECT 语句选择它,并在 WHERE 子句中比较它,但是不能用 DDL 语句更改它。

-228 UPDATE or INSERT on ROWID prohibited.

This statement names the column ROWID in the list of columns for insertion or update. The row ID is an intrinsic property that cannot be modified. You can select it in a SELECT statement and compare it in a WHERE clause, but you cannot modify its contents.

此语句在要插入或更新的列表中指定列 ROWID 。行 ID 是一个不能修改的内在属性。您可以在 SELECT 语句中选择它并在 WHERE 子句中比较它,但是不能修改它的内容。

-229 Could not open or create a temporary file.

The database server cannot create a temporary disk file. The file should be created in the directory that the DBTEMP environment variable specifies (or /tmp by default on UNIX systems). Check the accompanying ISAM error code and look for operating-system error messages that might give more information. Possibly your account does not have write permission in that directory, or the disk is full.

数据库服务器无法创建临时磁盘文件。文件应该在 DBTEMP 环境变量指定的目录中创建(在 UNIX 系统中,缺省情况下是 /tmp)。检查附带的 ISAM 错误代码,并查找可能提供更多信息的操作系统错误消息。可能您的账户在该目录中没有写权限,或者磁盘已满。

On a UNIX system, try increasing the maximum number of open files(NFILES parameter on some systems) to approximately 400.

在 UNIX 系统上,尝试将打开文件的最大数量(某些系统上的 NFILES 参数)增加到大约 400 个。

-230 Could not read a temporary file.

The database server created a temporary file in the directory specified by the DBTEMP environment variable (or /tmp by default on UNIX systems)but encountered an error when it tried to read the file back. Check the accompanying ISAM error code, and look for operating-system error messages that might give more information. Possibly a hardware failure occurred, or possibly another user erased the temporary file accidentally.

数据库服务器在 DBTEMP 环境变量指定的目录中创建了一个临时文件(或者在 UNIX 系统中缺省情况下是 /tmp),但是当它试图将文件读取回时遇到了一个错误。检查附带的ISAM 错误代码,并查找可能提供更多信息的操作系统错误消息。可能发生硬件故障,也可能是另一个用户不小心擦除了临时文件。

-231 Cannot perform aggregate function with distinct on expression.

This statement selects DISTINCT (expression) within an aggregate function. This action is not supported. Select the DISTINCT value and other columns into a temporary table; then select ALL from that table applying the aggregate function.

此语句在聚合函数中选择 DISTINCT(expression)。不支持此操作。在临时表中选择DISTINCT 值和其他列;然后应用聚合函数从该表中选择 ALL 。

-232 A SERIAL column column-name may not be updated.

You cannot alter the contents of a column with the SERIAL or SERIAL8 or BIGSERIAL data type in the UPDATE statement, even when the updating value is zero. (You can specify a value of zero for a serial column when you use the INSERT statement; the database server ignores the zero and inserts a generated number.) Revise the statement so that only nonserial columns are updated.

即使更新值为零,也不能在 UPDATE 语句中使用 SERIAL 或 SERIAL 8 或 BIGSERIAL 数据类型更改列的内容。(在使用 INSERT 语句时,可以为串行列指定值为零;数据库服务器忽略该值并插入生成的数字。)修改语句,以便只更新非串行列。

-233 Cannot read record that is locked by another user.

Another user has locked a row that this statement selects. If you executed the statement interactively, you can do one of two things. You can wait a short time and reenter the statement. Or you can execute the statement SET LOCK MODE TO WAIT, after which you will rarely see this message again.

另一个用户锁定了该语句选择的行。如果您以交互方式执行该语句,则可以执行以下两项操作之一。您可以等待很短的时间并重新输入语句。或者您可以执行语句集锁定模式来等待,之后很少会再次看到此消息。

In a program, you should roll back the current transaction, wait for an interval of random length, and rerun the transaction. If you run the transaction with a LOCK MODE of WAIT, you can reduce the frequency of this error. But it can still arise in some cases, such as when deadlock is detected. An ISAM error code (-107, -113, -134, -143, -144, or-154) usually accompanies this error, and a program might need to make a different response to each of these errors.

在程序中,您应该回滚当前事务,等待随机长度的间隔,然后重新运行事务。如果您以等待的锁定模式运行事务,则可以减少此错误的频率。但在某些情况下,例如检测到死锁时,仍然会出现这种情况。ISAM 错误代码(-107、-113、-134、-143、-144 或 -154)通常伴随此错误,程序可能需要对每个错误作出不同的响应。

-234 Cannot insert into virtual column column-name.

This INSERT statement is directed to a view, not to a real table, and one of the columns that is defined in the view is actually the value of an expression. Insertions and updates are not allowed on views that have such columns. Apply the INSERT to the real table on which the view is based.

此 INSERT 语句指向视图,而不是实际表,视图中定义的列之一实际上是表达式的值。

对于具有此类列的视图,不允许插入和更新。将 INSERT 应用于视图所基于的真实表。

-235 Character column size is too big.

This statement specifies a width for a column of CHAR data type that is greater than 32,767, or a width for a VARCHAR column that exceeds 255.

If you need a column of this size, use the TEXT data type, which allows unlimited lengths. Otherwise, inspect the statement for typographical errors.

此语句指定 CHAR 数据类型的列大于 32,767 的宽度,或超过 255 的 VARCHAR 列的宽度。如果需要这样大小的列,请使用文本数据类型,它允许无限长度。否则,检查语句中是否有打印错误。

-236 Number of columns in INSERT does not match number of VALUES.

Each column that is named or implied in an INSERT statement must have a separate value expression. If the statement does not list specific columns, review the definition of the table for the number of columns and their data types. Also check that the list of expressions in the VALUES clause has no extra or missing comma that might result in an incorrect number of values. Be especially careful of long character strings and expressions with parentheses.

INSERT 语句中的每个列都必须有一个单独的值表达式。如果语句没有列出特定列,请检查表的定义,以了解列数及其数据类型。还请检查 VALUES 子句中的表达式列表是否有额外的逗号或缺少逗号,从而可能导致值的错误数量。特别要注意长字符串和带括号的表达式。

-237 Cannot begin work.

The database server cannot execute a BEGIN WORK statement. Check the accompanying ISAM error code for more information. A problem probably exits in accessing the transaction log.

数据库服务器无法执行 BEGIN WORK 语句。有关更多信息,请查看附带的 ISAM 错误代码。

在访问事务日志时可能存在问题。

-238 Cannot commit work.

The database server cannot execute a COMMIT WORK statement. Check the accompanying ISAM error code for more information. A problem probably exists in accessing the transaction log.

数据库服务器无法执行提交工作语句。有关更多信息,请查看附带的 ISAM 错误代码。

访问事务日志可能存在问题。

-239 Could not insert new row - duplicate value in a UNIQUE INDEX column.

The row that is being inserted (or being updated to have a new primary key)contains a duplicate value of some row that already exists, in a column or columns that are constrained to have unique values. Another cause of this error might be a locking conflict if the table lock mode is page. The new or updated row is not inserted.

正在插入(或更新为具有新的主键)的行包含已存在的某一行的重复值,该值位于受限于具有唯一值的一列或多列中。如果表锁模式是页,则导致此错误的另一个原因可能是锁定冲突。未插入新行或更新行。

Roll back the current transaction and execute it again without any duplicate rows or with the locking conflict resolved.

回滚当前事务,然后在不重复行或锁定冲突解决的情况下再次执行该事务。

If you are using repeatable read isolation, then the error could be due to a unique constraint being violated. Refer to error -268.

如果您使用的是可重复读取隔离,则错误可能是由于违反了唯一约束。请参阅错误 -268。

-240 Could not delete a row.

The database server cannot finish execution of a DELETE statement. Roll back the current transaction; then check the accompanying ISAM error code for more specific information.

数据库服务器无法完成 DELETE 语句的执行。回滚当前事务;然后检查附带的 ISAM 错误代码以获得更多特定信息。

-241 Cannot rollback work.

The database server cannot execute a ROLLBACK WORK statement. Check the accompanying ISAM error code for more information. A problem probably exists in accessing the transaction log.

数据库服务器无法执行 ROLLBACK WORK 语句。有关更多信息,请查看附带的 ISAM 错误代码。访问事务日志可能存在问题。

-242 Could not open database table table-name.

The database server cannot begin reading a table. Check the accompanying ISAM error code for more information. The problem might be file permissions, a hardware error, or a corrupted system catalog.

Unless the ISAM error code or an operating-system message points to another cause, run the bcheck or secheck utility to verify file integrity.

数据库服务器无法开始读取表。有关更多信息,请查看附带的 ISAM 错误代码。问题可能是文件权限、硬件错误或系统目录损坏。除非 ISAM 错误代码或操作系统消息指向另一个原因,否则运行 bcheck 或 secheck 实用程序来验证文件的完整性。

-243 Could not position within a table table-name.

The database server cannot set the file position to a particular row within the file that represents a table. Check the accompanying ISAM error code for more information. A hardware error might have occurred,or the table or index might have been corrupted (truncated). Unless the ISAM error code or an operating-system message points to another cause,run the oncheck utility (secheck with GBase 8s SE or tbcheck with GBase 8s OnLine) to check and repair table and index.

数据库服务器无法将文件位置设置为表示表的文件中的特定行。有关更多信息,请查看附带的 ISAM 错误代码。可能发生硬件错误,或者表或索引可能已损坏(截断)。除非ISAM 错误代码或操作系统消息指向另一个原因,否则运行 oncheck 实用程序(secheck with GBase 8s SE 或者 tbcheck with GBase 8s OnLine)来检查和修复表和索引。

-244 Could not do a physical-order read to fetch next row.

The database server cannot read the disk page that contains a row of a table. Check the accompanying ISAM error code for more information. A hardware problem might exist, or the table or index might have been corrupted.

If the query was using the dirty read isolation level, this error code may be normal behavior caused by reading data that was in a temporarily inconsistent state from a concurrent update on the same data.

数据库服务器无法读取包含表行的磁盘页。有关更多信息,请查看附带的 ISAM 错误代码。

可能存在硬件问题,或者表或索引可能已损坏。如果查询使用的是脏读隔离级别,则此错误代码可能是由于从同一数据的并发更新中读取处于暂时不一致状态的数据而引起的正常行为。

Unless the ISAM error code or an operating-system message points to another cause, run the oncheck utility (secheck with GBase 8s SE or tbcheck with GBase 8s OnLine) to check and repair table and index.

除非 ISAM 错误代码或操作系统消息指向另一个原因,否则运行 oncheck 实用程序(secheck with GBase 8s SE 或者 tbcheck with GBase 8s OnLine)来检查和修复表和索引。

-245 Could not position within a file via an index.

The database server encountered an error when it attempted to look up a row through an index. Check the accompanying ISAM error code for more information. The table file or the index file might have been corrupted. Unless the ISAM error code or an operating-system message points to another cause, run the oncheck utility (secheck with GBase 8s SE or tbcheck with GBase 8s OnLine) to check and repair table and index.

数据库服务器试图通过索引查找一行时遇到错误。有关更多信息,请查看附带的 ISAM错误代码。表文件或索引文件可能已损坏。除非 ISAM 错误代码或操作系统消息指向另一个原因,否则运行 oncheck 实用程序(secheck with GBase 8s SE 或者 tbcheck with GBase 8s OnLine)来检查和修复表和索引。

-246 Could not do an indexed read to get the next row.

The database server encountered an error when it attempted to look up a row through an index. Check the accompanying ISAM error code for more information. The table file or the index file might have been corrupted. Unless the ISAM error code or an operating-system message points to another cause, run the oncheck utility (secheck with GBase 8s SE or tbcheck with GBase 8s OnLine) to check and repair table and index.

数据库服务器试图通过索引查找一行时遇到错误。有关更多信息,请查看附带的 ISAM 错误代码。

表文件或索引文件可能已损坏。除非 ISAM 错误代码或操作系统消息指向另一个原因,否则运行 oncheck 实用程序( secheck with GBase 8s SE 或者 tbcheck with GBase 8s OnLine)来检查和修复表和索引。

-247 Rollforward database failed.

The database server could not apply an audit trail to roll a database forward. Check the accompanying ISAM error code for more information.

数据库服务器无法应用审计跟踪来前滚数据库。有关更多信息,请查看附带的 ISAM 错误代码。

-248 Cannot commit savepoint.

If the error recurs, note all circumstances and contact GBase Technical Support.

如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-249 Virtual column must have explicit name.

When you select INTO TEMP, you are creating a table. As with any table,the columns of a temporary table must all have names. When you select a single column, the column in the temporary table receives the same name. When you select an expression, you must supply a name using a column alias, as in the following example:选择临时表时,将创建一个表。与任何表一样,临时表的列都必须有名称。选择单个列时,临时表中的列将收到相同的名称。选择表达式时,必须使用列别名提供名称,如下例所示:SELECT order_num, ship_date, ship_date + 14 expected FROM orders INTO TEMP ord_dates The temporary table ord_dates has three columns, which are named order_num, ship_date, and expected. The same principle applies to a view: each column must have a name. When you select every column of a view from a table, the view can have the same column names by default.

When you derive any column of a view from an expression, you must give all the columns explicit names, as in the following example:临时表 ord_dates有三列,分别命名为 order_num、ship_date 和 expected。同样的原则也适用于视图:每一列都必须有一个名称。当从表中选择视图的每一列时,缺省情况下,视图可以具有相同的列名。当从表达式派生视图的任何列时,必须给出所有列的显式名称,如下例所示:CREATE VIEW ord_dates(order_num, ship_date, expected)AS SELECT order_num, ship_date, ship_date + 14 FROM orders-250 Cannot read record from file for update.

The database server cannot get a row of a table prior to update. Check the accompanying ISAM error code for more information. Possibly another user has locked the row or the table, or possibly a more serious problem exists.

数据库服务器无法在更新之前获取表的一行。有关更多信息,请查看附带的 ISAM 错误代码。

可能是另一个用户锁定了行或表,或者可能存在更严重的问题。

-251 ORDER BY or GROUP BY column number is too big.

The ORDER BY or GROUP BY clause uses column-sequence numbers, and at least one of them is larger than the count of columns in the select list. Check that you entered the clause correctly and that you did not omit an item from the select list.

ORDER BY 或 GROUP BY 子句使用列序列号,其中至少有一个大于选择列表中列的计数。

检查是否正确地输入了子句,并且没有从选择列表中遗漏项。

-252 Cannot get system information for table.

The database server cannot access system information associated with the table. Check the accompanying ISAM error code for more information.

Unless the ISAM error code or an operating-system message points to another cause, run the oncheck utility to verify file integrity.

数据库服务器无法访问与表关联的系统信息。有关更多信息,请查看附带的 ISAM 错误代码。除非 ISAM 错误代码或操作系统消息指向另一个原因,否则运行 oncheck 实用程序以验证文件完整性。

-253 Identifier length exceeds the maximum allowed by this version of the server.

An SQL identifier exceeded the maximum number of characters.

SQL 标识符超过了最大字符数。

Check that no identifier in the statement is longer than the maximum length and that no punctuation error, such as a missing space or comma,combines two identifiers into one.

检查语句中没有任何标识符比最大长度长,并且没有标点符号错误(例如缺少空格或逗号)将两个标识符合并为一个。

-254 Too many or too few host variables given.

The number of host variables that you named in the INTO clause of this statement does not match the number of columns that you referenced in the statement.

在此语句的 INTO 子句中指定的主机变量数与在语句中引用的列数不匹配。

Locate the text of the statement (in a PREPARE or DECLARE statement) and verify the number of placeholders. Then review the list in the INTO clause to see which item or items are incorrect.

请找到语句文本(在准备语句或声明语句中),并验证占位符的数量。然后检查 INTO 子句中的列表,以查看哪些项或哪些项不正确。

-255 Not in transaction.

The database server cannot execute this COMMIT WORK or ROLLBACK WORK statement because no BEGIN WORK was executed to start a transaction.

Because no transaction was started, you cannot end one. Any database modifications that were made are now permanent; they cannot be rolled back but do not need to be committed. Review the sequence of SQL statements to see where the transaction should have started.

数据库服务器无法执行此提交工作或回滚工作语句,因为没有执行任何开始工作来启动事务。因为没有启动事务,所以不能结束事务。所做的任何数据库修改现在都是永久性的;它们不能回滚,但不需要提交。检查SQL语句的顺序,以查看事务应该在何处启动。

This error can occur when you open a cursor for update and have not started a transaction yet.

当您打开用于更新的游标而尚未启动事务时,可能会发生此错误。

-256 Transaction not available.

You cannot begin a transaction in this database because it does not have a transaction log. In order to support transactions, you must start a transaction log. Refer to your Administrator's Guide for information on how to start a transaction log.

由于数据库中没有事务日志,因此无法在此数据库中开始事务。为了支持事务,必须启动事务日志。有关如何启动事务日志的信息,请参阅管理员指南。

-257 System limit on maximum number of statements exceeded, maximum is count.

The database server can handle only a fixed number of prepared SQL statements for each user. This limit includes statements that were prepared with the PREPARE statement and cursors that were declared with the DECLARE statement. This statement (PREPARE, DECLARE, or PREPARE IMMEDIATE) exceeds that limit and is not executed. The FREE statement releases prepared statements. Review the logic of your program, and change it so that it frees prepared statements when it no longer needs them.

数据库服务器只能为每个用户处理固定数量的准备好的 SQL 语句。这个限制包括 PREPARE语句准备的语句和 DECLARE 语句声明的游标。此语句(PREPARE, DECLARE,或者 PREPARE IMMEDIATE)超过了该限制,未执行。自由声明发布准备好的声明。检查程序的逻辑,并对其进行更改,以便在程序不再需要时释放已准备好的语句。

-258 System error - invalid statement id received by the sqlexec process.

The current statement (EXECUTE or OPEN) refers to a prepared SQL statement or a cursor that does not exist. Possibly the statement id is invalid, or possibly the statement was prepared and then released with the FREE statement. Review the program logic to make sure that the statement or cursor that is named in this statement is valid, has been properly prepared or declared, and has not been freed prior to this point.

当前语句(EXECUTE 或 OPEN)引用了准备好的 SQL 语句或不存在的游标。可能语句 id无效,也可能是准备好语句,然后用 FREE 语句发布。检查程序逻辑,以确保在此语句中命名的语句或游标是有效的,已经正确准备或声明,并且在此之前没有被释放。

If the program executes a prepared DATABASE statement successfully, the database server automatically frees the prepared statement. As a result, if you free a prepared DATABASE statement, you will receive this error on the FREE statement. You can ignore it in this case.

如果程序成功地执行了准备好的 DATABASE 语句,数据库服务器将自动释放准备好的语句。因此,如果释放准备好的 DATABASE 语句,则会在 FREE 语句上收到此错误。

在这种情况下你可以忽略它。

-259 Cursor not open.

The current statement refers to a cursor that has not been opened.

Review the logic of the program to see how it failed to execute the OPEN statement before it reached this point. Statements that end transactions (COMMIT WORK and ROLLBACK WORK) also close cursors unless the cursors are declared WITH HOLD.

当前语句引用尚未打开的游标。检查程序的逻辑,看看它是如何在达到这一点之前执行OPEN 语句的。终止事务的语句( COMMIT WORK 和 ROLLBACK WORK )也关闭游标,除非游标是用 WITH HOST 声明的。

-260 Cannot execute a SELECT statement that is PREPAREd - must use cursor.

Although you can prepare a SELECT statement, the only way you can then execute that SELECT statement is to associate its statement id with a cursor (use a DECLARE statement) and then open the cursor.

尽管可以准备 SELECT 语句,但执行 SELECT 语句的唯一方法是将其语句 id 与游标(使用 DECLARE 语句)关联起来,然后打开游标。

An important exception is the SELECTINTO TEMP statement, which you can execute. You cannot use it with a cursor.

一个重要的例外是 SELECTINTO TEMP 语句,您可以执行该语句。您不能将它与光标一起使用。

You can execute other prepared statements with the EXECUTE statement.

If you know the contents of this SELECT statement at the time you are writing the program, and if you are certain that it will return only a single row of data, you can embed it in the program. If it must be prepared dynamically while the program is running, revise your program to execute it through a cursor.

可以使用 EXECUTE 语句执行其他准备好的语句。如果在编写程序时知道此 SELECT 语句的内容,并且确定它只返回一行数据,则可以将其嵌入程序中。如果程序运行时必须动态准备,请修改程序以通过游标执行。

-261 Cannot create file for table table-name.

In general, the database server cannot create the file that will represent this table. Check the accompanying ISAM error code for more information. The file would be created in the database.dbs directory(unless you supplied an IN pathname clause) with GBase 8s SE. Its filename would begin with the first few letters of table-name,followed by a 3-digit number and the suffix .dat, or .idx.

With GBase 8s SE, a problem might exist with file permissions, or possibly the disk is full.

通常,数据库服务器无法创建表示此表的文件。有关更多信息,请查看附带的 ISAM 错误代码。该文件将在 database.dbs 目录中创建(除非您提供了一个 IN 路径名子句)和GBase 8s SE 。它的文件名将以表名的前几个字母开始,后面跟着一个 3 位数的数字和后缀 .dat 或 .idx 。使用 GBase 8s SE,文件权限可能存在问题,或者磁盘已满。

GBase 8s Dynamic Server, GBase 8s Universal Server, and GBase 8s OnLine Dynamic Server allow table fragmentation, which might involve extensive use of dbspaces. You need to check the dbspace that was specified for the table.

If no dbspace was specified, then the dbspace in which the database was created is used. For database creation, if no dbspace is specified, then the rootdbs is used. The specified dbspace might not exist, or the disk might be full.

GBase 8s Dynamic Server、GBase 8s Universal Server 和 GBase 8s OnLine Dynamic Server 允许表分片,这可能涉及到 dbspace 的广泛使用。您需要检查为表指定的dbspace 。如果没有指定 dbspace ,则使用创建数据库的 dbspace 。对于数据库创建,如果没有指定 dbspace ,则使用 rootdbs 。指定的 dbspace 可能不存在,或者磁盘可能已满。

-262 There is no current cursor.

This internal error should not occur. Note all the details of the network software in use and the version number of the database servers in this and the other host system. If the error recurs, note all circumstances and contact GBase Technical Support.

不应发生此内部错误。注意正在使用的网络软件的所有细节以及此主机系统和其他主机系统中数据库服务器的版本号。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-263 Could not lock row for UPDATE.

This statement, probably a FETCH statement that names a cursor declared FOR UPDATE, failed because the row it should have fetched could not be locked. Check the accompanying ISAM error code(usually -107, -113,-134, -143, -144, or -154) for more information.

Probably another program is using the row (-107) or table (-113). You can use SET LOCKMODE TO WAIT to eliminate these errors, but detection of deadlock (-143 or -154) and lock table full (-134) can still occur.

此语句(可能是为声明 FOR UPDATE 而命名游标的 FETCH 语句)失败,因为它本应获取的行无法锁定。有关更多信息,请查看附带的 ISAM 错误代码(通常为 -107、-113、-134、-143、-144 或 -154)。可能另一个程序正在使用行(-107)或表(-113)。

您可以使用 SET LOCKMODE TO WAIT 以消除这些错误,但是仍然可以检测死锁(-143或 -154)和锁表已满(-134)。

-264 Could not write to a temporary file.

The database server created a temporary file in the directory that the DBTEMP environment variable (or /tmp by default on UNIX systems)specifies, but it encountered an error when it tried to write data into the file. To determine the cause of this error, check the accompanying ISAM error code and look for operating-system error messages that might give more invormation. Possible causes include: hardware failure, a full disk, or, if PDQ is enabled, insufficient shared memory.

数据库服务器在 DBTEMP 环境变量(在 UNIX 系统上缺省情况下为 /tmp)指定的目录中创建了一个临时文件,但是当它试图将数据写入文件时遇到了一个错误。若要确定此错误的原因,请检查随附的 ISAM 错误代码,并查找可能导致更多调用的操作系统错误消息。可能的原因包括:硬件故障、完整磁盘或如果启用 PDQ ,共享内存不足。

-265 Load or insert cursors must be run within a transaction.

You attempted to open an insert cursor. This database has a transaction log. In such a database, you must execute a BEGIN WORK statement before you open a cursor that is declared with an INSERT statement or with the FOR UPDATE clause. Revise the logic of your program so that it starts a transaction before it opens the cursor.

您试图打开插入游标。此数据库具有事务日志。在这样的数据库中,在打开使用 INSERT语句或 FOR UPDATE 子句声明的游标之前,必须执行 BEGIN WORK 语句。修改程序的逻辑,以便它在打开游标之前启动事务。

You can ensure that the program also works in databases that do not have a transaction log. Change the program so that immediately after it executes the DATABASE statement, it saves the contents of the second element of the SQLAWARN array of warning flags in the SQL communications area. This element will contain a space if the database does not use transactions, and the letter W if it uses them. At each point where a transaction logically begins or ends, test the saved value. If it contains W, execute the transaction statement to begin or end a transaction.

您可以确保该程序也在没有事务日志的数据库中工作。更改程序,使其在执行 DATABASE语句后立即将 SQLAWARN 数组中的警告标志的第二个元素的内容保存在 SQL 通信区域中。如果数据库不使用事务,则此元素将包含一个空格,如果使用,则包含字母 W 。在事务逻辑开始或结束的每个点,测试保存的值。如果它包含 W ,则执行事务语句以开始或结束事务。

-266 There is no current row for UPDATE/DELETE cursor.

The current statement uses the WHERE CURRENT OF cursor-name clause, but that cursor has not yet been associated with a current row. Either no FETCH statement has been executed since it was opened, or the most recent fetch resulted in an error so that no row was returned. Revise the logic of the program so that it always successfully fetches a row before it executes this statement.

current 语句使用 WHERE Current OF cursor-name 子句,但该游标尚未与当前行相关联。打开后没有执行 FETCH 语句,或者最近的 FETCH 导致错误,从而没有返回任何行。

修改程序的逻辑,以便在执行此语句之前始终成功地获取一行修改程序的逻辑,以便在执行此语句之前始终成功地获取一行。

-267 The cursor has been previously released and is unavailable.

The FREE statement released the resources that are attached to the cursor named in this statement, or possibly an automatic re-prepare was attempted while opening the cursor and it failed, leaving the cursor unavailable. Before you can use the cursor, you must again prepare the SQL statement that is associated with it. If the cursor was declared FOR a statement, re-execute its DECLARE statement. If the cursor was declared FOR a statement identifier, execute the PREPARE statement again.

FREE 语句释放附加到此语句中命名的游标的资源,或者在打开游标时尝试自动重新准备,结果失败,使游标不可用。在使用游标之前,必须再次准备与其关联的 SQL 语句。

如果为语句声明了游标,则重新执行其 DECLARE 语句。如果为语句标识符声明了游标,请再次执行 PREPARE 语句。

-268 Unique constraint violated.

During execution of this statement, a duplicate value was introduced into a column or columns that a unique constraint protects. The row with the duplicate value was not allowed into the table (not inserted or not updated). For GBase 8s Dynamic Server, any changes that this statement made prior to the discovery of the duplicate value have been rolled back. (The effects of preceding statements in the transaction, if there were any, remain in effect. They must be explicitly rolled back or committed.)This error occurs in a logging database. However, if you are using repeatable read isolation, error -239 will display instead.

在执行此语句期间,一个重复的值被引入到一个或多个列中,而这些列是唯一约束保护的。不允许具有重复值的行进入表(未插入或更新)。对于GBase 8s Dynamic Server,此语句在发现重复值之前所做的任何更改都已回滚。(如有任何交易,则前一项声明的效果仍然有效。它们必须显式回滚或提交。)此错误发生在日志数据库中。但是,如果您使用的是可重复读取隔离,那么 Error-239 将取而代之地显示。

-269 Cannot add column column-name that does not accept nulls.

This statement requests a new column that has the NOT NULL constraint.

However, when a column is added to an existing table, null values have to be installed in the existing rows. Define a new table that includes this column, then INSERT the data from the old table into it to provide some suitable nonnull values for this column.

此语句请求具有 NOT NULL 约束的新列。但是,当将列添加到现有表时,必须在现有行中安装空值。定义包含此列的新表,然后将旧表中的数据插入其中,为该列提供一些合适的非空值。

-270 Could not position within a temporary file.

The database server created a temporary file in the directory specified by the DBTEMP environment variable (or /tmp by default on UNIX systems)but encountered an error when it tried to position (seek) within it.

Check the accompanying ISAM error code, and look for operating-system error messages that might give more information. Possibly a hardware failure occurred, or another user truncated the file.

数据库服务器在 DBTEMP 环境变量指定的目录中创建了一个临时文件(在 UNIX 系统中缺省情况下是 /tmp),但是当它试图在其中定位时遇到了一个错误。检查附带的 ISAM错误代码,并查找可能提供更多信息的操作系统错误消息。可能发生硬件故障,或者另一个用户截断了文件。

-271 Could not insert new row into the table.

This problem has many possible causes, including a locked table or a full disk. Check the accompanying ISAM error code for more information.

此问题有许多可能的原因,包括锁定的表或完整的磁盘。有关更多信息,请查看附带的 ISAM 错误代码。

-272 No SELECT permission for table/column.

The person who created this table has not granted Select privilege to your account name or to the public for the table or the column. The owner of the table or the DBA must grant this privilege before you can select data from the table or column.

创建此表的人没有为表或列授予对您的账户名称或对公共的 Select 权限。在您从表或列中选择数据之前,表的所有者或者 DBA 必须授予此权限。

This error message may also occur if you are using the LOAD command in DB-Access because DB-Access uses the SELECT command to get information about a table before loading or inserting rows.

如果在 DB-Access 中使用 LOAD 命令,则可能会出现此错误消息,因为 DB-Access 使用SELECT 命令在加载或插入行之前获取有关表的信息。

-273 No UPDATE permission for table/column.

The person who created this table has not granted Update privilege to your account name or to the public for the table or the column. The owner of the table or the DBA must grant this privilege before you can update a row in this table or update the column.

创建此表的人没有为表或列授予对您的账户名称或对公共的 Update 权限。在您更新此表中的行或更新列之前,表的所有者或者 DBA 必须授予此权限。

-274 No DELETE permission for table.

The person who created this table has not granted Delete privilege to your account name or to the public. The owner of the table or the DBA must grant this privilege before you can delete a row in this table.

创建此表的人没有为表或列授予对您的账户名称或对公共的 Delete 权限。在您删除此表中的行之前,表的所有者或者 DBA 必须授予此权限。

-275 The Insert privilege is required for this operation.

The Insert access privilege on this table or column is not currently held by your account name, nor by the PUBLIC group, nor by your current role. The owner of the table or the DBA must grant the Insert privilege before you can insert a row into this table.

当前,您的账户名、公共组或当前角色都不持有此表或列上的 INSERT 访问权限。表的所有者或 DBA 必须授予 INSERT 特权,然后才能将一行插入到此表中。

This error is also returned when you attempt to insert a row into a view that is not updatable. A view is not updatable unless all of the following conditions are true:1. All of the columns in the view are from a single table.

  1. No columns in the projection list are aggregate values.

  2. No UNIQUE or DISTINCT keyword is in the SELECT projection list.

  3. No GROUP BY clause nor UNION, INTERSECT, or MINUS operator is in the view definition.

  4. The query selects no calculated values and no literal values.

当您试图将一行插入到不可更新的视图中时,也会返回此错误。除非下列所有条件都是正确的,否则视图是不可更新的:1.视图中的所有列都来自单个表。

2.投影列表中没有列是聚合值。

3.SELECT 投影列表中没有 UNIQUE 或 DISTINCT 关键字。

4.不使用 GROUP BY 子句或 UNION、INTERSECT 或 MINUS 。

5.查询不选择计算值,也不选择文字值。

If only the first condition is false, and you hold the Insert and Select access privileges on all of the columns in the view, then you can define on the view an INSTEAD OF trigger whose triggered action inserts values into the base tables of the view, and use the trigger to perform the update.

如果只有第一个条件为 false ,并且持有视图中所有列的 INSERT 和 SELECT 访问权限,则可以在视图中定义一个 INSTEAD OF 触发器,该触发器的触发操作会将值插入到视图的基表,并使用触发器执行更新。

-276 Cursor not found.

The cursor that is named in this statement was not declared in the current session. The current session runs from the execution of a DATABASE statement to the next DATABASE or CLOSE DATABASE statement.

Review the logic of the program to see that it executes the DECLARE statement for this cursor after the DATABASE statement.

此语句中命名的游标在当前会话中未声明。当前会话从执行 DATABASE 语句到下一个DATABASE 或 CLOSE DATABASE 语句。检查程序的逻辑,以确保它在 DATABASE 语句之后为该游标执行 DECLARE 语句。

-277 UPDATE table table-name is not the same as the cursor table.

This UPDATE WHERE CURRENT OF cursor statement refers to a different table than the table referenced by the SELECT statement that was declared with the cursor. Review the program logic to make sure that an update through a cursor updates only the table that the cursor is reading. This message also applies to cursor statements that use DELETE WHERE CURRENT OF.

此 UPDATE WHERE CURRENT OF 语句引用的表与使用游标声明的 SELECT 语句引用的表不同。检查程序逻辑,以确保通过游标进行的更新只更新光标正在读取的表。此消息还适用于使用“DELETE WHERE CURRENT OF”的游标语句。

-278 Cannot rollback savepoint.

This is an internal error. If the error recurs, please note all circumstances and contact GBase Technical Support.

这是内部错误。如果错误再次发生,请注意所有情况,并与 GBase 8s 技术支持部门联系。

-279 Cannot grant or revoke database privileges for table or view.

This statement names one or more of the database-level privileges(CONNECT, RESOURCE, and DBA), but it also uses the ON table-name clause. A statement that does not mention a particular table (does not contain the ON clause) must grant or revoke the database-level privileges. The table-level privileges such as INSERT require an ON clause. Do not mix the two kinds in the same statement.

该语句命名一个或多个数据库级权限(CONNECT,RESOURCE 和 DBA),但它也使用 ON table-name 子句。没有提到特定表的语句(不包含 ON 子句)必须授予或撤销数据库级别的权限。表级权限(如 INSERT )需要 ON 子句。不要在同一语句中把这两种语句混为一谈。

-280 A quoted string exceeds 256 bytes.

A character literal in this statement exceeds the maximum length. Check the punctuation and length of all quoted strings in the statement.

Possibly two missing quotes make a long string out of two short ones.

You must revise the statement to use a shorter character string.

此语句中的字符文字超过最大长度。检查语句中所有引号字符串的标点符号和长度。两个缺失的引号可能会使两个短字符串变成一个长字符串。必须修改语句以使用较短的字符串。

-281 Could not add index to a temporary table.

Check the accompanying ISAM error code to find out the specific problem, and look for operating-system error messages that might give more information. Possibly the disk is full.

检查附带的 ISAM 错误代码,找出具体问题,并查找可能提供更多信息的操作系统错误消息。可能磁盘已经满了。

-282 Found a quote for which there is no matching quote.

Inspect the current statement, examining the punctuation of all quoted strings. To include the quote character in a literal string, use single apostrophes as string delimiters, as in the following example:检查当前语句,检查所有引号字符串的标点符号。若要在文字字符串中包含引号字符,请使用单个撇号作为字符串分隔符,如下所示:SELECT '"', fname,'"', "''", lname, "''" FROM customer-283 Found a non-terminated comment ("{" with no matching "}").

Inspect the current statement, and examine the punctuation of comments and quoted strings. You can use curly braces to insert comments into SQL statements, but the braces must balance. Or you can use the double-hyphen to append comments to the end of a line.

检查当前语句,检查注释和引用字符串的标点符号。可以使用大括号将注释插入到 SQL 语句中,但大括号必须保持平衡。也可以使用双连字符将注释追加到行尾。

-284 A subquery has returned not exactly one row.

A subquery that is used in an expression in the place of a literal value must return only a single row and a single column. In this statement, a subquery has returned more than one row, and the database server cannot choose which returned value to use in the expression. You can ensure that a subquery will always return a single row. Use a WHERE clause that tests for equality on a column that has a unique index. Or select only an aggregate function. Review the subqueries, and check that they can return only a single row.

在表达式中用于文字值位置的子查询必须只返回单个行和单个列。在此语句中,子查询返回多行,数据库服务器无法选择在表达式中使用哪个返回值。您可以确保子查询始终返回单个行。使用 WHERE 子句,在具有唯一索引的列上测试等式。或只选择聚合函数。

检查子查询,并检查它们只能返回一行。

This error can also occur when you use a singleton SELECT statement to retrieve multiple rows. You must use the DECLARE/OPEN/FETCH series of statements or the EXECUTE INTO statement to retrieve multiple rows.

当您使用单例 SELECT 语句检索多个行时,也可能发生此错误。您必须使用DECLARE/OPEN/FETCH 系列语句或 EXECUTE INTO 语句来检索多个行。

-285 Invalid cursor received by sqlexec.

The cursor that this statement uses has not been properly declared or prepared, or the FREE statement has released it, or an automatic re-prepare has been attempted while opening the cursor but that operation failed,leaving the cursor unavailable. Review the program logic to ensure that the cursor has been declared. If it has, and if the DECLARE statement refers to a statement identifier, check that the referenced statement has been prepared.

此语句使用的游标尚未正确声明或准备,或 FREE 语句已释放游标,或在打开游标时尝试自动重新准备,但操作失败,游标不可用。检查程序逻辑以确保游标已经声明。如果是这样,如果 DECLARE 语句引用了语句标识符,则检查引用的语句是否已经准备好。

-286 Default value of the primary key column column-name is NULL.

A column that is part of a primary key cannot have null as its default value.

作为主键一部分的列不能将 NULL 作为其缺省值。

-287 Cannot add serial column column-name to table.

You cannot add a column of SERIAL or SERIAL8 or BIGSERIAL data type to an existing table. Such columns may not contain null values, but when you add a column, the database server must put null values in all existing rows. You can add a serial column in three steps. First, add the column with an INTEGER data type. Then update the table with nonnull,unique values in each row of the new column. Finally, use ALTER TABLE MODIFY to change the data type of the column to SERIAL or SERIAL8 or BIGSERIAL.

不能将 SERIAL 或 SERIAL 8 或 BIGSERIAL 数据类型的列添加到现有表中。这些列可能不包含空值,但当添加列时,数据库服务器必须在所有现有行中放置空值。您可以分三个步骤添加一个串行列。首先,使用整数数据类型添加列。然后在新列的每一行中使用非空唯一值更新表。最后,使用 ALTER TABLE MODIFY 将列的数据类型更改为 SERIAL 或 SERIAL 8 或 BIGSERIAL 。

-288 Table table-name not locked by current user.

This UNLOCK TABLE statement names a table that has not been locked. If you locked the table earlier, it has already been unlocked. Tables are unlocked automatically when a transaction ends or when the database is closed. If another user locked the table, you cannot unlock it.

此 UNLOCK TABLE 语句指定未锁定的表。如果你早些时候锁定了表,它已经被解锁了。

当事务结束或数据库关闭时,表将自动解锁。如果其他用户锁定了表,则无法解锁它。

-289 Cannot lock table table-name in requested mode.

The table is already locked in exclusive mode. You will have to wait for the table to be unlocked before you proceed.

表已锁定在独占模式中。在继续之前,您必须等待表被解锁。

-290 Cursor not declared with FOR UPDATE clause.

This statement attempts to update with a cursor that was not declared for update. The database server does not allow this action, as both a security measure that is designed to prevent program errors and a performance feature. To use a cursor with the UPDATE or DELETE statements, you must declare it for update. Review the program logic to make sure that this statement uses the intended cursor.

此语句尝试使用未声明用于更新的游标进行更新。数据库服务器不允许此操作,因为这既是一种安全措施,旨在防止程序错误,也是性能特性。若要将游标与 UPDATE 或DELETE 语句一起使用,必须声明它以进行更新。检查程序逻辑以确保此语句使用预期的游标。

In an ANSI-compliant database, any cursor can be used for updating; the FOR UPDATE clause is not required (and generates a warning).

在符合 ANSI 标准的数据库中,任何游标都可以用于更新;不需要 FOR UPDATE 子句(并生成警告)。

-291 Cannot change lock mode of table.

The current LOCK TABLE statement cannot be executed because you have already locked the same table using a different mode (EXCLUSIVE or SHARE). To change the lock mode, arrange to unlock the table before you lock it again.

无法执行当前 LOCK TABLE 语句,因为您已经使用不同的模式(独占或共享)锁定了相同的表。若要更改锁定模式,请安排在再次锁定表之前将其解锁。

-292 An implied insert column column-name does not accept NULLs.

This INSERT statement does not supply values for all the columns in the table. At least one of the columns that it omits is constrained to be not null. Because the database server would have to insert a null value for every unmentioned column, it cannot perform this insert. Review the statement against the definition of the table. Possibly the definition of the table has been changed.

此 INSERT 语句不为表中的所有列提供值。它省略的列中至少有一列被限制为非空。因为数据库服务器必须为每个未提到的列插入一个空值,所以它不能执行此插入。对照表的定义检查语句。表的定义可能已经更改。

-293 IS [NOT] NULL predicate may be used only with simple columns.

The test for a null value can be applied only to a column name (not to a subscripted character column or an expression, for example).

对空值的测试只能应用于列名(例如,不能应用于订阅字符列或表达式)。

Review the use of these keywords in the WHERE clause and in any CASE statements.

请检查 WHERE 子句和任何 CASE 语句中这些关键字的使用情况。

-294 The column column-name must be in the GROUP BY list.

In a grouping SELECT, you must list every nonaggregate column in the GROUP BY clause to ensure that a well-defined value exists for each selected column in each grouped row. A column contains either a single aggregate value or a value unique to that group. If a selected column were neither an aggregate nor in the list, two or more values for that column might possibly exist in some group, and the database server could not choose which value to display. Revise the query to include either the column name or its positional number in the clause.

在分组 SELECT 中,必须列出 GROUP BY 子句中的每个非聚合列,以确保每个分组行中的每个选定列都存在一个定义良好的值。列包含单个聚合值或该组的唯一值。如果所选列既不是聚合列,也不是列表中的列,则该列的两个或多个值可能存在于某个组中,而且数据库服务器无法选择要显示的值。修改查询,以便在子句中包括列名或其位置号。

-295 Referenced and referencing tables have to be in the same database.

Referential constraints cannot cross databases. In other words, both the referenced and referencing columns (or parent and child keys) must be in the same database.

引用约束不能跨数据库。换句话说,引用列和引用列(或父键和子键)都必须位于同一个数据库中。

-296 Referenced table table-name not available.

The table that is specified in a referential constraint does not exist or is not accessible. Check the accompanying ISAM error code for more information.

在引用约束中指定的表不存在或无法访问。有关更多信息,请查看附带的 ISAM 错误代码。

-297 Cannot find unique constraint or primary key on referenced table <table_name>.

The database server cannot locate the referenced constraint in the sysconstraints system catalog table, and the referenced constraint was not created in the same ALTER TABLE statement as the referencing constraint. The referenced constraint might not exist, or a foreign key might refer to a table that has a unique constraint but not a primary-key constraint.

数据库服务器无法在 sysconstraints 系统目录表中找到引用的约束,并且引用的约束不是在与引用约束相同的 ALTER TABLE 语句中创建的。引用的约束可能不存在,或者外键可能引用具有唯一约束但没有主键约束的表。

Check that you have entered a valid column name with the appropriate constraints that are associated with it. If the referenced table has a unique constraint but no primary key, you must use the following form of the REFERENCES clause:请检查是否输入了与其关联的适当约束的有效列名。如果引用的表具有唯一约束但没有主键,则必须使用以下形式的“引用”子句:REFERENCES table_name (column_name)Valid constraint columns indicate an internal error. If the error recurs, note all circumstances and contact GBase Technical Support.

有效约束列指示内部错误。如果错误再次发生,请注意所有情况,并与 GBase 8s 技术支持部门联系。

-298 Cannot grant permission to public with grant option.

The clause WITH GRANT OPTION allows the receiver of the grant to grant the same privilege to others. In this case, the receiver of the grant is PUBLIC. If this statement were executed, everyone would have the privilege, and everyone could grant the privilege. This operation is prohibited. Either name specific grantees, or omit the clause WITH GRANT OPTION.

WITH GRANT OPTION 的子句允许授权的接受者向其他人授予相同的权限。在这种情况下,授权的接受者是公开的。如果这个语句被执行,每个人都有这个权限,每个人都可以授予这个权限。这是禁止的。要么指定特定的被授权者,要么删除 WITH GRANT OPTION子句。

-299 Cannot grant permission to self.

This GRANT statement includes your user id as one of the grantees. If you can grant the privilege, you already have the privilege. Rewrite the statement to omit your user name from the TO clause.

此 GRANT 语句包括您作为被授权者之一的用户 id 。如果您可以授予该权限,则您已经拥有了该权限。重写语句以从 TO 子句中删除用户名。

-300 There are too many GROUP BY columns.

The number of columns that can be listed in the GROUP BY clause is an implementation limit of the database server. All database servers support at least eight columns. Review the current statement to ensure that the punctuation of the GROUP BY clause is correct. If it is as you intended, you will have to find a way to make this query in two or more stages. Since you must list all nonaggregate selected columns in the GROUP BY clause, and the length of the list is restricted, you must select only the non-aggregate values that are required to distinguish each group. Put the group results in a temporary table, and join this table to the original table to select other non-aggregate values.

可以在 GROUP BY 子句中列出的列数是数据库服务器的实现限制。所有数据库服务器至少支持八列。检查当前语句,以确保 GROUP BY 子句的标点符号是正确的。如果它是您想要的,您将不得不找到一种方法,在两个或更多的阶段进行此查询。由于必须列出 GROUP BY 子句中的所有非聚合选定列,并且列表的长度受到限制,所以必须只选择区分每个组所需的非聚合值。将组结果放入一个临时表,并将此表连接到原始表中,以选择其他非聚合值。

-301 The total size of the GROUP BY columns is too big.

The database server limits the total number of bytes in the combined columns that the GROUP BY clause lists. All database servers support at least 120 bytes. See the discussion of error -300 for more information.

数据库服务器限制 GROUP BY 子句列出的组合列中的字节总数。所有数据库服务器至少支持 120 字节。有关更多信息,请参见对 Error-300 的讨论。

-302 No GRANT option or illegal option on multi-table view.

This GRANT statement cannot be executed. The grantor does not have the right to grant the specified privilege for this table, the table name is a synonym, or the table is a view for which this option cannot be granted.

If the grantor does have the right to grant the privilege, the table in question might be a synonym or a view that is not modifiable and cannot be used for insert, update, or delete operations.

无法执行此 GRANT 语句。授权人无权为此表授予指定的权限,表名是同义词,或表是不能授予此选项的视图。如果设保人确实有权授予权限,则有关表可能是不可修改的同义词或视图,不能用于插入、更新或删除操作。

To grant any privilege for a table, you must be the owner of the table or you must have been granted the same privilege with the GRANT option. To use the AS GRANTOR clause, you must have DBA privilege.

若要为表授予任何权限,您必须是表的所有者,或者必须已被授予与“ GRANT ”选项相同的权限。若要使用 AS GRANTOR 子句,您必须具有 DBA 特权。

-303 Expression mixes columns with aggregates.

This SELECT statement uses an aggregate function in its WHERE clause.

This action is not allowed. The WHERE clause must be applied row by row as a table is scanned, but an aggregate function can only be calculated after all rows have been chosen and grouped. Review the statement with this fact in mind. If you intended to select only certain groups of records, you can put that test in the HAVING clause; it is applied to grouped rows.

此 SELECT 语句在 WHERE 子句中使用聚合函数。此操作是不允许的。WHERE 子句必须在扫描表时逐行应用,但只有在选择和分组所有行之后才能计算聚合函数。考虑到这一事实,重新审视声明。如果您只打算选择某些记录组,则可以将该测试放入 HAVING 子句中;它适用于分组行。

The text of this message is somewhat deceptive. You can, in fact, mix column names and aggregate functions in expressions. However, you can do so only in the select list or the HAVING clause (not in the WHERE clause), and the columns must appear in the GROUP BY clause.

这条信息的文字有点欺骗性。实际上,可以在表达式中混合列名和聚合函数。但是,只能在 SELECT List 或 HAVING 子句(而不是 WHERE 子句)中这样做,而且列必须出现在 GROUP BY 子句中。

-304 HAVING can only have expressions with aggregates or columns in GROUP BY clause.

The HAVING clause is used to select completed rows after grouping has been done. Therefore, the only selected values that it can test are values that are available in completed groups of rows, namely the single columns that are named in the GROUP BY clause and aggregate values. Review the HAVING clause with this rule in mind. If you want to select particular rows before grouping has taken place, use the WHERE clause.

HANING 子句用于在完成分组后选择已完成的行。因此,它只能测试的选定值是在已完成的行组中可用的值,即在 GROUP BY 子句和聚合值中命名的单列。用这个规则检查HAVING 子句。如果要在分组发生之前选择特定行,请使用 WHERE 子句。

-305 Subscripted column column-name is not of type CHAR, VARCHAR, TEXT nor BYTES.

You may select substrings only from columns of the types mentioned.

Review all uses of square brackets in this statement, and make sure that each follows the name of a column that has one of these types. If that is the case, verify that you are using the database you intended,and double-check the definition of the table. Possibly one of the columns in the table has been altered to use a different type.

您只能从上述类型的列中选择子字符串。检查此语句中方括号的所有用法,并确保每个方括号都遵循具有这些类型之一的列的名称。如果是这样的话,请验证您正在使用您想要的数据库,并再次检查表的定义。表中的一个列可能已更改为使用不同的类型。

-306 Subscript out of range.

This statement refers to a substring of a character variable. The substring values (two numbers in square brackets) are incorrect. The first is less than zero or greater than the length of the column, or the second is less than the first. Review all uses of square brackets in the statement to find the error. Possibly the size of a column has been altered and makes a substring fail that used to work.

此语句引用字符变量的子字符串。子字符串值(方括号中的两个数字)不正确。第一个小于零或大于列的长度,或第二个小于第一个。检查语句中方括号的所有用法以查找错误。可能列的大小已被更改,并导致一个用于工作的子字符串失败。

-307 Illegal subscript definition.

This statement refers to a substring of a character variable. The substring values (two numbers in square brackets) are incorrect. The first is less than zero or greater than the length of the column, or the second is less than the first. Review all uses of square brackets in the statement to find the error. Possibly the size of a column has been altered and makes a substring fail that used to work.

此语句引用字符变量的子字符串。子字符串值(方括号中的两个数字)不正确。第一个小于零或大于列的长度,或第二个小于第一个。检查语句中方括号的所有用法以查找错误。可能列的大小已被更改,并导致一个用于工作的子字符串失败。

-308 The statement failed because corresponding column data types must be compatible for each UNION, INTERSECT, or MINUS query.

All rows produced in a union, intersect or minus of SELECT statements must have the same format, so the corresponding columns for each UNION, INTERSECT or MINUS statement must have the same data type or compatible data types. Two data types are compatible if you can convert one of them into the other; for example,INT and FLOAT are compatible data types because you can convert INT values to FLOAT values. In the current statement, a column in the second or subsequent SELECT statement does not agree with the corresponding column in a preceding SELECT statement.

在 SELECT 语句的 union、intersect 或 minus 中生成的所有行都必须具有相同的格式,因此每个UNION、INTERSECT 或 MINUS 语句的对应列必须具有相同的数据类型或兼容的数据类型。如果可以将其中一种数据转换为另一种数据类型,则两种数据类型是兼容的;例如,INT 和 FLOAT 是兼容的数据类型,因为您可以将 INT 值转换为 FLOAT值。在当前语句中,第二个或后续 SELECT 语句中的列与前面 SELECT 语句中的相应列不一致。

Review and compare all the SELECT statements. Check each point at which one statement selects a column that is not identical to a column in the preceding SELECT statement. If the column data types do not match, then one type must be convertible to the other type.

请检查并比较所有 SELECT 语句。检查一个语句选择与前面 SELECT 语句中的列不相同的列的每个点。如果列数据类型不匹配,则必须将一种类型转换为另一种类型。

-309 ORDER BY column or expression must be in SELECT list.

An expression or column name is in the ORDER BY clause of this SELECT statement, but the expression or column name is not in the select list (the list of values that follows the word SELECT). This action is not supported when a UNIQUE or DISTINCT operator is being used in a query.

表达式或列名按 SELECT 语句的 ORDER BY 子句排列,但表达式或列名不在 SELECT 列表(单词 SELECT 后面的值列表)中。当查询中使用 UNIQUE 或 DISTINCT 的运算符时,不支持此操作。

When a UNIQUE or DISTINCT operator is being used in a query, all sort keys must be present in the output rows to determine the true order.

Revise the statement to follow this rule.

当查询中使用 UNIQUE 或 DISTINCT 的运算符时,所有排序键必须出现在输出行中,以确定真正的顺序。修改语句以遵循这一规则。

-310 Table table-name already exists in database.

This statement tries to create a table with the name that is shown, but one with that name already exists. Only one table with a given name can exist in a single database. (In an ANSI-compliant database, the name of the user that created a table name qualifies it, so one table of a given name per user can exist.)此语句尝试创建一个表,该表的名称为所示,但该名称的表已经存在。在单个数据库中只能存在一个具有给定名称的表。(在符合 ANSI 标准的数据库中,创建表名的用户的名称可以对其进行限定,因此每个用户都可以存在一个给定名称的表。)Check the spelling of the name; if it is as you intended, and you are sure it should not exist, check that you are using the right database.

You can review the names of all tables in this database by querying systables as follows:检查名称的拼写;如果它是您想要的,并且您确定它不存在,请检查您正在使用正确的数据库。通过查询系统,可以查看此数据库中所有表的名称,如下所示:SELECT tabname FROM systables WHERE tabid > 99 This statement will display only names of permanent tables, not temporary tables. Temporary tables do not appear in systables. If the name does not appear, end your database session and start a new one.

Temporary tables will be dropped.

此语句只显示永久表的名称,而不显示临时表的名称。临时表不出现在 systables 中。

如果名称未出现,则结束数据库会话并启动新会话。临时表将被删除。

-311 Cannot open system catalog table-name.

The database server cannot access one of the tables in the system catalog. Check the accompanying ISAM error code for detailed information, and look for operating-system error messages that might give more information.

数据库服务器无法访问系统目录中的一个表。检查附带的 ISAM 错误代码以获得详细信息,并查找可能提供更多信息的操作系统错误消息。

-312 Cannot update system catalog table-name.

The database server cannot record a change in the system-catalog table. Check the accompanying ISAM error code for more detailed information. Insufficient disk space is a common cause of this error.

数据库服务器无法在系统目录表中记录更改。有关更详细的信息,请查看附带的 ISAM错误代码。磁盘空间不足是造成此错误的一个常见原因。

-313 Not owner of table.

This statement tries to do something, such as dropping a table, that only the owner of the table or a user who has Database Administrator privileges can do. Check that the statement names the table you intended. If it does, you will have to get its owner or a DBA to execute this statement. To find out who to contact, you can query the system catalog as follows:此语句试图执行只有表所有者或具有数据库管理员权限的用户才能执行的操作,例如删除表。检查语句是否为您想要的表命名。如果是这样的话,您必须让它的所有者或 DBA来执行这个语句。要找出与谁联系,您可以查询系统目录,如下所示:SELECT tabname, owner FROM systables WHERE tabid > 99;SELECT username FROM sysusers WHERE usertype = 'D'-314 Table table-name currently in use.

This statement tries to do something, such as dropping a table, that cannot be done while another user is using the table. Wait a short time, and try again. To ensure that no table is in use, open the database with DATABASE EXCLUSIVE.

此语句试图执行一些操作,例如删除表,而其他用户在使用该表时无法执行这些操作。

等一会儿,再试一次。若要确保没有使用表,请使用 DATABASE EXCLUSIVE 打开数据库。

-315 No create index permission.

This statement tries to create an index for a table. Either you do not have INDEX privilege on this table, or the table itself is a view or synonym. If the table that is named really is a table, contact the owner of the table or a database administrator (see the discussion of error -313) and ask to be granted this privilege.

此语句试图为表创建索引。您可以在此表上没有索引权限,或者表本身是视图或同义词。

如果命名的表确实是表,请与表的所有者或数据库管理员联系(请参阅对 Error-313的讨论),并请求授予此权限。

-316 Index already exists in database.

This statement tries to create an index with the name shown, but an index of that name already exists. Only one index of a given name can exist in a single database.

此语句尝试创建一个具有所示名称的索引,但该名称的索引已经存在。在单个数据库中只能存在一个给定名称的索引。

Check the spelling of the name. If it is as you intended, and you are sure it should not exist, make sure you are using the right database. To review the names of all indexes and their owners, join systables and sysindexes as follows:请检查名称的拼写。如果它是您想要的,并且您确定它不应该存在,请确保您使用的是正确的数据库。要查看所有索引及其所有者的名称,请按以下方式加入系统索引和系统索引:SELECT T.tabname, I.idxname, I.owner FROM systables T, sysindexes I WHERE I.tabid = T.tabid AND T.tabid > 99-317 The statement failed becuase you must have the same number of selected columns in each UNION, INTERSECT, or MINUS query.

All rows that are produced in a union, intersect or minus must have the same format, so each SELECT statement in the union, intersect or minus must select the same number of columns. In this union, intersect or minus, one of the second or subsequent SELECT statements does not list the same number of columns as the preceding one. Review the entire union, intersect or minus, and check that all select lists are alike in number and data type. If no appropriate column exists for one of the statements, specify a literal value of the appropriate type at that position. For example, where you need to match a numeric column, specify a literal zero.

在 union、intersect 或 minus 中生成的所有行都必须具有相同的格式,因此,union、intersect 或 minus 中的每个 SELECT 语句都必须选择相同的列数。在此合并中,第二个或随后的 SELECT 语句中的一个不列出与前一个相同的列数。检查整个union、intersect 或 minus ,并检查所有选择列表在数量和数据类型上是否相同。如果其中一条语句不存在适当的列,则在该位置指定适当类型的文字值。例如,在需要匹配数字列的地方,指定一个文字零。

-318 File with the same name as specified log file already exists.

The transaction log file you specify in the WITH LOG IN clause cannot already exist. The database server must start a new log file; it cannot append log data to an old log file. An existing log file contains recovery information that might be crucial, so it does not simply empty an existing file. To begin logging for a database that has not been logged before, lock the database, copy all of the database directory to a backup medium, and use the START DATABASE statement to name a new file. To make a partial archive subsequently, lock the database, copy the log file to a backup medium and store it with the full archive,erase or rename the log file, and use the START DATABASE statement.

您在 WITH LOG IN 子句中指定的事务日志文件无法存在。数据库服务器必须启动新的日志文件;它不能将日志数据追加到旧日志文件。现有日志文件包含可能至关重要的恢复信息,因此它不会简单地清空现有文件。若要开始对以前未记录的数据库进行日志记录,请锁定数据库,将所有数据库目录复制到备份介质中,并使用 START DATABASE 语句命名新文件。若要随后创建部分存档,请锁定数据库,将日志文件复制到备份介质中,并将其与完整存档一起存储,擦除或重命名日志文件,并使用 START DATABASE 语句。

-319 Index does not exist.

This statement refers to an index that does not exist. Review the spelling of the index name; if it is as you intended, and you are sure it should exist, make sure you are using the right database.

此语句引用不存在的索引。检查索引名的拼写;如果它是您想要的,并且您确定它应该存在,请确保您使用的是正确的数据库。

In an ANSI-compliant database, an index that you do not own must be qualified with its owner's name. See the discussion of error -316 for a way to check the names and owners of all indexes.

在符合 ANSI 标准的数据库中,您不拥有的索引必须与其所有者的名称相限定。有关检查所有索引的名称和所有者的方法,请参见对 Error-316 的讨论。

-319 Index does not exist in ISAM file.

This statement refers to an index that does not exist. (The reference to an ISAM file is not relevant; ignore it.) Review the spelling of the index name; if it is as you intended, and you are sure it should exist,make sure you are using the right database.

此语句引用不存在的索引。(对 ISAM 文件的引用与此无关;忽略它。)检查索引名的拼写;如果它是您想要的,并且您确定它应该存在,请确保您使用的是正确的数据库。

In an ANSI-compliant database, an index that you do not own must be qualified with its owner's name. See the discussion of error -316 for a way to check the names and owners of all indexes.

在符合 ANSI 标准的数据库中,您不拥有的索引必须与其所有者的名称相限定。有关检查所有索引的名称和所有者的方法,请参见对 Error-316 的讨论。

-320 Not owner of index.

This statement tries to do something, such as dropping an index, that only the owner of the index or a user who has Database Administrator privileges can do. Check that the statement names the index that you intended. If it does, you will have to get its owner or a DBA to execute this statement. See the discussion of error -316 for a way to list the names and owners of indexes.

此语句试图执行只有索引所有者或具有数据库管理员权限的用户才能执行的操作,例如删除索引。检查语句是否命名了您想要的索引。如果是这样的话,您必须让它的所有者或DBA 来执行这个语句。有关列出索引名称和所有者的方法,请参见对 Error-316 的讨论。

-321 Cannot group by aggregate column.

The GROUP BY clause in this statement refers to a selected value that is an aggregate function. This action is not supported. (It does not make sense to group rows using a value that cannot be computed until the group has been formed.) You can group rows by the value of columns or expressions on columns, but the expressions cannot include aggregate functions. Review the GROUP BY clause, and compare it to the select list. Possibly one of the column numbers in the GROUP BY clause is incorrect.

此语句中的 GROUP BY 子句引用一个选定的值,该值是一个聚合函数。不支持此操作。

(使用在组形成之前无法计算的值对行进行分组是没有意义的。)可以根据列或列上的表达式的值对行进行分组,但表达式不能包括聚合函数。检查 GROUP BY 子句,并将其与选择列表进行比较。 GROUP BY 子句中的一个列号可能不正确。

-322 Cannot Alter view, Rename view or Create a trigger on a view.

Consider creating the trigger on the base table of the view or create a table with the same schema as the view and then define the trigger on the table.

考虑在视图的基表上创建触发器,或者使用与视图相同的架构创建表,然后在表上定义触发器。

You can also receive this message if you issue the START VIOLATIONS TABLE statement or the STOP VIOLATIONS TABLE statement for a view. You must specify the name of a base table in both of these statements.

如果为视图发出“ START VIOLATIONS TABLE ”语句或“ STOP VIOLATIONS TABLE ”语句,也可以收到此消息。必须在这两个语句中指定基表的名称。

-323 Cannot grant permission on temporary table.

This GRANT statement names a temporary table. That action is not supported. Privileges are recorded only for permanent tables. Because temporary tables are not recorded in the system catalogs, no place exists to record privileges on them. Only the person who creates a temporary table can access it.

此 GRANT 语句指定一个临时表。这一没有得到支持。权限只记录在永久表中。由于临时表没有记录在系统目录中,因此不存在记录它们的权限的位置。只有创建临时表的人才能访问它。

-324 Ambiguous column column-name.

The column name appears in more than one of the tables that are listed in the FROM clause of this query. The database server needs to know which columns to use. Revise the statement so that this name is prefixed by the name of its table (table-name.column) wherever it appears in the query. If the statement becomes unwieldy, give the table a shorter alias name in the FROM clause (see the discussion of error-316 for an example).

列名出现在此查询的 FROM 子句中列出的多个表中。数据库服务器需要知道要使用哪些列。

修改该语句,以便该名称以其表的名称(table-name.column)作为前缀,无论它出现在查询中的哪个位置。如果语句变得难以处理,请在 FROM 子句中为表提供一个较短的别名(请参见对 Error-316 的讨论作为示例)。

-325 Filename must be specified with a full path name.

This error occurs if you attempt to create a table using the WITH LOG IN clause but do not specify a complete path to the log file. This error can also occur if you use GBase 8s SE to create database logging but do not specify the full path of the log file. Make sure to specify a full pathname, including the name of the log file, where the log file will reside.

如果试图使用 WITH LOGIN IN 子句创建表,但未指定日志文件的完整路径,则会发生此错误。如果使用 GBase 8s SE 创建数据库日志记录,但不指定日志文件的完整路径,也会发生此错误。确保指定完整的路径名,包括日志文件的名称,日志文件将驻留在其中。

-326 Referential constraint has too many referenced columns.

The specified referential constraint has more than 16 columns (or 8 in GBase 8s SE).

指定的引用约束有超过 16 列(或 GBase 8s SE 中的 8 列)。

-327 Cannot unlock table table-name within a transaction.

The statement UNLOCK TABLE is not allowed within a transaction, that is, following the execution of BEGIN WORK. You can still use LOCK TABLE when you use transactions, but the table will be unlocked automatically when the transaction ends. All locks are released at the end of a transaction. In an ANSI-compliant database, BEGIN WORK is not used, a transaction is always in effect, and the UNLOCK TABLE statement is never used.

在事务中不允许使用 UNLOCK TABLE 语句,即在 BEGIN WORK 执行之后。在使用事务时,仍然可以使用 LOCK TABLE ,但事务结束时,表将自动解锁。所有锁都在事务结束时释放。

在符合 ANSI 标准的数据库中,“ BEGIN WORK ”不被使用,事务始终有效,并且永远不使用“UNLOCK TABLE ”语句。

-328 Column column-name already exists in table.

This statement tries to add the column shown, but one with that name already exists. Check the spelling of the name; if it is as you intended, then the table is not arranged as you expected it to be. You can review the names of all the columns in a table by querying syscolumns. Supply a table-name in the following query:此语句尝试添加显示的列,但具有该名称的列已经存在。检查名称的拼写;如果它是您想要的,那么该表的排列不像您所期望的那样。您可以通过查询系统列来查看表中所有列的名称。在以下查询中提供表名:SELECT colname, colno FROM syscolumns C, systables T WHERE C.tabid = T.tabid AND T.tabname = 'table-name'You can use RENAME COLUMN to change column names.

您可以使用 RENAME COLUMN 来改变列名。

-329 Database not found or no system permission.

The database you tried to open is not visible to the database server.

Check the spelling of the name. Possibly the database is located in a different database server (or network system), and you have omitted to specify the server name (or site name) with the database name. If you are sure the database should exist just as you spelled it, your next step depends on the database server you are using.

您试图打开的数据库对数据库服务器不可见。检查名字的拼写。数据库可能位于不同的数据库服务器(或网络系统)中,而且您忽略了用数据库名称指定服务器名称(或站点名称)。如果您确信数据库应该像您拼写的那样存在,那么下一步取决于您使用的数据库服务器。

If you are using GBase 8s SE, the visible databases are directories with names in the form dbname.dbs. You must be able to read from and write to them. The database server looks first in the current working directory and then in each directory named in the DBPATH environment variable. The most common cause of this error is an incorrect setting or no setting for the DBPATH environment variable.

如果您正在使用 GBase 8s SE,可见的数据库是带有 dbname.dbs 形式名称的目录。您必须能够对它们进行读取和写入。数据库服务器首先在当前工作目录中查找,然后在 DBPATH 环境变量中命名的每个目录中查找。造成此错误的最常见原因是 DBPATH 环境变量的设置不正确或没有设置。

If you are using GBase 8s Dynamic Server, GBase 8s Universal Server, or GBase 8s OnLine Dynamic Server, the database does not exist as you spelled it.

In some environments, two or more instances of the database server can run at once and each instance has its own collection of databases.

如果您使用的是 GBase 8s Dynamic Server、GBase 8s Universal Server 或 GBase 8s OnLine Dynamic Server ,则数据库不像您拼写的那样存在。在某些环境中,数据库服务器的两个或多个实例可以同时运行,每个实例都有自己的数据库集合。

If you are connected to a secondary database server, the database you tried to open might exist, but is not logged. Databases are required to be logged to be able to access them on secondary database servers.

如果连接到辅助数据库服务器,则尝试打开的数据库可能存在,但未记录。需要记录数据库才能在辅助数据库服务器上访问它们。

-330 Cannot create or rename the database.

Possibly you tried to create a database with the same name as one that already exists or rename a database to a name that already exists; if so, choose a different name. Otherwise, check the accompanying ISAM error code for more detailed information on the cause. Possibly a shortage of disk space or a problem with file permissions exists.

您可能尝试创建与已经存在的数据库同名的数据库,或者将数据库重命名为已存在的名称;如果是,请选择不同的名称。否则,请查看附带的 ISAM 错误代码,以获得有关原因的更详细信息。可能存在磁盘空间不足或文件权限问题。

-331 Cannot drop database directory.

While the database server was executing the DROP DATABASE statement, it removed all database-related files from the dbname.dbs directory and tried to remove the directory itself, but an error occurred. Check the accompanying ISAM error code for more detailed information on the cause. The most likely cause is that you or another user created nondatabase files in the same directory, and the directory cannot be removed because it is not yet empty.

当数据库服务器执行 DROP DATABASE 语句时,它从 dbname.dbs 目录中删除了所有与数据库相关的文件,并试图删除目录本身,但发生了错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。最有可能的原因是您或其他用户在同一个目录中创建了非数据库文件,并且该目录无法删除,因为该目录尚未为空。

-332 Cannot access audit trail name information.

An error occurred while reading the audit-trail file. Re-execute the latest statement; if the error recurs, the audit-trail file is corrupt.

In that case you will need to drop and restart the audit.

读取审计跟踪文件时出错。重新执行最新的语句;如果错误再次发生,审计跟踪文件就会损坏。在这种情况下,您将需要删除并重新启动审计。

-333 The audit trail file already exists with a different name.

Before you start a new audit trail, you must drop an existing one. Use the DROP AUDIT statement.

在开始新的审计跟踪之前,必须删除现有的跟踪。使用 DROP AUDIT 语句。

-334 Cannot create audit trail.

Some problem prevents the database server from initializing the audit-trail file. Check that you specified a complete, correct pathname for the file. Look for operating-system error messages that might give more information. Common problems include a lack of disk space and file-permission problems.

有些问题阻止数据库服务器初始化审计跟踪文件。检查是否为文件指定了完整、正确的路径名。查找可能提供更多信息的操作系统错误消息。常见的问题包括缺乏磁盘空间和文件权限问题。

-335 There is no audit trail for the specified table.

This statement requires an audit trail to work, but no current audit trail exists for the table. Either none was ever started, or it was dropped. Check that you specified the table you intended. In a recovery situation (the statement was RECOVER TABLE), check that the table has just been restored from a backup copy. If so, the table did not have an audit trail at the time that this backup was made. If an audit trail was specified later, an unknown period remains between the backup and the start of auditing during which unaudited updates might have been made.

此语句要求审计跟踪才能工作,但该表不存在当前的审计跟踪。要么从来没有启动过,要么就被删除了。检查是否指定了您想要的表。在恢复情况下(语句是 RECOVER TABLE ),检查表是否刚刚从备份副本中恢复。如果是这样的话,在进行此备份时,该表没有审计跟踪。如果稍后指定了审计跟踪,则备份和审计开始之间仍有一个未知的时间段,在此期间可能进行了未经审核的更新。

-336 Cannot create or drop audit on a temporary table table-name.

Temporary tables cannot be audited. The commands regarding audit trails will not accept the names of temporary tables. If you did not intend to name a temporary table, check the spelling of the table table-name. See the discussion of error -313 for a way to display the names of all permanent tables in the database.

临时表无法审核。有关审计跟踪的命令将不接受临时表的名称。如果不打算命名临时表,请检查表名的拼写。有关显示数据库中所有永久表的名称的方法,请参见对 Error-313的讨论。

-337 Cannot create view on temporary table table-name.

Views can be created only on permanent tables. The SELECT statement that defines the view in this latest statement contains the name of the temporary table, table-name. If you did not intend to name a temporary table, check the spelling of table-name. See the discussion of error -313 for a way to display the names of all permanent tables in the database.

视图只能在永久表上创建。在这个最新语句中定义视图的 SELECT 语句包含临时表的名称,即表名。如果不打算命名临时表,请检查表名的拼写。有关显示数据库中所有永久表的名称的方法,请参见对 Error-313 的讨论。

-338 Cannot drop audit trail.

An unexpected error occurred during the execution of a DROP AUDIT statement. Check the accompanying ISAM error code for more detailed information.

在执行 DROP AUDIT 语句时发生意外错误。有关更详细的信息,请查看附带的 ISAM 错误代码。

-339 The audit trail file name must be given in full directory path.

The audit-trail file that is specified in the CREATE AUDIT statement requires a full directory path. Because it is not required to be in a particular directory, the database server cannot use the current directory or the DBPATH variable to search for it.

CREATE AUDIT 语句中指定的审计跟踪文件需要一个完整的目录路径。因为它不需要在特定目录中,所以数据库服务器不能使用当前目录或 DBPATH 变量来搜索它。

-340 Cannot open audit trail file.

The database server needs to use the audit-trail file for this table,but some unexpected problem prevents it. Likely causes include hardware errors, file-permission problems, or the accidental erasure of the file. Look for operating-system error messages that might give more information.

数据库服务器需要对此表使用审计跟踪文件,但是一些意外的问题阻止了它。可能的原因包括硬件错误、文件权限问题或文件意外擦除。查找可能提供更多信息的操作系统错误消息。

-341 Could not read a row from audit trail file.

The database server encountered an unexpected error while it was reading the audit trail for this table. Likely causes of the error include file-permission problems and hardware errors. Look for operating-system error messages that might give more information.

数据库服务器在读取此表的审计跟踪时遇到意外错误。可能导致错误的原因包括文件权限问题和硬件错误。查找可能提供更多信息的操作系统错误消息。

-342 Remote host cannot execute statement.

This statement was sent to a database server in a different system for execution. However, that database server does not support the requested function, possibly because it is an earlier version.

此语句被发送到另一个系统中的数据库服务器以供执行。但是,该数据库服务器不支持请求的函数,可能是因为它是早期版本。

-343 Row from audit trail was added to a different position than expected.

While the database server was reconstructing a table from the audit trail, it found a discrepancy between the position of an inserted row now and the position that was recorded in the audit trail when the row was first inserted. Either the audit-trail file has been corrupted, or the audit-trail file is incomplete, with missing records for some alterations. The table cannot be recovered as it stands. Try the operation again after you make sure that the table has been restored to exactly the same state as when the audit trail was created. If the error recurs, rebuild the table by other means.

当数据库服务器从审计跟踪重构表时,它发现插入行的位置与第一次插入行时记录在审计跟踪中的位置之间存在差异。要么 audit-trail 文件已损坏,要么 audit-trail 文件不完整,有些更改缺少记录。这张表不能恢复原状。在确保表已恢复到与创建审计跟踪时完全相同的状态后,再次尝试操作。如果错误再次发生,请通过其他方法重新构建表。

-344 Cannot delete row - row in table does not match row in audit trail.

While the database server was reconstructing a table from the audit trail, it found a discrepancy between the position of a deleted row now and the position that was recorded in the audit trail when the row was first deleted. Either the audit-trail file has been corrupted, or the audit-trail file is incomplete, with missing records for some alterations. The table cannot be recovered as it stands. Try the operation again after you make sure that the table has been restored to exactly the same state as when the audit trail was created. If the error recurs, rebuild the table by other means.

当数据库服务器从审计跟踪重构表时,它发现插入行的位置与第一次删除行时记录在审计跟踪中的位置之间存在差异。要么 audit-trail 文件已损坏,要么 audit-trail 文件不完整,有些更改缺少记录。这张表不能恢复原状。在确保表已恢复到与创建审计跟踪时完全相同的状态后,再次尝试操作。如果错误再次发生,请通过其他方法重新构建表。

-345 Cannot update row - row in table does not match row in audit trail.

While the database server was reconstructing a table from the audit trail, it found a discrepancy between the contents of an updated row now and the contents that were recorded in the audit trail when the row was first updated. Either the audit-trail file has been corrupted, or the audit-trail file is incomplete, with missing records for some alterations. The table cannot be recovered as it stands. Try the operation again after you make sure that the table has been restored to exactly the state it had when the audit trail was created. If the error recurs, rebuild the table by other means.

当数据库服务器从审计跟踪重构表时,它发现更新行的内容与第一次更新行时记录在审计跟踪中的内容之间存在差异。要么审计跟踪文件已损坏,要么审计跟踪文件不完整,有些更改缺少记录。这张表不能恢复原状。在确保表已完全恢复到创建审计跟踪时的状态后,请再次尝试操作。如果错误再次发生,请通过其他方法重新构建表。

-346 Could not update a row in the table.

While the database server was processing an UPDATE, it received an unexpected error. Check the accompanying ISAM error code for more detailed information on the cause. Possible causes include hardware errors and locking conflicts.

当数据库服务器处理更新时,它收到了一个意外错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。可能的原因包括硬件错误和锁定冲突。

-347 Could not open table for exclusive access.

The database server cannot complete a LOCK TABLE statement or the implicit LOCK TABLE that must be performed as part of other statements that change the definition of a table (for example ALTER TABLE, RENAME,or CREATE INDEX). Check the accompanying ISAM error code for more detailed information on the cause. Possible causes include lock conflicts, a full lock table, or low-level problems with the host operating-system lock mechanism.

数据库服务器无法完成 LOCK TABLE 语句或必须作为更改表定义的其他语句的一部分执行的隐式 LOCK TABLE 语句(例如,ALTER TABLE、RENAME 或 CREATE INDEX )。有关原因的更详细信息,请参阅所附 ISAM 错误代码。可能的原因包括锁冲突、完全锁定表或主机操作系统锁定机制的低级别问题。

-348 Could not read a row from the table.

While the database server was trying to fetch a row from a table, it received an unexpected error. Check the accompanying ISAM error code for more detailed information on the cause. Possible causes include hardware errors and lock conflicts.

当数据库服务器试图从表中获取一行时,它收到了一个意外错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。可能的原因包括硬件错误和锁冲突。

-349 Database not selected yet.

This statement cannot be executed because no current database exists.

Either no current database has been established yet, or the current database was closed with a CLOSE DATABASE statement. You execute the DATABASE or CREATE DATABASE statement to establish a current database.

由于不存在当前数据库,因此无法执行此语句。要么尚未建立当前数据库,要么使用关闭数据库语句关闭了当前数据库。执行 DATABASE 或 CREATE DATABASE 语句以建立当前数据库。

-350 Index already exists on the column (or on the set of columns).

This CREATE INDEX statement cannot be executed because an index on the same column or combination of columns already exists. For a given collation order, at most two indexes can exist on any combination of columns, one ascending and one descending.

无法执行此 CREATE INDEX 语句,因为同一列上的索引或列的组合已经存在。对于给定的排序规则顺序,任何列组合最多都可以存在两个索引,一个是升序索引,另一个是降序索引。

To display the indexes on a particular table, join sysindices and systables. Supply table-name in the following statement:要在特定的表上显示索引,请将系统和系统连接起来。以下语句中的供应表名称:SELECT * FROM sysindices, systables WHERE sysindices.tabid = systables.tabid AND systables.tabname = 'table-name'-351 Database contains tables owned by other users.

This DROP DATABASE or UPDATE STATISTICS statement cannot be carried out for the reason shown. It might destroy the work of others. In order to drop this database, you must first drop all tables that other users own. To do so, you must have database administrator privilege. See the discussion of error -313 for a way to list the names of all tables with their owners.

由于所示原因,无法执行此 DROP DATABASE 或 UPDATE STATISTICS 语句。它可能会破坏别人的工作。为了删除此数据库,必须首先删除其他用户拥有的所有表。为此,您必须拥有数据库管理员权限。请参阅对 Error-313 的讨论,以获得向其所有者列出所有表的名称的方法。

-352 Column column-name not found.

The column, or one of the columns, named in this CREATE INDEX statement does not exist. Review the spellings of all columns in the statement.

See the discussion of error -328 for a way to list all column names in a table.

此 CREATE INDEX 语句中命名的列或其中一个列不存在。检查语句中所有列的拼写。有关在表中列出所有列名的方法,请参见对 Error-328 的讨论。

-353 No table or view specified when granting/revoking privileges.

This statement specifies one of the table-level privileges (ALTER,DELETE, INDEX, INSERT, SELECT, UPDATE, and ALL) but does not specify the table to which the privilege applies. When you grant or revoke a database-level privilege (CONNECT, DBA, RESOURCE), you cannot name a table, but when you grant or revoke a table-level privilege you must name a table.

此语句指定一个表级特权(ALTER、DELETE、INDEX、INSERT、SELECT、UPDATE 和 ALL),但没有指定特权应用到的表。当您授予或撤销数据库级权限(CONNECT,DBA,RESOURCE)时,您不能命名一个表,但是当您授予或撤销一个表级特权时,您必须命名一个表。

-354 Incorrect database or cursor name format.

This statement contains the name of a database or a cursor in some invalid format. If the statement is part of a program, the name might have been passed in a host variable.

此语句以某种无效格式包含数据库或游标的名称。如果语句是程序的一部分,名称可能是在主机变量中传递的。

The maximum length for database names and cursor names depends on the database server.

数据库名称和游标名称的最大长度取决于数据库服务器。

Both database and cursor names must begin with a letter and contain only letters, numbers, and underscore characters.

数据库名和游标名都必须以字母开头,并且只包含字母、数字和下划线字符。

In MS-DOS systems, filenames can be a maximum of 8 characters plus a 3-character extension.

在 MS-DOS 系统中,文件名最多可以是 8 个字符加上 3 个字符的扩展。

-355 Cannot rename file for table.

This RENAME statement cannot be completed because the database server got an unexpected error. Check the accompanying ISAM error code for more detailed information on the cause. Possible causes include hardware errors and file-permission problems.

此 RENAME 语句无法完成,因为数据库服务器收到意外错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。可能的原因包括硬件错误和文件权限问题。

-356 Data type of the referencing and referenced columns do not match.

The data types of the columns in the child constraint must be identical to those in the parent constraint.

子约束中列的数据类型必须与父约束中的数据类型相同。

-357 Dependent table for view view-name has been altered.

The view is based on data from a table that has been altered since the view was defined. The alteration removed or renamed a column that is used in the view. The view can no longer be used. Drop the view, and redefine it to use the current schema.

视图基于自定义视图以来已更改的表中的数据。更改移除或重命名视图中使用的列。视图不能再使用了。删除视图,并重新定义它以使用当前架构。

-358 Must close current database before CREATE, START or ROLLFORWARD.

These statements choose a new current database, but the present database must be closed first. Use the CLOSE DATABASE statement before this statement.

这些语句选择一个新的当前数据库,但必须首先关闭当前数据库。在此语句之前使用CLOSE DATABASE 语句。

-359 Cannot drop or rename the current database or any open database.

The database that is currently open cannot be dropped or renamed.

First use the CLOSE DATABASE statement or end the applications that access the database; then you can drop it.

当前打开的数据库不能删除或重命名。首先使用 CLOSE DATABASE 语句或结束访问数据库的应用程序,然后可以删除它。

-360 Cannot modify a table or view that is also used in subquery.

The UPDATE, INSERT, or DELETE statement uses data taken from the same table in a subquery.

UPDATE、INSERT 或者 DELETE 语句使用子查询中从同一表中获取的数据。

Because of the danger of entering an endless loop, this action is not allowed,except in the case of an uncorrelated subquery in the WHERE clause of the DELETE or UPDATE statement.

由于进入没完没了的循环的危险,此操作是不允许的,除非在 DELETE 或 UPDATE 语句的WHERE 子句中存在不相关的子查询。

To avoid this error, first select the input data into a temporary table, and then refer to the temporary table in a separate DELETE, UPDATE, or INSERT statement.

要避免此错误,首先将输入数据选择到临时表中,然后在单独的 DELETE、UPDATE 或INSERT 语句中引用临时表。

A subquery with a correlated column name cannot reference in its FROM clause the same table that an enclosing UPDATE or DELETE statement is modifying,as in the following example:具有关联列名的子查询不能在其 FROM 子句中引用封装 UPDATE 或 DELETE 语句所修改的表,如下例所示:database stores_demo;update orders set ship_charge = ship_charge + 2.00 where customer_num in(select new_order.customer_num from orders as new_order where orders.ship_weight < new_order.ship_weight);In an SPL routine, even an uncorrelated subquery is not allowed in a DELETE or UPDATE statement that modifies the same table that the FROM clause of the subquery specifies, as in the next example:在 SPL 例程中,在修改子查询的 FROM 子句指定的表的 DELETE 或 UPDATE 语句中,即使是不相关的子查询也是不允许的,如下例所示:database stores_demo;create procedure ship_count(customer_id integer)returning integer define shipcount integer;select count(*) into shipcount from orders where customer_id = orders.customer_num and ship_charge > 20;return shipcount;end procedure;update orders set ship_charge = ship_charge + 2.00 where customer_num in(select customer_num from customer where customer.state = 'CA'and ship_count(customer.customer_num) > 5);-361 Column size too large.

This internal error reflects a communications problem between the database server and the application. You should not see this error. If the error recurs, note all circumstances and contact GBase Technical Support.

这个内部错误反映了数据库服务器和应用程序之间的通信问题。您不应该看到此错误。

如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-362 Can have only one column of serial/(serial8 or bigserial) type.

A table can have at most only one column of type SERIAL and one column of type SERIAL8/BIGSERIAL. You are attempting to add a second column of type SERIAL or SERIAL8/BIGSERIAL, or you are attempting to create a table with more than one column of either type. If you intended to have a foreign key (that is, a column that refers to a SERIAL or SERIAL8/BIGSERIAL column in a different table), the data type of the column in this table should be INTEGER or INT8 or BIGINT.

表最多只能有一列类型为 SERIAL,一列为SERIAL 8/BIGSERIAL。您正在尝试添加第二列类型的 SERIAL 或 SERIAL 8/BIGSERIAL,或者您试图创建一个具有两种类型的多个列的表。如果您打算拥有一个外键(也就是说,一个列引用了另一个表中的 SERIAL 或SERIAL 8/BIGSERIAL 列),则该表中列的数据类型应该是 INTEGER 或 INT 8 或 BIGINT。

-363 CURSOR not on SELECT statement.

The cursor named in this statement (probably an OPEN) has been associated with a prepared statement that is not a SELECT statement.

Review the program logic, especially the DECLARE for the cursor, the statement id specified in it, and the PREPARE that set up that statement. If you intended to use a cursor with an INSERT statement,you can only do that when the INSERT statement is written as part of the DECLARE statement. If you intended to execute an SQL statement, do that directly with the EXECUTE statement, not indirectly through a cursor.

此语句中命名的游标(可能是打开的)已与非 SELECT 语句的准备语句相关联。检查程序逻辑,特别是游标的声明、其中指定的语句 id 以及设置该语句的准备。如果打算在INSERT 语句中使用游标,则只能在 INSERT 语句作为 DECLARE 语句的一部分写入INSERT 语句时才能这样做。如果您打算执行 SQL 语句,请直接使用 EXECUTE 语句,而不是通过游标间接执行。

This error is also returned when you attempt to associate a cursor with a SELECTINTO TEMP statement. Because of the INTO TEMP clause, the SELECT statement can return no rows and so cannot be used with a cursor.

当您尝试将游标与 SELECT INTO TEMP 语句关联时,也会返回此错误。由于 INTO TEMP子句,SELECT 语句不能返回任何行,因此不能与游标一起使用。

-364 Column column-name not declared for UPDATE OF.

This UPDATE...WHERE CURRENT OF cursor-name statement refers to at least one column that does not appear in the FOR UPDATE OF clause of the DECLARE statement that declared the cursor. Since specific columns were listed in the cursor declaration, the database server will not allow others to be updated. Review the declaration and the uses of this cursor. Perhaps the noted column, and others, should be added to the declaration, or perhaps the OF clause should be dropped, allowing the cursor to update any column in the table.

此 UPDATE...WHERE CURRENT OF cursor-name 语句引用至少一个列,该列未出现在声明游标的 DECLARE 语句的 FOR UPDATE OF 子句中。由于游标声明中列出了特定列,因此数据库服务器将不允许更新其他列。检查此游标的声明和用法。也许应该在声明中添加标记的列和其他列,或者应该删除 Of 子 句,允许游标更新表中的任何列。

-365 Cursor must be defined on simple SELECT for FOR UPDATE.

The cursor named in this statement (probably an OPEN statement) was declared with the FOR UPDATE clause. However, it has been associated with a SELECT statement that joins two or more tables or that uses UNIQUE, DISTINCT, GROUP BY, ORDER BY, FOR READ ONLY, INTO TEMP, or UNION, INTERSECT, or MINUS. Such a SELECT statement cannot be used in an update, because there is no way to distribute the new data back into the multiple tables.

Review the declaration of the cursor. If it is declared FOR statement id, also review the PREPARE statement that set up that statement. You might need two cursors, one for general queries and another specifically for updating.

查看光标的声明。如果它声明了 FOR 语句 ID,也检查设置了那个语句的 PREPARE语句。您可能需要两个游标,一个用于一般查询,另一个具体用于更新。

-366 The scale exceeds the maximum precision specified.

A problem exists with the precision or scale of a DECIMAL or a MONEY data type in this statement. Review all uses of these types. The first should be declared as DECIMAL(p) or DECIMAL(p,s) where p, the precision(total number of digits) is between 1 and 32, and s, the scale (number of digits to the right of the decimal point) is no greater than p. The MONEY type follows the same rules.

此语句中 DECIMAL 或 MONEY 数据类型的精度或比例存在问题。检查这些类型的所有用途。第一个应该声明为 DECIMAL(p) 或 DECIMAL(p,s),其中 p 的精度(数字总数)在1 到 32 之间,而 s,小数点右边的数字数)不大于 p 。MONEY 类型遵循同样的规则。

-367 Sums and averages cannot be computed for character columns.

This statement contains a use of the SUM or AVG function applied to a column that has a character data type (CHAR or VARCHAR). If you did not intend to take the sum or average of character strings, review the spelling of column names against the table definition. If a character column actually contains numeric values in character form, you can trick the database server into performing an automatic conversion.

Instead of applying the function to the column name alone, apply it to the expression in parentheses (column+0).

此语句包含应用于具有字符数据类型(CHAR 或 VARCHAR)的列的 SUM 或 AVG 函数的用法。如果不打算取字符串的和或平均值,请对照表定义检查列名的拼写。如果字符列实际上包含字符形式的数值,则可以欺骗数据库服务器执行自动转换。而不是仅将函数应用于列名,而是将其应用于括号中的表达式(column+0)。

-368 Incompatible sqlexec module.

The version of the database server does not agree with the version of the database library routines in the application program. This incompatibility must be resolved before the program can be executed.

The database server is selected through the SQLEXEC environment variable . It contains a complete pathname to the database server code, which is usually named sqlexec or sqlturbo . The access routines linked into the program were chosen when the program was compiled. If the program you are running was supplied by GBase 8s or GBase,then it or another GBase 8s product might have been installed incorrectly.

数据库服务器的版本与应用程序中数据库例程的版本不一致。在执行程序之前,必须解决此不兼容问题。数据库服务器是通过 SQL EXEC 环境变量选择的。它包含数据库服务器代码的完整路径名,通常命名为 sqlexec 或sqlturbo。在编译程序时,选择链接到程序的 访问例程。如果您正在运行的程序是由 GBase 8s 或 GBase 提供的,那么它或另一个 GBase 8s 产品可能安装错误。

-369 Invalid serial number. Consult your installation instructions.

Some error has been made in the installation of your GBase 8s products. Check the value in the SQLEXEC environment variable and GBS_HOME 、GBS_DATA environment variable; then consult the person who installed the software, and review the installation instructions.

在安装 GBase 8s 产品时出现了一些错误。检查 SQLEXEC 环境变量、 GBS_HOME 和 GBS_DATA 环境变量中的值;然后咨询安装软件的人员,并检查安装说明。

-370 Cannot drop last column.

This ALTER TABLE DROP statement would drop every column from the table. At least one column must be retained. Revise the statement to leave one column. Or if you do not want the table at all, use DROP TABLE to remove it.

此 ALTER TABLE DROP 语句将删除表中的每一列。必须保留至少一列。修改语句以保留一栏。或者,如果根本不想要该表,请使用 DROPTABLE 删除它。

-371 Cannot create unique index on column with duplicate data.

This CREATE UNIQUE INDEX statement cannot be completed because the column (or columns) contains one or more duplicate rows. You can either create an ordinary index, accepting the duplicate values, or you can modify the table to remove the duplicates. To get a list of the duplicate values in a single column, first create the ordinary index.

Then use a SELECT statement such as the following, filling in the table and column names:由于列(或多列)包含一个或多个重复行,因此无法完成此创建唯一索引语句。您可以创建一个普通索引,接受重复值,也可以修改表以删除重复值。若要获取单个列中重复值的列表,请首先创建普通索引。然后使用 SELECT 语句,如以下所示,填充表名和列名:SELECT column FROM table main WHERE 1 < ( SELECT COUNT(*) FROM table sub WHERE main.column = sub.column )This statement can be extended to handle the case of multiple columns using AND.

此语句可扩展为处理使用 AND 的多个列的情况。

-372 Cannot alter table with audit trail on.

Once an audit trail has been started for a table, the table should not be altered. If you must alter the table, do the following. Copy the table to a backup medium. Use DROP AUDIT to remove the audit trail.

Delete the audit-trail file. Alter the table. Again, copy the table to a backup medium. Finally, use CREATE AUDIT to start a new audit trail.

The first backup is needed to restore the table if a failure occurs while the table is being altered (a lengthy, disk-intensive procedure if the table is large). The second backup is required because, if the table has to be recovered later, the new audit trail must be applied against a backup that has the same layout of columns.

一旦对表启动了审计跟踪,就不应该更改表。如果必须更改表,请执行以下操作。将表复制到备份介质。使用 DROP AUDIT 删除审核跟踪。删除审计跟踪文件。修改表。同样,将表复制到备份介质中。最后,使用 CREATE AUDIT 启动新的审计跟踪。如果表正在更改时发生故障,则需要第一个备份来恢复表(如果表很大,则需要进行冗长的磁盘密集型过程)。需要进行第二个备份,因为如果以后必须恢复表,则必须对具有相同列布局的备份应用新的审计跟踪。

-373 A database or command script is inaccessible because a DBPATH entry is too long.

The database server cannot locate a database or command script using the DBPATH environment variable because one or more of the entries is too long.

No entry can exceed 128 bytes and the total number of entries cannot exceed 100. Entries specified beyond the 100th entry will be ignored.

数据库服务器无法使用 DBPATH 环境变量定位数据库或命令脚本,因为其中一个或多个条目太长。任何条目都不能超过 128 个字节,条目总数不能超过 100 个。在第 100 项之后指定的项将被忽略。

Reset the value of the DBPATH environment variable according to these rules.

根据这些规则重置DBPATH环境变量的值。

-374 Can only use column number in ORDER BY clause with UNION.

This query has both a UNION clause and an ORDER BY clause. In a union query, in which multiple SELECT statements exist and the names of the selected columns in each statement are not necessarily the same, you cannot use column names or expressions in the ORDER BY clause.

此查询具有 UNION 子句和 ORDER BY 子句。在存在多个 SELECT 语句且每个语句中所选列的名称不一定相同的联合查询中,不能在 ORDER BY 子句中使用列名或表达式。

Instead, you must use column position numbers, with 1 representing the first selected column, 2 representing the second, and so on. Rewrite the query to use only numbers in the ORDER BY clause.

相反,必须使用列位置号,其中 1 表示第一选定列,2 表示第二列,依此类推。重写查询,以便只使用 ORDER BY 子句中的数字。

-375 Cannot create log file for transaction.

While the database server was trying to execute a START statement, it got an unexpected error in trying to create the transaction-log file.

Check the accompanying ISAM error code for more detailed information on the cause. Typical causes include a shortage of disk space, file permission problems, or a limit on the number of open files.

当数据库服务器试图执行一个 START 语句时,它在尝试创建事务日志文件时出现了一个意外错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。典型原因包括磁盘空间不足、文件权限问题或对打开文件数量的限制。

-376 Log file already exists.

The transaction log file you specify in the WITH LOG IN clause must not already exist. The database server must start a log file fresh; it has no means of appending log data to an old log file. An existing log file contains recovery information that may be crucial, so it will not simply empty an existing file. To make a full backup, lock the database, copy all of the database directory to a backup medium, erase the log file (it is no longer needed), and use the START DATABASE statement. To make a partial backup, lock the database, copy the log file to a backup medium and store it with the full backup, erase or rename the log file, and use the START DATABASE statement.

在 WITH LOGIN IN 子句中指定的事务日志文件必须不存在。数据库服务器必须重新启动日志文件;它没有将日志数据附加到旧日志文件的方法。现有日志文件包含可能至关重要的恢复信息,因此它不会简单地清空现有文件。要进行完全备份,请锁定数据库,将所有数据库目录复制到备份介质中,删除日志文件(不再需要日志文件),并使用 START DATABASE 语句。若要进行部分备份,请锁定数据库,将日志文件复制到备份介质中,并将其与完整备份一起存储,擦除或重命名日志文件,并使用 START DATABASE 语句。

-377 Must terminate transaction before closing database.

This statement (DATABASE, CREATE DATABASE, or CLOSE DATABASE) cannot be executed until the current transaction is finished.

在当前事务完成之前,不能执行此语句(DATABASE, CREATE DATABASE, 或 CLOSE DATABASE)。

Use either COMMIT WORK or ROLLBACK WORK and then close the database.

使用 COMMIT WORK 或 ROLLBACK WORK ,然后关闭数据库。

If you export a database and then import it, large-object handles (for images) will be different after you import the database. Therefore, if you use static html references for images and export the database and then import it, you will have to determine the new large-object handle for each static html reference.

如果您导出了一个数据库,然后导入它,那么导入数据库之后,大对象句柄(对于图像)就会有所不同。因此,如果对图像使用静态 html 引用并导出数据库,然后导入数据库,则必须为每个静态 html 引用确定新的大对象句柄。

-378 Record currently locked by another user.

A row of a table that this statement needs is not accessible because it has been locked. Check the accompanying ISAM error code for more detailed information. It will probably be -107, -113, -134, -143, -144,or -154. Each notes a slightly different relationship between your program and the other user's program. You can prevent most, but not all, occurrences of this error with SET LOCK MODE TO WAIT.

由于已锁定该语句所需的表行,因此无法访问它。有关更详细的信息,请查看附带的ISAM 错误代码。可能是 -107,-113,-134,-143,-144,或 -154。每个记录都显示出您的程序与其他用户的程序之间的关系略有不同。使用 SET LOCK MODE TO WAIT 可以防止大多数(但不是全部)出现此错误。

-379 Cannot revoke privilege on columns.

In the GRANT statement, you can grant UPDATE or SELECT privilege on specific columns. However, the REVOKE statement accepts only the keywords for the type of privilege; you cannot revoke access to specific columns. If you want to change the columns allowed to a certain user, you must first REVOKE the privilege in full, then GRANT it on the new list of columns.

在 GRANT 语句中,可以对特定列授予 UPDATE 或 SELECT 权限。但是, REVOKE 语句只接受权限类型的关键字;不能撤消对特定列的访问。如果要更改允许给某个用户的列,必须首先完全取消权限,然后在新的列表上授予它。

-380 Cannot erase log file.

The database server, while trying to initialize a transaction log file,received an unexpected error. Check the accompanying ISAM error code for more detailed information on the cause. Typical causes include hardware errors and file permission problems.

数据库服务器在尝试初始化事务日志文件时收到意外错误。有关原因的更详细信息,请参阅所附 ISAM 错误代码。典型原因包括硬件错误和文件权限问题。

-381 Cannot grant to someone who has granted you the same privilege before.

The privilege you are trying to grant is one that was first granted to you WITH GRANT OPTION. The user who made that grant is among the list of users in this present statement. For security reasons, you may not do a reciprocal grant. Rewrite the statement leaving out the name of your original patron. To see a list of the users to whom you may not grant, query systabauth as follows:您试图授予的权限是首次授予您的 WITH GRANT OPTION。赋予该授权的用户是当前声明中的用户名单之一。出于安全考虑,您不能进行相互授权。重写声明,去掉原来给你授权者的名字。若要查看不可授予的用户列表,请按以下方式查询 systabauth :SELECT grantor FROM systabauth WHERE grantee = USER-382 Same number of columns must be specified for view and select clause.

In this VIEW statement, you have listed the names of the columns of the view. However, their number is different from the number of columns in the SELECT statement for the view. Check the punctuation of the two lists, and make sure that you have supplied a name for each item in the select list.

在此视图语句中,您列出了视图的列的名称。但是,它们的数目与视图的 SELECT 语句中的列数不同。检查两个列表的标点符号,并确保为选择列表中的每个项目提供了名称。

-383 Need to specify view column names in the view definition.

In this VIEW statement, you have not listed specific names for columns.

That action is allowed when the SELECT statement selects only simple,named columns. However, the SELECT statement here selects one or more expressions. You must give names to these columns in a parenthesized list that follows the name of the view. Because you cannot give names for only some of the columns, you must list names for all.

在此 VIEW 语句中,您尚未列出列的特定名称。如果 SELECT 语句只选择简单的已命名的列,则允许执行此操作。但是,这里的 SELECT 语句选择一个或多个表达式。必须在视图名称后面的括号列表中为这些列指定名称。因为不能只为某些列指定名称,所以必须列出所有列的名称。

-384 Cannot modify non simple view.

This statement attempts to modify (insert, delete, or update) rows in a view which does not have an appropriate INSTEAD OF trigger defined.

Without an INSTEAD OF trigger, this view is not modifiable because it is based on a SELECT statement that joins two or more tables or that selects calculated values or literal values. (You can DELETE from a view that selects from a single table even if some calculated values are selected.) Direct the statement against the actual table on which the view is based or define an INSTEAD OF trigger on the view to make it modifiable.

此语句试图修改(插入、删除或更新)视图中的行,该视图没有定义适当的 INSTEAD OF触发器。如果没有触发器,则此视图不可修改,因为它基于连接两个或多个表或选择计算值或文字值的 SELECT 语句。(即使选择了一些计算值,也可以从单个表中选择的视图中删除。)将语句指向视图所基于的实际表,或在视图上定义一个 INSTEAD OF 触发器,以使其可修改。

-385 Data value out of range.

This statement attempts to put data into a view that was defined WITH CHECK OPTION, so new data has to satisfy the tests in the WHERE clause in the view. However, one or more of the data values in this current statement does not meet that test, so the alteration was not performed.

Roll back the current transaction. To see what tests new data must satisfy, display the definition of the view, as follows:该语句试图将数据放入 WITH CHECK OPTION 定义的视图,因此新数据必须满足视图中WHERE 子句中的测试。但是,此当前语句中的一个或多个数据值不符合该测试,因此没有执行更改。回滚当前事务。要查看新数据必须满足哪些测试,请显示视图的定义,如下所示:SELECT seqno, viewtext FROM sysviews, systables WHERE systables.tabname = 'viewname'AND systables.tabid = sysviews.tabid ORDER BY seqno-386 Column contains null values.

This ALTER TABLE statement contains a MODIFY clause that assigns the NOT NULL attribute to an existing column. However, that column already contains one or more null values. The modification cannot be made until the null values have been deleted or updated to some nonnull value.

此 ALTER TABLE 语句包含一个修改子句,该子句将 NOT NULL 属性赋给现有列。但是,该列已经包含一个或多个空值。在空值被删除或更新为某个非空值之前,不能进行修改。

-387 No connect permission.

You cannot access the database that this statement requests because you have not been granted CONNECT privilege to it. Contact a person who has Database Administrator privilege to that database and ask to be granted CONNECT privileges to it.

您无法访问此语句请求的数据库,因为您没有被授予 CONNECT 权限。请与对该数据库具有数据库管理员权限的人联系,并请求授予该数据库 CONNECT 权限。

-388 No resource permission.

If you issued a CREATE TABLE, CREATE INDEX, or CREATE PROCEDURE statement, you cannot execute this statement because your account has not been granted the RESOURCE privilege for this database. You need the RESOURCE privilege to create permanent tables, indexes on permanent tables, and procedures.

如果发出 CREATE TABLE、CREATE INDEX 或 CREATE PROCEDURE 语句,则无法执行此语句,因为您的账户未被授予此数据库的 RESOURCE 权限。您需要 RESOURCE 权限来创建永久表、永久表的索引和存储过程。

If you issued a SET statement, START VIOLATIONS TABLE statement, or STOP VIOLATIONS TABLE statement, you cannot execute this statement because your account has not been granted the RESOURCE privilege for this database. You need the RESOURCE privilege to execute the SET statement for a constraint, trigger, or index defined on a table in the current database. You also need the RESOURCE privilege to execute the START VIOLATIONS TABLE or STOP VIOLATIONS TABLE statement on a base table in the current database.

如果发出 SET 语句、START VIOLATIONS TABLE 语句或 STOP VIOLATIONS TABLE 语句,则无法执行该语句,因为您的账户未被授予此数据库的 RESOURCE 特权。您需要RESOURCE 特权来为当前数据库中的表中定义的约束、触发器或索引执行 SET 语句。您还需要 RESOURCE 特权来在当前数据库中的基表上执行“START VIOLATIONS TABLE ”表或“STOP VIOLATIONS TABLE”语句。

To recover from this error, contact a person who has the DBA privilege on this database and ask to be granted the RESOURCE privilege for the database.

要从此错误中恢复,请与在此数据库上具有 DBA 权限的人员联系,并请求授予该数据库的 RESOURCE 权限。

-388 No resource permission.

To be included in the operating system group specified in DBCREATE_GRP,see your system administrator.

若要包含在 DBCREATE_GRP 中指定的操作系统组中,请参阅系统管理员。

-389 No DBA permission.

This statement cannot be executed because you have not been granted DBA privilege for this database. Contact a person who has DBA privilege for the database and ask to be granted DBA privilege (or simply ask to have this statement executed for you).

无法执行此语句,因为您尚未获得此数据库的 DBA 权限。与数据库中具有 DBA 权限的人联系,并请求授予 DBA 权限(或只要求为您执行此语句)。

It is also possible that you received this message because you tried to register a user-defined routine that is written in a language for which you do not have usage privilege. If you do not have usage privilege for the language, ask one of the following users to grant this privilege to you:user gbasedbt or another user who has been granted the privilege with the option to grant the privilege to other users.

也有可能您收到此消息是因为您试图注册一个用户定义的例程,该例程是用您没有使用权限的语言编写的。如果您没有该语言的使用权限,请让下列用户之一将此权限授予您:gbasedbt 用户或其他已被授予该权限的用户,并可选择将该权限授予其他用户。

-390 Synonym already used as table name or synonym.

This CREATE SYNONYM statement names a synonym that is already in use.

To see all the synonym and table names currently defined, query systables as follows:这个 CREATE 同义词语句命名了一个已经在使用的同义词。要查看当前定义的所有同义词和表名,请按以下方式查询系统:SELECT tabname, owner FROM systables WHERE tabid > 99-391 Cannot insert a null into column column-name.

This statement tries to put a null value in the noted column. However,that column has been defined as NOT NULL. Roll back the current transaction. If this is a program, review the definition of the table,and change the program logic to not use null values for columns that cannot accept them.

此语句试图在标记的列中放置一个空值。但是,该列被定义为 NOT NULL 。回滚当前事务。如果这是一个程序,请检查表的定义,并将程序逻辑更改为不对不能接受它们的列使用空值。

-392 System error - unexpected null pointer encountered.

This internal error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

不应发生此内部错误。如果错误再次发生,请注意所有情况,并与 GBase 8s 技术支持部门联系。

-393 A condition in the where clause results in a two-sided outer join.

This query requests an outer join, but one or more conditions in the WHERE clause interfere with the dominant-subordinate relationships between the joined tables in the FROM clause.

此查询请求外部联接,但 WHERE 子句中的一个或多个条件干扰 FROM 子句中联接表之间的主导-从属关系。

Review the query, and verify that every condition that relates the joined tables is actually necessary and semantically correct.

检查查询,并验证与联接表相关的每个条件实际上是必要的,并且在语义上是正确的。

If an expression in the WHERE clause relates two subordinate tables, you must use parentheses around the joined tables in the FROM clause to enforce dominant-subordinate relationships. (Note: You cannot put a parenthesis directly after the FROM keyword.) The following example successfully returns a result:如果 WHERE 子句中的表达式涉及两个从属表,则必须在 FROM 子句中的联接表周围使用括号来强制执行主导-从属关系。(注意:不能将括号直接放在 FROM 关键字后面。)以下示例成功返回结果:SELECT c.company, o.order_date, i.total_price, m.manu_name FROM customer c, OUTER (orders o, OUTER (items i, OUTER manufact m))WHERE c.customer_num = o.customer_num AND o.order_num = i.order_num AND i.manu_code = m.manu_code;If you omit parentheses around the subordinate tables in the FROM clause,you must establish join conditions, or relationships, between the dominant table and each subordinate table in the WHERE clause. If a join condition is between two subordinate tables, the query will fail. The following example successfully returns a result:如果在 FROM 子句中省略了从属表的括号,则必须在 WHERE 子句中的主导表和每个从属表之间建立联接条件或关系。如果连接条件位于两个从属表之间,则查询将失败。以下示例成功返回结果:SELECT c.company, o.order_date, c2.call_descr FROM customer c, OUTER orders o, OUTER cust_calls c2 WHERE c.customer_num = o.customer_num AND c.customer_num = c2.customer_num;Consider using the ANSI-SQL standard syntax for outer joins. For more information, refer to the GBase 8s Guide to SQL: Syntax.

考虑对外部联接使用 ANSI-SQL 标准语法。有关更多信息,请参阅 GBase 8s SQL 指南:语法。

-394 View view-name not found.

The named view cannot be dropped as it does not exist. To see names of existing views, query systables as follows:命名视图不能删除,因为它不存在。要查看现有视图的名称,查询系统如下:SELECT tabname FROM systables WHERE tabtype = 'V'-395 The where clause contains an outer cartesian product.

This query requests an outer join, but either the WHERE clause is missing in the query, or the conditions in the WHERE clause cause every row of the subordinate table to be selected for every row of the dominant table,resulting in a very large output.

此查询请求外部联接,但查询中缺少 WHERE 子句,或者 WHERE 子句中的条件导致为主导表的每一行选择从属表的每一行,从而产生非常大的输出。

Review the query, and check that at least one condition in the WHERE clause relates each dominant-subordinate pair of tables in the query.

请检查查询,并检查 WHERE 子句中至少有一个条件与查询中的每个主导-从属表对相关。

-396 Illegal join between a nested outer table and a preserved table.

This query requests an outer join, but the WHERE clause contains a condition that relates a nested subservient table to a preserved table that is not its immediate parent. This action is not supported. Review the query, and check that every condition that relates two tables is between a preserved table and its immediately subordinate table.

此查询请求外部联接,但 WHERE 子句包含一个条件,该条件将嵌套的子服务表与保存的表关联,该表不是它的直接父表。不支持此操作。检查查询,并检查两个表相关的每个条件是否在保留的表和其立即从属的表之间。

-397 System catalog corrupted.

This internal error should not occur. The database server has encountered something in one or more of the system catalog tables that violates integrity constraints.

不应发生此内部错误。数据库服务器在一个或多个系统目录表中遇到违反完整性约束的内容。

Run the oncheck utility if you are using GBase 8s Dynamic Server,GBase 8s Universal Server, or GBase 8s OnLine Dynamic Server. Run bcheck or secheck if you are using the GBase 8s SE database server. Run tbcheck if you are using the GBase 8s OnLine database server. If the error recurs, note all circumstances and contact GBase Technical Support.

如果您使用的是GBase 8s Dynamic Server、GBase 8s Universal Server 或GBase 8s OnLine Dynamic Server,则运行 oncheck 实用程序。如果您正在使用 GBase 8s SE 数据库服务器,则运行 bcheck 或 secheck。如果您使用的是 GBase 8s 联机数据库服务器,请运行 tbcheck 。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-398 Cursor manipulation must be within a transaction.

An attempt to use an UPDATE or a DELETE WHERE CURRENT OF statement produces this error message. This statement would modify a table through a cursor. However, this database uses a transaction log. When that is the case, modifications made through a cursor must be placed within the bounds of a transaction.

试图使用 UPDATE 或 DELETE 语句当前产生此错误消息。此语句将通过游标修改表。但是,此数据库使用事务日志。在这种情况下,必须将通过游标所做的修改放在事务的范围内。

Review the program logic, and check that it executes a BEGIN WORK statement prior to this statement and that it ends the transaction at some reasonable point. If the program has to work with both databases that use transactions and those that do not, you can have it check the second element of the sqlwarn array of the SQL Communications Area.

This area will contain the letter W after a DATABASE statement if the database has a transaction log, and a space if it does not.

检查程序逻辑,并检查它是否在此语句之前执行一个开始工作语句,并检查它是否在某个合理的点结束事务。如果程序必须同时使用事务的数据库和不使用事务的数据库,则可以让它检查 SQL Communications Area 中的 sql warn 数组的第二个元素。如果数据库有事务日志,则该区域将包含数据库语句后面的字母 W ,如果没有,则包含空格。

-399 Cannot access log file.

This query refers to a table named syslog. A row in the systables catalog has syslog in the tabname column, but it is only a convenient place to store the pathname to the transaction-log file. Under GBase 8s SE, a table named syslog cannot exist in a database with logging. (In general, you should avoid table names that start with sys-, and syslog is not allowed.)此查询引用一个名为 syslog 的表。 systables 中的一行在 tabname 列中有 syslog ,但是它只是将路径名存储到事务日志文件的一个方便的地方。在 GBase 8s SE 下,名为syslog 的表不能存在于具有日志记录的数据库中。(通常,您应该避免以 sys- 开头的表名,并且不允许 syslog。)-400 Fetch attempted on unopen cursor.

This FETCH statement names a cursor that has never been opened or has been closed. Review the program logic, and check that it will open the cursor before this point and not accidentally close it. Unless a cursor is declared WITH HOLD, it is automatically closed by a COMMIT WORK or ROLLBACK WORK statement.

此 FETCH 语句命名从未打开或关闭的游标。检查程序逻辑,并检查它是否会在此之前打开游标,而不是意外地关闭它。除非用 WITH HOST 声明游标,否则 COMMIT WORK 或ROLLBACK WORK 语句会自动关闭游标。

-401 Fetch attempted on NULL cursor.

This FETCH statement passed a cursor data structure that is invalid or that is a null pointer. Possibly the cursor has been freed with the FREE statement, or possibly an automatic re-prepare has been attempted while opening the cursor but that operation failed, leaving the cursor unavailable,or possibly the cursor data structure has been overwritten in memory.

这个 FETCH 语句传递了一个无效的游标数据结构或一个空指针。可能游标已经用 FREE语句释放,或者在打开游标时尝试自动重新准备,但操作失败,游标不可用,或者游标数据结构已被覆盖在内存中。

-402 Address of a host variable is NULL.

Review the way the program constructs the sqlda and related data structures; somehow it is setting up a null pointer. The error might be caused by using a row or collection host variable without having executed the necessary ALLOCATE statement.

检查程序构造 sqlda 和相关数据结构的方式;不知怎么的,它正在设置一个空指针。

错误可能是由于使用行或集合主机变量而没有执行必要的分配语句而引起的。

If the program is in GBase 8s 4GL or another language in which the sqlda is not constructed directly by the program, or if this statement refers only to host variables by name, this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

如果程序是用 GBase 8s 4GL 或另一种语言编写的,而 sqlda 不是由程序直接构造的,或者如果此语句仅按名称引用宿主变量,则不应发生此错误。如果错误再次发生,请注意所有情况,并与GBase技术支持部门联系。

-403 The size of a received row disagrees with the expected size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与GBase技术支持部门联系。

-404 The cursor or statement is not available.

One of the following four situations occurred:发生了以下四种情况之一:You used a statement that names a cursor that was released with the FREE statement or that was released during a failed automatic re-prepare.

Review the program logic and check that the cursor specified is declared and opened, but not freed, prior to reaching this statement.

您使用了一条语句,该语句命名了随 FREE 语句释放的游标,或在失败的自动重新准备过程中释放的游标。检查程序逻辑,并检查指定的游标在到达此语句之前是否已声明和打开,但未释放。

If the error occurred on a command that specifies a variable rather than a cursor, the statement was not prepared before you tried to execute it.

如果错误发生在指定变量而不是游标的命令上,则在尝试执行该语句之前没有准备语句。

The cursor or statement is not available because the connection to the server does not exist or was lost.

游标或语句不可用,因为到服务器的连接不存在或丢失。

The person who created this table has not granted Update privilege to your account name or to the public. The owner of the table or the DBA must grant this privilege before you can update a row in this table.

创建此表的人未将 Update 特权授予您的账户名或公共权限。表或 DBA 的所有者必须授予此特权,才能更新此表中的行。

-405 The Address of a host variable is not properly aligned.

Review the way the program constructs the sqlda and related data structures; somehow it is setting up a pointer that is not word aligned. Also, make sure that all host variables are aligned on proper address boundaries for their types. If the program is in GBase 8s 4GL or another language in which the programmer has no control over storage alignments, this error should not occur. If the error recurs,note all circumstances and contact GBase Technical Support.

检查程序构造 sqlda 和相关数据结构的方式;不知怎么的,它正在设置一个不对齐字的指针。此外,确保所有主机变量都在其类型的正确地址边界上对齐。如果程序使用GBase 8s 4GL 或程序员无法控制存储对齐的另一种语言,则不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-406 Memory allocation failed.

Something in the current statement required the allocation of memory for data storage, but the memory was not available. Several things can cause this error. For example, your application has a memory leak, you are asking for more resources than the system is configured to allow,or a problem with UNIX requires that you reboot the system. On a client PC,if the GBS_HOME environment variable or some GLS file is missing,a connection attempt fails with this error message.

当前语句中的某些内容需要为数据存储分配内存,但内存不可用。有几件事会导致这个错误。例如,您的应用程序内存泄漏,您请求的资源比系统配置允许的更多,或者 UNIX的问题要求您重新启动系统。在客户端PC上,如果 GBS_HOME 环境变量或某个 GLS文件丢失,则此错误消息将失败连接尝试。

Rollback the current transaction. Look for ways to make this statement simpler or move less data. On UNIX, talk with the system administrator to solve memory problems or to look for ways to make the operating system give this program more virtual memory in which to run. On Windows, exit to the operating-system command line, free some disk space, and resubmit your program. On a client PC, make sure that the GBS_HOME and GBS_DATA environment variable is set and that all GLS files are available.

回滚当前事务。寻找使此语句更简单或移动更少数据的方法。在 UNIX 上,与系统管理员交谈以解决内存问题或寻找使操作系统为程序提供更多运行虚拟内存的方法。在 Windows上,退出操作系统命令行,释放一些磁盘空间,然后重新提交程序.在客户端PC上,确保设置了 GBS_HOME 和 GBS_DATA 环境变量,并确保所有 GLS 文件都可用。

-407 Error number zero received from the sqlexec process.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Make sure that your program software is compatible with the database engine in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。确保您的程序软件与正在使用的数据库引擎兼容。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-408 Invalid message type received from the sqlexec process.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Make sure that your program software is compatible with the database engine in use.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。确保程序软件与正在使用的数据库引擎兼容。

This error can also occur if the CSM option is enabled on the database server side but not on the client application side, or vice versa. If you want to use a CSM, make sure that the CSM option is set in the sqlhosts file for both the database server and client application.

如果在数据库服务器端启用 CSM 选项,而在客户端应用程序端启用 CSM 选项,则也可能发生此错误,反之亦然。如果要使用 CSM ,请确保将 CSM 选项设置在数据库服务器和客户端应用程序的 sqlhost 文件中。

This error can also occur if the confidentiality option of the CSM is enabled on the database server side but not on the client application side, or vice versa. If you want to use the confidentiality option of the CSM, make sure that the confidentiality option is set for both the database server and client application. Check your sqlhosts file and CSS configuration file.

如果 CSM 的机密选项在数据库服务器端启用,而在客户端应用程序端没有启用,则也可能发生此错误,反之亦然。如果要使用 CSM 的保密性选项,请确保为数据库服务器和客户端应用程序设置了保密性选项。检查 sqlhost 文件和 CSS 配置文件。

If the error recurs, note all circumstances and contact GBase Technical Support.

如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-409 Sqlexec was not found or was not executable by the current user.

Your application contacts the database server process while it starts up. Ordinarily these files will reside in the lib subdirectory of the directory that the GBS_HOME environment variable names. Check that your SQLEXEC environment variable is set up properly and that your account has access to these directories and files.

应用程序在数据库服务器进程启动时与其联系。通常,这些文件将驻留在 GBS_HOME环境变量名所在目录的 lib 子目录中。检查 SQLEXEC 环境变量是否正确设置,以及您的账户是否有权访问这些目录和文件。

-410 Prepare statement failed or was not executed.

This EXECUTE statement refers to a statement id that has not been prepared. Either no PREPARE statement was done, or one was done but returned an error code. Review the program logic to ensure that a statement is prepared and the PREPARE return code is checked. A negative error code from PREPARE usually reflects an error in the statement being prepared.

此 EXECUTE 语句引用未准备好的语句 id 。要么没有执行 PREPARE 语句,要么执行了一个错误代码。检查程序逻辑以确保准备了语句并检查了 PREPARE 返回代码。PREPARE中的负错误代码通常反映正在准备的语句中的错误。

-411 Cannot specify both host variables and descriptor.

This statement has a USING DESCRIPTOR clause, but it also refers to a cursor that was declared with host variables (that is, with SELECT...INTO or INSERT using variables in the VALUES clause). The purpose of both the descriptor structure and host variable names is to specify the location of the data values, and only one method may be used. Review the declaration of the cursor, and settle on a single method of specifying the location of data values.

这个语句有一个 USING DESCRIPTOR 子句,但它也引用了一个游标,它是用主机变量声明的(也就是说,使用 SELECT...INTO 或 INSERT using variables in the VALUES 子句)。描述符结构和主机变量名的目的是指定数据值的位置,并且只能使用一种方法。检查游标的声明,并确定指定数据值位置的单一方法。

-412 Command pointer is NULL.

This statement (probably an EXECUTE or DECLARE) refers to a dynamic SQL statement that has never been prepared or that has been freed. Review the program logic to ensure that the statement has been prepared, the PREPARE did not return an error code, and the FREE statement has not been used to release the statement before this point.

此语句(可能是 EXECUTE 或 DECLARE )引用从未准备好或已释放的动态 SQL 语句。

检查程序逻辑以确保语句已经准备好,准备程序没有返回错误代码,并且在此之前没有使用空闲语句释放语句。

-413 Insert attempted on unopen cursor.

This INSERT statement names a cursor that has never been opened or that has been closed. Review the program logic, and check that it will open the cursor before this point and not accidentally close it. An insert cursor is automatically closed by a COMMIT WORK or ROLLBACK WORK statement.

此 INSERT 语句命名从未打开或已关闭的游标。检查程序逻辑,并检查它是否会在此之前打开游标,而不是意外地关闭它。 插入游标由 COMMIT WORK 或 ROLLBACK WORK 语句自动关闭。

-414 Insert attempted on NULL cursor.

This PUT statement specifies a cursor that is invalid. Possibly the cursor has been freed with the FREE statement, or possibly an automatic re-prepare has been attempted while opening the cursor but that operation failed, leaving the cursor unavailable, or possibly the cursor data structure has been overwritten in memory.

此 PUT 语句指定无效的游标。可能游标已经用空闲语句释放,或者在打开游标时尝试自动重新准备,但操作失败,游标不可用,或者游标数据结构已被覆盖在内存中。

-415 Data conversion error.

The database server is unable to convert between a program variable and a database column. It performs automatic data conversion in many cases but could not in this case. For instance, a character string will be converted to a numeric type so long as the string contains the digits of a valid number, or a float or decimal number will be converted to integer so long as the receiver has enough precision for the value.

Review this statement, and inspect each program variable that does not have the same data type as the matching database column.

数据库服务器无法在程序变量和数据库列之间进行转换。它在许多情况下执行自动数据转换,但在这种情况下不能。例如,只要字符串包含有效数字的数字,或只要接收方对该值具有足够的精度,则字符串将被转换为数字类型;或者,只要接收方具有足够的精度,浮数或十进制数将转换为整数。检查此语句,并检查与匹配数据库列没有相同数据类型的每个程序变量。

-416 USING option with open statement is invalid for insert cursor.

This OPEN statement refers to a cursor that was declared for an INSERT statement. The USING clause of the OPEN is not appropriate in this case; it is only used to specify the variables that are used with a SELECT statement. Review the program to ensure that the correct cursor has been used in this statement. If it has, and if the INSERT statement is written as part of the DECLARE statement, you can name the host variables directly in it. If the INSERT statement has been prepared,you can specify the host variables in a FROM clause in the PUT statement.

此 OPEN 语句引用为 INSERT 语句声明的游标。在这种情况下,OPEN 的 USING 子句不合适;它只用于指定 SELECT 语句所使用的变量。检查程序以确保在此语句中使用了正确的游标。如果是这样,如果 INSERT 语句是作为 DECLARE 语句的一部分编写的,则可以将机变量直接命名在其中。如果 INSERT 语句已经准备好,则可以在 PUT 语句中的 FROM子句中指定主机变量。

-417 FLUSH can only be used on an insert cursor.

This FLUSH statement refers to a cursor that is associated with a SELECT statement, not an INSERT statement. FLUSH is only appropriate with insert cursors. Review the program to ensure that the correct cursor has been named.

此 FLUSH 语句引用与 SELECT 语句关联的游标,而不是 INSERT 语句。 FLUSH 只适用于插入游标。检查程序以确保正确的游标已被命名。

-418 NULL SQLDA descriptor or host variable list encountered.

Review the way the program constructs the sqlda and related data structures; somehow it is setting up a null pointer. If the program is in GBase 8s 4GL or another language in which the sqlda is not constructed directly by the program, or if this statement only refers to host variables by name, this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

检查程序构造 sqlda 和相关数据结构的方式;不知怎么的,它正在设置一个空指针。

如果程序是用 GBase 8s 4GL 或另一种语言编写的,而 sqlda 不是由程序直接构造的,或者如果此语句仅按名称引用主机变量,则不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-419 SQLDATA pointer in SQLDA or host variable is null.

Review the way the program constructs the sqlda and related data structures; somehow it is setting up a null pointer. If the program is in GBase 8s 4GL or another language in which the sqlda is not constructed directly by the program, or if this statement only refers to host variables by name, this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

检查程序构造 sqlda 和相关数据结构的方式;不知怎么的,它正在设置一个空指针。如果程序是用 GBase 8s 4GL 或另一种语言编写的,而 sqlda 不是由程序直接构造的,或者如果此语句仅按名称引用主机变量,则不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-420 Cannot execute remote sqlexec.

Your application program is starting up and trying to make contact with the database server process in another computer. It does this using the contents of the SQLHOST environment variable. Check the SQLHOST variable, and verify that the GBase 8s NET or GBase 8s STAR service has been started in the other computer.

您的应用程序正在启动,并试图与另一台计算机中的数据库服务器进程进行联系。它使用SQLHOST 环境变量的内容来实现这一点。检查 SQLHOST 变量,并验证 GBase 8s Net 或GBase 8s STAR 服务是否已在另一台计算机中启动。

-421 Unknown service for execution of remote sqlexec.

Your application program is starting up and trying to make contact with a database server in a different computer. It uses information from the file /etc/services under the service entry sql, but this file was not found. Contact the person who installed GBase 8s NET on your system.

您的应用程序正在启动,并试图与另一台计算机中的数据库服务器进行联系。它使用服务条目 SQL 下的 /etc/services 文件中的信息,但找不到该文件。请联系在您的系统上安装 GBase 8s Net 的人员。

-422 Flush attempted on unopen cursor.

This FLUSH statement names a cursor that has never been opened or has been closed. Review the program logic to ensure that it will open the cursor before this point and not accidentally close it. An insert cursor is automatically closed by a COMMIT WORK or ROLLBACK WORK.

此 FLUSH 语句指定从未打开或已关闭的游标。检查程序逻辑,以确保它在此之前打开游标,而不是意外地关闭它。插入游标将由 COMMIT WORK 或 ROLLBACK WORK 自动关闭。

-423 A FETCH CURRENT was attempted with no current row.

This FETCH statement asks for the current row, but none exists. Either the cursor was just opened, or the previous fetch returned an error code, perhaps because it was at the end of the data. Review the program logic, and check that it uses a FETCH NEXT statement or other FETCH operation to establish a current row before it attempts this statement.

此 FETCH 语句请求当前行,但不存在。游标刚刚打开,或者前面的 FETCH 返回一个错误代码,可能是因为它位于数据的末尾。检查程序逻辑,并在尝试此语句之前检查它是否使用 FETCH Next 语句或其他 FETCH 操作来建立当前行。

-424 Cursor already declared from this prepared statement.

This DECLARE statement associates a cursor with the name of a prepared statement. However, another DECLARE statement has already been executed, and it associates a different cursor with the same statement id. This action is not supported; a given statement can be associated with only one cursor. Check all the DECLARE statements in the program,and check that they all refer to unique statements.

此声明语句将游标与准备语句的名称关联。但是,已经执行了另一个 DECLARE 语句,它将一个不同的游标与相同的语句 id 关联起来。不支持此操作;给定语句只能与一个游标关联。检查程序中的所有 DECLARE 语句,并检查它们都引用唯一的语句。

-425 Database is currently opened by another user.

Another user has opened the requested database in exclusive mode, or you have more than one connection to the database server. Repeat the statement after a short delay or when the database is known to be idle.

另一个用户已经以独占模式打开了请求的数据库,或者您有多个到数据库服务器的连接。

在短时间延迟或数据库已知空闲时重复该语句。

-426 Unknown values have already been supplied.

This internal error should not occur. If this error recurs, note all circumstances and contact GBase Technical Support.

不应发生此内部错误。如果再次出现此错误,请注意所有情况,并与 GBase 技术支持部门联系。

-427 Bind count routine called with a different count.

This internal error should not occur. If you can find no direct cause for the error, note all circumstances and contact GBase Technical Support.

不应发生此内部错误。如果找不到导致错误的直接原因,请注意所有情况,并与 GBase技术支持部门联系。

-428 Bind routine called too many times.

This internal error should not occur. If you can find no direct cause for the error, note all circumstances and contact GBase Technical Support.

不应发生此内部错误。如果找不到导致错误的直接原因,请注意所有情况,并与 GBase技术支持部门联系。

-429 Indicator variables should be 2-byte integers.

This statement names as an indicator variable, a host variable that was not declared as a small integer. The value returned to an indicator variable is a small integer value. Review the statement, especially the use of host variables as indicator variables. Make sure the names of indicator variables are spelled correctly and that they are properly declared. In a 4GL program, this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句命名为指示符变量,未声明为小整数的主机变量。返回给指示符变量的值是一个小整数值。检查语句,特别是使用主机变量作为指示变量。确保指示变量的名称拼写正确,并正确声明它们。在 4GL 程序中,不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-430 Type integer does not match size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-431 Type float does not match size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-432 Type date does not match size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-433 Type money does not match size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-434 Type decimal does not match size.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-435 Time-out value must be -1 or greater.

You provided an incorrect time-out value for your callback function/routine in GBase 8s ESQL/C or ESQL/COBOL. Check that your time-out value is -1 or greater.

您在 GBase 8s ESQL/C 或 ESQL/COBOL 中为回调函数/例程提供了一个不正确的超时值。

检查超时值是否为 -1 或更高。

-436 Call back function must be defined when time-out value is 0 or greater.

You did not provide a callback function with your time-out value. Make sure that you provide both.

您没有提供带超时值的回调函数。确保你提供两者。

-437 Connection must be established before registering callback function.

You attempted to register a callback function before you connected to a database server. You must first connect to a database server and then register your callback function.

在连接到数据库服务器之前,尝试注册回调函数。您必须首先连接到数据库服务器,然后注册回调函数。

-438 Call back function must be NULL if time-out value is -1.

You provided an incorrect value to unregister your callback function.

Pass a null value, not a function pointer, to the callback function.

您提供了一个不正确的值来取消注册回调函数。向回调函数传递一个空值,而不是函数指针。

-439 Database server is currently processing an SQL task.

You attempted to call an SQL routine or attempted to execute an SQL statement within a signal handling function/routine or a callback function/procedure. Use only the sqldone() and sqlbreak() library functions inside your GBase 8s ESQL/C callback function. Use only the ECO-SQD and ECO-SQB library routines inside your ESQL/COBOL callback procedure. In addition, if you want to unregister your callback function in GBase 8s ESQL/C, you can invoke the sqlbreakcallback()callback registration function within your callback procedure. If you want to unregister your callback procedure in ESQL/COBOL, you can invoke the ECO-SQBCB callback registration routine within your callback procedure.

您试图调用 SQL 例程,或试图在信号处理函数/例程或回调函数/过程中执行SQL语句。

只使用 GBase 8s ESQL/C 回调函数中的 ECO-SQD 和 ECO-SQB 库函数。只使用ESQL/COBOL 回调过程中的 ECO-SQD 和 ECO-SQB 库例程。此外,如果要在 GBase 8s ESQL/C 中注销回调函数,则可以在回调过程中调用 sqlbreakcallback() 回调注册函数。如果要在 ESQL/COBOL 中取消注册回调过程,可以在回调过程中调用 ECO-SQBCB回调注册例程。

-440 Cannot update more than one non-Gbasedbt DBMS within a transaction.

In the application, an attempt was made to update data at more than one target DBMS accessed through a gateway. In a distributed transaction,at most one target DBMS accessed through a gateway can be updated.

在应用程序中,尝试更新通过网关访问的多个目标 DBMS的数据。在分布式事务中,最多可以更新通过网关访问的一个目标 DBMS 。

You need to rewrite the application so that it updates at most one DBMS accessed through a gateway in a single distributed transaction.

您需要重写应用程序,以便它最多更新一个通过网关在单个分布式事务中访问的 DBMS 。

-441 Possible inconsistent data at the target DBMS (%s) due to an aborted commit.

Distributed commit processing failed due to a communication error,site failure, gateway failure, or other error with the target DBMS accessed through the gateway. Updates at all sites participating in the transaction have been rolled back with the possible exception of the target DBMS. The target DBMS might have committed its updates if the failure occurred after the commit message was processed by the target DBMS.

由于通过网关访问的目标 DBMS 出现通信错误、站点故障、网关故障或其他错误,分布式提交处理失败。参与事务的所有站点的更新都已回滚,目标 DBMS 可能例外。如果在目标DBMS处理提交消息之后发生故障,目标 DBMS 可能已经提交了更新。

If the updates on the target DBMS were committed, then the updates should be rolled back manually. Contact the target DBMS system administrator.

如果目标 DBMS 上的更新被提交,则应该手动回滚更新。与目标 DBMS 系统管理员联系。

-442 Cannot grant permission to NULL or empty user name.

The authorization identifier of the users to whom you are granting access privileges cannot be NULL or empty.

要授予访问权限的用户的授权标识符不能为空或空。

-443 The range specified in the FOR loop cannot have a NULL value: (%s).

The FOR statement in a stored procedure cannot have a NULL value for the starting value, the ending value, or the step value of a range.

存储过程中的 FOR 语句不能具有范围的起始值、结束值或步骤值的空值。

-444 Cannot use the ALTER TABLE statement to modify the extent size of the specified external table.

The size of extents cannot be changed for an external table, which resides in an extspace. An extspace refers to a storage location that the GBase 8s database server does not manage.

对于驻留在 extspace 中的外部表,无法更改 extent 的大小。extspace 指 GBase 8s数据库服务器不管理的存储位置。

-450 Illegal ESQL locator, or uninitialized blob variable in 4GL.

A BYTE or TEXT host variable used in this statement is not valid. If this is a 4GL program, the variable has not been initialized by use of the LOCATE statement, or was freed after being located. Review the program logic to ensure all blob variables are located before use. If this is ESQL/C, the locator structure is invalid or uninitialized.

Check that all locator structures are allocated and filled in before use.

此语句中使用的 BYTE 或 TEXT 宿主变量无效。如果这是一个 4GL 程序,则该变量尚未通过使用 LOCATE 语句进行初始化,或者在定位后被释放。检查程序逻辑以确保所有BLOB 变量在使用前都已定位。如果这是 ESQL/C ,则定位器结构无效或未初始化。检查所有定位器结构在使用前是否已分配和填写。

-451 Locator buffer size too small.

The locator structure provided for a BYTE or TEXT value in this statement specifies a memory buffer that is smaller than the value (in the loc_bufsize field). The actual size is in loc_indicator. No data was transferred. Revise the program to use a larger buffer, to locate the value in a file instead of memory, or to pass the value in segments through a user-provided read function. Alternatively, you can specify a substring of the value in the SELECT statement. If this is a 4GL program, this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句中为 BYTE 或 TEXT 值提供的定位器结构指定小于值的内存缓冲区(在loc_bufsize 字段中)。实际大小以 loc_indicator 表示。没有转移任何数据。修改程序以使用更大的缓冲区,将值定位在文件中而不是内存中,或者通过用户提供的读取函数以段形式传递值。或者,可以在 SELECT 语句中指定值的子字符串。如果这是一个 4GL 程序,则不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-452 'loc_open()' failed.

The loc_open() function provided in the locator structure for a BYTE or TEXT value in this statement was called and returned a negative return code. When the value is located using user-supplied functions(loc_loctype contains LOCUSER), this function is part of the program,and you have to diagnose its problems yourself. When the value is located in a file (loc_loctype contains LOCFILE or, in a 4GL program,the variable has been located in a file), this error indicates that the system-supplied loc_open() function was not able to open the file.

Possibly the file does not exist, you do not have read permission for the file, or too many files are open.

此语句中的 BYTE 或 TEXT 值在定位器结构中提供的 loc_open() 函数被调用并返回一个负返回代码。当使用用户提供的函数( loc_loctype 包含 LOCUSER )定位该值时,该函数是程序的一部分,您必须自己诊断它的问题。当值位于文件中( loc_loctype 包含LOCFILE ,或者在 4G L程序中,变量位于文件中)时,此错误指示系统提供的 loc_open() 函数无法打开文件。可能该文件不存在,您没有该文件的读取权限,或者打开的文件太多。

-453 'loc_close()' failed.

The loc_close() function provided in the locator structure for a BYTE or TEXT value in this statement was called and returned a negative return code. When the value is located using user-supplied functions(loc_loctype contains LOCUSER), this function is part of the program,and you have to diagnose its problems yourself. When the value is located in a file (loc_loctype contains LOCFILE or, in a 4GL program,the variable has been located in a file), this error indicates that the system-supplied loc_close() function was not able to close the file.

此语句中的 BYTE 或 TEXT 值在定位器结构中提供的 loc_close() 函数被调用并返回一个负返回代码。当使用用户提供的函数(loc_loctype 包含 LOCUSER )定位该值时,该函数是程序的一部分,您必须自己诊断它的问题。当值位于文件中( loc_loctype 包含LOCFILE ,或者在 4GL 程序中,变量位于文件中)时,此错误指示系统提供的 loc_close() 函数无法关闭文件。

-454 'loc_read()' failed.

The loc_read() function provided in the locator structure for a BYTE or TEXT value in this statement was called and returned a negative return code. When the value is located using user-supplied functions(loc_loctype contains LOCUSER), this function is part of the program and you have to diagnose its problems yourself. When the value is located in a file (loc_loctype contains LOCFILE or, in a 4GL program,the variable has been located in a file), this error indicates that the system-supplied loc_read() function was not able to read from the file.

此语句中的值在定位器结构中提供的 loc_read() 函数被调用并返回一个负返回代码。

当使 BYTE 或 TEXT 用用户提供的函数( loc_loctype 包含 LOCUSER )定位该值时,该函数是程序的一部分,您必须自己诊断它的问题。当值位于文件中( loc_loctype 包含LOCFILE ,或者在 4GL 程序中,变量位于文件中)时,此错误指示系统提供的 loc_read() 函数无法从文件中读取。

-455 'loc_write()' failed.

The loc_write() function provided in the locator structure for a BYTE or TEXT value in this statement was called and returned a negative return code. When the value is located using user-supplied functions(loc_loctype contains LOCUSER), this function is part of the program and you have to diagnose its problems yourself. When the value is located in a file (loc_loctype contains LOCFILE or, in a 4GL program,the variable has been located in a file), this error indicates that the system-supplied loc_write() function was not able to write to the file.

Possibly the disk is full, you do not have write permission for the disk, or a hardware error occurred.

此语句中的 BYTE 或 TEXT 值在定位器结构中提供的 loc_write() 函数被调用并返回一个负返回代码。当使用用户提供的函数( loc_loctype 包含 LOCUSER )定位该值时,该函数是程序的一部分,您必须自己诊断它的问题。当值位于文件中( loc_loctype 包含LOCFILE ,或者在 4GL 程序中,变量位于文件中)时,此错误指示系统提供的 loc_write() 函数无法写入文件。可能磁盘已满,您没有磁盘的写权限,或者发生硬件错误。

-456 Indicator value cannot fit in host variable.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstance, and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-457 Database server terminated unexpectedly.

The database server process or thread with which your application program was working has terminated. The DBA might have shut the system down. The next most likely cause is an internal error. Look for operating-system messages that might give more information. If the error recurs, note all circumstances and contact GBase Technical Support.

您的应用程序所使用的数据库服务器进程或线程已终止。DBA 可能已经关闭了系统。下一个最可能的原因是内部错误。寻找可能提供更多信息的操作系统消息。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

Check the ISAM error code that is returned with this error. If it is -129, the database server has not terminated but simply reached a limit on the number of concurrent user sessions (see the explanation of error -129).

检查与此错误一起返回的 ISAM 错误代码。如果是 -129,则数据库服务器没有终止,只是对并发用户会话的数量达到了限制(请参见错误 -129 的解释)。

-458 Long transaction aborted.

The database server ran out of log space in which to record this transaction. A transaction that is not fully recorded cannot be rolled back. To preserve database integrity, the operating system ended the transaction and rolled it back automatically. All changes made since the start of the transaction have been removed. Terminate the application, and replan it so that it modifies fewer rows per transaction. Alternatively, contact the database server administrator to discuss increasing the number or the size of the logical logs. Be prepared to talk about the number of rows being updated or inserted and the size of each row.

数据库服务器没有记录此事务的日志空间。未被完全记录的事务不能回滚。为了保持数据库完整性,操作系统结束事务并自动回滚。自事务开始以来所做的所有更改都已被删除。

终止应用程序,并重新规划它,以便它修改每个事务的行数较少。或者,请与数据库服务器管理员联系,讨论如何增加逻辑日志的数量或大小。准备讨论要更新或插入的行数以及每一行的大小。

This error can also occur when a DBA has used FORCE_DDL_EXEC environment variable in another session and executes the ALTER FRAGMENT ON TABLE statement. In this situation, the ALTER FRAGMENT ON TABLE statement rolls back any transactions that opened or have locks on the tables on which ALTER FRAGMENT is issued.

当 DBA 在另一个会话中使用 FORCE_DDL_EXEC 环境变量并执行 ALTER FRAGMENT ON TABLE 语句时,也会发生此错误。在这种情况下,ALTER FRAGMENT ON TABLE 语句将回滚任何打开的或在发出 ALTER FRAGMENT 的表上具有锁的任何事务。

-459 The database server was shut down.

The database server instance that your application was using has been shut down by its operator. Your current transaction will be rolled back automatically when the database server starts up again. Rerun the application at that time.

应用程序正在使用的数据库服务器实例已被其运算符关闭。当数据库服务器再次启动时,的当前事务将自动回滚。在那个时候重新运行应用程序。

-460 Statement length exceeds maximum.

The statement text in this PREPARE, DECLARE, or EXECUTE IMMEDIATE statement is longer than the database server can handle. The actual limit differs with different implementations, but it is always generous, in most cases up to 65,535 characters. Review the program logic to ensure that an error has not caused it to present a string that is longer than intended (for example, by overlaying the null string terminator byte in memory). If the text has the intended length,revise the program to present fewer statements at a time.

此 PREPARE、 DECLARE 或 EXECUTE IMMEDIATE 语句中的语句文本比数据库服务器处理的时间长。实际限制因实现不同而不同,但它总是很慷慨,在大多数情况下最多可达 65,个字符。检查程序逻辑,以确保错误不会导致出现比预期更长的字符串(例如,通过在内中覆盖空字符串终止符字节)。如果文本具有预期的长度,请修改程序,一次提交更少的句。

-461 File open error.

The database server could not open a file required to execute this statement. Sometimes this is a general error, possibly referring to a message file that the database server cannot find. At other times this error occurs because the locator (blob) structure field loc_loctype was set to LOCFNAME, but the database server could not open the file using the pathname in loc_fname and the flags in loc_oflags. Any of the following conditions can cause the database server to report this error:数据库服务器无法打开执行此语句所需的文件。有时这是一个一般错误,可能是指数据库服务器找不到的消息文件。在其他时候,发生此错误是因为 locator(blob) structure字段 loc_loctype 被设置为 LOCFNAME ,但是数据库服务器无法使用 loc_fname 中的路径名和 loc_oflags 中的标志打开文件。以下任何条件都会导致数据库服务器报告此错误:* An environment variable setting is missing.

* 缺少环境变量设置。

* Not enough disk space is available for opening the file.

* 没有足够的磁盘空间来打开文件。

* A file permission problem exists.

* 存在文件权限问题。

* The limit on the number of open files was reached.

* 已达到打开文件数量的限制。

* The database server could not access a blob of type LOCFNAME.

* 数据库服务器无法访问 LOCFNAME 类型的BLOB。

* The database server is on a different machine from the client.

* 数据库服务器位于与客户端不同的机器上。

* The statement transfers a value between a file and a BYTE or TEXT column.

* 该语句在文件与 BYTE 或 TEXT 列之间传递一个值。

* The statement attempts to drop a database when a required file is not available.

* 当所需文件不可用时,该语句尝试删除数据库。

Make sure your environment variables and file permissions are set correctly. For more information, check for any accompanying ISAM error code or operating-system message.

确保环境变量和文件权限设置正确。有关更多信息,请检查随附的 ISAM 错误代码或操作系统消息。

-462 File close error.

This statement reads a value from a BYTE or TEXT column into a file.

The database server copied the data to the file but got an operating-system error when it closed the file. Check the accompanying ISAM error code for more information, and look for operating-system messages. Typical causes include lack of disk space and hardware errors.

此语句将值从 BYTE 或 TEXT 列读取到文件中。数据库服务器将数据复制到文件中,但在关闭文件时得到了操作系统错误。请检查附带的 ISAM 错误代码以获得更多信息,并查找操作系统消息。典型的原因包括缺乏磁盘空间和硬件错误。

-463 File read error.

This statement writes a value into a BYTE or TEXT column from a file.

The database server got an operating-system error while reading the file. Check the accompanying ISAM error code for more information, and look for operating-system messages.

此语句从文件中将值写入 BYTE 或 TEXT 列。数据库服务器读取文件时出现操作系统错误.请检查附带的 ISAM 错误代码以获得更多信息,并查找操作系统消息.

-464 File write error.

This statement reads a value from a BYTE or TEXT column into a file.The database server got an operating-system error while writing the data.

Check the accompanying ISAM error code for more information, and look for operating-system messages. Typical causes include lack of disk space and hardware errors.

该语句将 BYTE 或 TEXT 列中的值读入文件中。数据库服务器在写入数据时出现操作系统错误。请检查附带的 ISAM 错误代码以获得更多信息,并查找操作系统消息。典型的原因包括缺乏磁盘空间和硬件错误。

-465 No more memory for locator buffer.

This query returns a BYTE or TEXT value that is located in memory, and the locator structure asked (by setting -1 in loc_bufsize) that the database server allocate the memory. It was unable to get the necessary memory for a buffer. If you can use operating-system methods to allocate more data space memory to your program, do so and run it again. Alternatively, locate the value in a file, or use a substring to select the value in portions. If this is a 4GL program, this error should not occur. On DOS systems, exit to the operating-system command line, free some disk space, and resubmit your program. If the error recurs, note all circumstances and contact GBase Technical Support.

此查询返回内存中的 BYTE 或 TEXT 值,定位器结构(通过在 loc_bufsize 中设置 -1)请求数据库服务器分配内存。它无法获得缓冲区所需的内存。如果您可以使用操作系统方法为您的程序分配更多的数据空间内存,请这样做并再次运行。或者,在文件中找到值,或者使用子字符串来按部分选择值。如果这是一个 4GL 程序,则不应发生此错误。在 DOS系统上,退出操作系统命令行,释放一些磁盘空间,然后重新提交程序。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-466 File length error.

This statement stores a value in a BYTE or TEXT column from a file. The locator structures specified a length for the data in loc_locsize, but the database server found end of file before it had read that much data. Review the program to ensure that the input file was properly positioned and that the correct length was specified. Specify a length of -1 if the file should be read to its end. If this is a 4GL program,this error should not occur. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句从文件中将值存储在 BYTE 或 TEXT 列中。locator 结构为 loc_locsize 中的数据指定了长度,但是数据库服务器在读取这么多数据之前就找到了文件的结尾。检查程序,以确保输入文件的位置正确,并指定了正确的长度。如果应该将文件读入其末尾,则指定 -1 的长度。如果这是一个 4GL 程序,则不应发生此错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-467 Indicator object is missing.

This program was compiled with the -icheck flag, and the current SQL statement did return a truncated or null value, for which an indicator would normally be set, to a host variable for which no indicator variable was specified. Revise the program to use indicator variables.

这个程序是使用 -icheck 标志编译的,当前的 SQL 语句确实将一个截断的或空值(通常会为其设置指示符)返回给没有为其指定指示符变量的主机变量。修改程序以使用指示变量。

-468 Cannot obtain the user ID from the system. Unable to start the database server.

Your application is trying to open communications to a database server.

As part of this action, it has to read your user ID from the system password file, and it failed to do this. Look for operating-system error messages that might give more specific information. Consult with a system administrator to ensure that the file of user IDs is readable to all users.

您的应用程序正在尝试打开与数据库服务器的通信。作为此操作的一部分,它必须从系统密码文件中读取您的用户 ID ,但是它没有这样做。查找可能提供更多特定信息的操作系统错误消息。咨询系统管理员,以确保用户 ID 的文件对所有用户都是可读的。

-469 This descriptor does not exist.

The name of the system descriptor area that is specified does not exist in the list of system descriptor areas, so it has not been allocated.

You must execute the ALLOCATE DESCRIPTOR statement to allocate this descriptor name before you use it.

指定的系统描述符区域的名称在系统描述符区域列表中不存在,因此没有分配。在使用此描述符名称之前,必须执行 ALLOCATE DESCRIPTOR 语句来分配该描述符名称。

-470 The value of occurrence must be greater than 0.

If you include the WITH MAX occurrences clause in the ALLOCATE DESCRIPTOR statement, you must specify a value of occurrences that is greater than zero. Change the value of occurrences to a positive integer, and execute the ALLOCATE DESCRIPTOR statement again.

如果在ALLOCATE DESCRIPTOR 语句中包括 WITH MAX occurrences 子句,则必须指定大于零的事件值。将事件的值更改为正整数,并再次执行分配描述符语句。

-471 An invalid descriptor name has been used.

This error is generated if the name of the SQL descriptor is either an empty string or an uninitialized host variable. Descriptor names follow the same naming rules as identifiers. Check the name of the descriptor,and verify that it has been set with the SET DESCRIPTOR statement,allocated with the ALLOCATE DESCRIPTOR statement, or otherwise initialized.

如果 SQL 描述符的名称为空字符串或未初始化的主机变量,则会生成此错误。描述符名称与标识符遵循相同的命名规则。检查描述符的名称,并验证它是否已用 SET DESCRIPTOR 语句设置,与 ALLOCATE DESCRIPTOR 语句一起分配,或以其他方式初始化。

-472 Occurrence value is out of range.

Change the value of the COUNT statement so that it is less than or equal to the occurrences and greater than zero, and try again.

更改 COUNT 语句的值,使其小于或等于出现的次数,大于零,然后再试一次。

-473 The specified data type is not a X/Open standard type.

This error is generated when a GET DESCRIPTOR or a SET DESCRIPTOR statement is executed in X/Open mode, and the value for the type field is not an X/Open standard type. Check the X/Open codes for data types again, and make sure that the correct type is being used.

如果在 X/Open 模式下执行 GET DESCRIPTOR 或 SET DESCRIPTOR 语句,并且类型字段的值不是 X/Open 标准类型,则会产生此错误。再次检查数据类型的 X/Open 代码,并确保使用的类型正确。

-474 Unknown field type.

An unknown field type has been requested. Check that you are using one of the valid field types in X/Open mode, and try again. The valid field types are TYPE, LENGTH, PRECISION, SCALE, NULLABLE, INDICATOR, DATA,and NAME.

已请求一个未知字段类型。检查是否在 X/Open 模式下使用有效字段类型之一,然后再试一次。有效的字段类型是 TYPE、 LENGTH、 PRECISION、 SCALE、 NULLABLE、INDICATOR、 DATA 和 NAME 。

-475 In a GET statement, if DATA is null, then INDICATOR must be specified.

This X/Open rule indicates that you must request the INDICATOR value in the GET DESCRIPTOR statement when DATA is null.

这个 X/Open 规则表明,当数据为 NULL 时,必须在 GET DESCRIPTOR 语句中请求指示值。

-476 The LENGTH field must be specified when the type is SQLCHAR.

When you use a SET DESCRIPTOR statement, and TYPE is set to SQLCHAR,the LENGTH field must also be specified and set in the same SET DESCRIPTOR statement.

当使用 SET DESCRIPTOR 语句并将 TYPE 设置为 SQLCHAR 时,还必须在同一个 SET DESCRIPTOR 语句中指定和设置 LENGTH 字段。

-477 Buffer is too small.

In a GET DESCRIPTOR statement, the buffer (the character host variable)that is specified to store the NAME entry is too small. Increase the buffer size, and call the GET DESCRIPTOR statement again. This error message also is displayed when the host variable is a FILE type, and the buffer used to store its name is too small.

在 GET DESCRIPTOR 语句中,指定用于存储名称条目的缓冲区(字符主机变量)太小。增加缓冲区大小,然后再次调用 GET DESCRIPTOR 语句。当主机变量是文件类型且用于存储其名称的缓冲区太小时,也会显示此错误消息。

-478 User must specify TYPE.

In the initial state, when you execute a SET DESCRIPTOR statement, you must specify TYPE as one of the fields to be set. Set the TYPE field in the SET DESCRIPTOR statement, and execute it again.

在初始状态下,在执行 SET DESCRIPTOR 语句时,必须将 TYPE 指定为要设置的字段之一。在 SET DESCRIPTOR 语句中设置 TYPE 字段,并再次执行它。

-479 The number of DESCRIBED columns is greater than the allocated space.

The number of columns in the table is larger than the allocated descriptor. Use the ALLOCATE DESCRIPTOR statement to reallocate a larger occurrence value, and try the DESCRIBE statement again.

表中的列数大于分配的描述符。使用 ALLOCATE DESCRIPTOR 语句重新分配更大的出现值,然后再次尝试 DESCRIBE 语句。

-480 A descriptor with the same name already exists.

A system descriptor area with the same name has already been allocated,so this descriptor name is not unique. Change the name of this descriptor in the ALLOCATE DESCRIPTOR statement so that the descriptor is unique, and execute the statement again.

已经分配了同名的系统描述符区域,因此这个描述符名不是唯一的。在 ALLOCATE DESCRIPTOR 语句中更改此描述符的名称,以便描述符是唯一的,并再次执行该语句。

-481 Invalid statement name or statement was not prepared.

The statement has not been prepared, or the format of the statement name is not valid.

语句尚未准备好,或者语句名的格式无效。

The maximum length for statement names depends on the database server.

语句名称的最大长度取决于数据库服务器。

-482 Invalid operation on a non-SCROLL cursor.

You cannot issue a FETCH PRIOR, FETCH FIRST, FETCH LAST, FETCH CURRENT,FETCH RELATIVE n, or FETCH ABSOLUTE n statement with a non-scroll cursor. To do so, you must first declare the cursor as a scroll cursor.

你不能发出带有非滚动游标的 FETCH PRIOR, FETCH FIRST, FETCH LAST, FETCH CURRENT, FETCH RELATIVE n, or FETCH ABSOLUTE n 语句。为此,必须首先将游标声明为滚动游标。

-483 SQL descriptor's name is too long. Limit is 128 characters.

The maximum length for SQL descriptor names depends on the database server.

SQL 描述符名称的最大长度取决于数据库服务器。

-484 Statement/cursor's name must be between 1 to 128 characters.

The maximum length for statement and cursor names depends on the database server. In GBase 8s Dynamic Server, the maximum length is 128 characters.

In other GBase 8s database servers, the maximum length is 18 characters.

语句和游标名称的最大长度取决于数据库服务器。在 GBase 8s Dynamic Server 中,最大长度为 128 个字符。在其他 GBase 8s 数据库服务器中,最大长度为 18 个字符。

-485 Number of host variables does not match SELECT list.

This error can occur only if your database is ANSI compliant. The error indicates that the number of host variables in an ESQL statement is not the same as the number of values that the database server returns. In addition, a warning flag is placed in the third element of the sqlwarn structure of sqlca.

只有当数据库符合 ANSI 标准时,才能发生此错误。此错误指示 ESQL 语句中的主机变量数与数据库服务器返回的值数不相同。此外,在 sqlca 的 sqlwarn 结构的第三个元素中放置了一个警告标志。

The execution of the second statement in the following ESQL/C example returns this error:在以下 ESQL/C 示例中执行第二条语句将返回此错误:createtablemytab(iinteger,ffloat)create table mytab (i integer, f float)select * into :var1 from mytab; --error If your database is not ANSI compliant, this and similar statements complete without error, and the values of the host variables are set in sequence to their respective returned values. If the number of returned values is smaller than the number of host variables, the remaining host variables are undefined. As with an ANSI-compliant database, a warning flag is placed in the third element of the sqlwarn structure of sqlca.

如果您的数据库不兼容 ANSI,则此语句和类似语句将在没有错误的情况下完成,并且主机变量的值将按顺序设置为各自返回的值。如果返回值的数量小于主机变量的数量,则其余主机变量未定义。与 ANSI 兼容的数据库一样,在 sqlca 的 sqlwarn 结构的第三个元素中放置了一个警告标志。

-486 Illegal data type found during data conversions.

The data type found in the system descriptor sqlvar entry is either invalid or uninitialized. You cannot use the GET DESCRIPTOR statement to get a value from an uninitialized sqlvar.

在系统描述符 sqlvar 条目中找到的数据类型要么无效,要么未初始化。不能使用 GET DESCRIPTOR 语句从未初始化的 sqlvar 获取值。

-487 A cursor can only be declared as static or dynamic.

The specified SQL statement requires you to declare a cursor as static or dynamic. Declare the cursor as static or dynamic, depending on which type of cursor is required, and retry the specified operation.

指定的 SQL 语句要求您将游标声明为静态或动态。根据所需游标的类型,将游标声明为静态或动态游标,并重试指定的操作。

-488 Invalid operation on cursor.

An invalid operation has been attempted on a cursor. A cursor declared for a SELECT statement cannot be used in a PUT statement. Similarly, a cursor declared for an INSERT statement cannot be used in a FETCH statement. Check the program, and try again.

尝试对游标进行无效操作。不能在 PUT 语句中使用为 SELECT 语句声明的游标。类似地,不能在 FETCH 语句中使用为 INSERT 语句声明的游标。检查程序,然后再试一次。

-489 Exception number out of bounds.

An exception number was requested that was either less than 1 or greater than the number of diagnostic entries in the diagnostic area.

请求的异常数小于 1 或大于诊断区域中的诊断条目数。

-490 Database was created without NLS functionality.

You created a database that lacked NLS functionality.

您创建了一个缺少 NLS 功能的数据库。

-491 DBNLS not set (LC_COLLATE must be string_value).

Set the DBNLS environment variable to an appropriate value. Make sure LC_COLLATE is set to the specified string_value.

将 DBNLS 环境变量设置为适当的值。确保 LC_COLLATE 设置为指定的 string_value 。

-492 LANG or LC_COLLATE environment variable invalid.

You specified an invalid value for a LANG or LC_COLLATE environment variable.

您为 LANG 或 LC_COLLATE 环境变量指定了一个无效的值。

-493 DBNLS not set (LC_CTYPE must be string_value).

Set the DBNLS environment variable to an appropriate value. Make sure LC_TYPE is set to the specified string_value.

将 DBNLS 环境变量设置为适当的值。确保 LC_TYPE 设置为指定的 string_value 。

-494 LANG or LC_CTYPE environment variable invalid.

You specified an invalid value for a LANG or LC_CTYPE environment variable.

您为 LANG 或 LC_CTYPE 环境变量指定了无效值。

-495 LANG or LC_MONETARY environment variable invalid.

You specified an invalid value for a LANG or LC_MONETARY environment variable.

您为 LANG 或 LC_MONETARY 环境变量指定了无效值。

-496 LANG or LC_NUMERIC environment variable invalid.

You specified an invalid value for a LANG or LC_NUMERIC environment variable.

您为 LANG 或 LC_NUMERIC 环境变量指定了无效值。

-497 LANG or LC_TIME environment variable invalid.

You specified an invalid value for a LANG or LC_TIME environment variable.

您为 LANG 或 LC_TIME 环境变量指定了无效值。

-498 Bad cixtomsg file. Check installation.

The version of the cixtomsg file, which holds the mapping table of SQLCODE to SQLSTATE values, is invalid. The cixtomsg file is located in the directory $GBS_HOME/msg. Check the date and size of the file. If the error recurs, note all circumstances and contact GBase Technical Support.

包含 SQLCODE 到 SQLSTATE 值的映射表的 cixtomsg 文件版本无效。cixtomsg 文件位于目录 $GBS_HOME/msg 中。检查文件的日期和大小。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-499 The operation causes a rowsize to exceed the allowable limit(32767).

The maximum size of a table record is 32,767 bytes. Check the summary sizes of all the fields in the table. Make sure that the operation you have attempted does not lead to exceeding the maximum row size.

表记录的最大大小为 32,767 字节。检查表中所有字段的汇总大小。确保您尝试的操作不会导致超过最大行大小。

-500 Clustered index index-name already exists in the table.

A table may be clustered on only one index at a time. This table is already clustered on the index whose name is shown. Before you can cluster on another index, you must execute ALTER INDEX index-name TO NOT CLUSTER. To see which tables are clustered on which indexes, query sysindexes and systables as follows:表一次只能聚集在一个索引上。此表已经聚集在显示其名称的索引上。在对另一个索引进行群集之前,必须执行 ALTER INDEX index-name TO NOT CLUSTER。要查看哪些表在哪些索引上聚集,请按以下方式查询 sysindexes 和 systables :SELECT tabname, idxname FROM systables T, sysindexes X WHERE T.tabid = X.tabid AND X.clustered = 'C'-501 Index index-name is already not clustered.

The table is no longer clustered on this index (if it ever was). Make sure that this is the index you meant; if so, you do not need to alter this index. For a way to see which tables are clustered, see the discussion of error -500.

表不再聚集在此索引上(如果曾经是的话)。确保这是您所指的索引;如果是,则不需要更改此索引。有关查看哪些表是群集的方法,请参见对 Error-500 的讨论。

-502 Cannot cluster index.

While the database server was building a new copy of the table with rows in clustered sequence, it got an unexpected error. Check the accompanying ISAM error code for more information. Typical causes include a shortage of disk space.

当数据库服务器构建一个新的表副本时,出现了一个意外的错误。有关更多信息,请查看附带的 ISAM 错误代码。典型原因包括磁盘空间不足。

-503 Too many tables locked.

This database server in this host operating system has a limit on the number of tables that can be locked at one time. It was unable to lock the table you requested. Roll back the current transaction. Then redesign the operation to lock fewer tables, to use row-level locking,or to open the database in exclusive mode.

此主机操作系统中的此数据库服务器对一次锁定的表数有限制。它无法锁定您请求的表。

回滚当前事务。然后重新设计操作以锁定较少的表、使用行级锁定或以独占模式打开数据库。

-504 Cannot lock a view.

This LOCK TABLE statement cannot be carried out because the table specified is really a view. Only real tables can be locked. Roll back the current transaction. Then redesign the operation to work against the real tables on which the view is based, or open the database in exclusive mode.

此 LOCK TABLE 语句无法执行,因为指定的表实际上是一个视图。只有真正的表才能上锁。回滚当前事务。然后重新设计操作,以针对视图所基于的实际表工作,或者以独占模式打开数据库。

-505 Number of columns in UPDATE does not match number of VALUES.

This UPDATE statement uses a SET clause in which a list of column names is set equal to a list of expressions or to a SELECT statement. The number of columns on the left of the equal sign is not the same as the number of data values produced on the right. Roll back the current transaction. Then rewrite this statement. If a list of expressions is used, check the punctuation to ensure that each expression is distinct.

If a SELECT statement is used, review it to see how many columns it returns.

此 UPDATE 语句使用 SET 子句,其中列名称列表设置为表达式列表或 SELECT 语句。

等号左边的列数与右边生成的数据值数不相同。回滚当前事务。然后重写这个语句。如果使用表达式列表,请检查标点符号以确保每个表达式是不同的。如果使用 SELECT 语句,请检查它以查看返回了多少列。

-506 Do not have permission to update all columns.

Your account has been granted the privilege of updating specific columns, but this UPDATE statement updates all columns or columns for which you do not have the privilege. Contact the owner of the table or someone with Database Administrator privilege on this database, and ask to be granted full UPDATE privilege. For a way to list table owners,see the discussion of error -313.

您的账户已被授予更新特定列的权限,但此 UPDATE 语句将更新您没有此权限的所有列或某些列。请与表的所有者或在此数据库上具有数据库管理员权限的人联系,并要求授予完全 UPDATE 权限。有关列出表所有者的方法,请参阅对 Error-313 的讨论。

-507 Cursor cursor-name not found.

The cursor that is named in the WHERE CURRENT OF clause in this UPDATE or DELETE statement does not exist. Review the spelling of the name. If it is as you intended, check the DECLARE statement to ensure that it has been executed. Also make sure that the cursor has not been freed with the FREE statement or during a failed automatic re-prepare attempt.

在此 UPDATE 或 DELETE 语句中的 WHERE CURRENT OF 子句中命名的游标不存在。检查名称的拼写。如果是您想要的,请检查 DECLARE 语句以确保它已被执行。还要确保游标没有被释放,或者在失败的自动重新准备尝试中。

-508 Cannot rename a temporary table.

This RENAME TABLE statement cannot be executed because the specified table is temporary. You cannot rename a temporary table. Review the spelling of the table name. If it is as you intended, drop it, and create it again under a different name.

无法执行此 RENAME TABLE 句,因为指定的表是临时表。不能重命名临时表。检查表名的拼写。如果它是您想要的,删除它,并再次以不同的名称创建它。

-509 Cannot rename a column in a temporary table.

This RENAME COLUMN statement cannot be executed because the specified table is temporary. You cannot rename a column in a temporary table.

Review the spelling of the table name. If it is as you intended, drop it, and create it again with different columns.

无法执行此 RENAME COLUMN 语句,因为指定的表是临时的。不能在临时表中重命名列。

检查表名的拼写。如果它是您想要的,那么删除它,然后用不同的列再次创建它。

-510 Cannot create synonym for temporary table table-name.

This CREATE SYNONYM statement cannot be executed because the specified table is temporary. Review the spelling of the table name. If it is as you intended, redesign the application. Either make the table permanent, or do not use a synonym.

由于指定的表是临时表,因此无法执行此 CREATE SYNONYM 语句。检查表名的拼写。如果它是您想要的,重新设计应用程序。要么使表永久化,要么不使用同义词。

-511 Cannot modify system catalog table-name.

You are not allowed to update, insert, or delete rows in this table. If you are absolutely sure that you must do so, sign on as user gbasedbt.

That user account can modify most system-catalog tables except LBAC related catalog tables. However, this very risky practice is not recommended unless you are specifically instructed by GBase Technical Support.

不允许更新、插入或删除此表中的行。如果您完全确定必须这样做,请以 gbasedbt 用户的身份登录。该用户账户可以修改大多数系统目录表,但与 LBAC 相关的目录表除外。但是,除非您得到 GBase 技术支持部门的特别指导,否则不推荐这种非常危险的做法。

-512 No References privilege on the referenced columns.

You do not have References privilege on the referenced columns. The owner of the referenced table or a user who has References privilege with the grant option on that table can grant you this privilege using the GRANT statement.

在引用的列上没有 References 权限。引用表的所有者或在该表上具有授予选项的References 权限的用户可以使用 GRANT 语句授予此权限。

-513 Statement not available with this database server.

You cannot do an xa_open() execution if another database is already open.

Make sure that you have closed any open databases before executing xa_open().

如果另一个数据库已经打开,则不能执行 xa_open() 。在执行 xa_open() 之前,确保已经关闭了所有打开的数据库。

-514 Only a DBA can create, drop, grant, or revoke for another user.

This data definition statement specifies a table, view, index, or synonym that is owned by another user or grants/revokes a privilege as another user. Any of these things requires Database Administrator privilege, which you do not have on this database. If you intended to work on objects that you own, review the punctuation of the statement.

At some point in it, you have qualified a name with the user ID of another account. Otherwise, get a DBA to grant you DBA privilege or to perform this operation for you.

此数据定义语句指定表、视图、索引或同义词,这些表、视图、索引或同义词属于另一个用户,或授予/撤销作为另一个用户的权限。任何这些事情都需要数据库管理员权限,而在此数据库上您没有这种权限。如果您打算处理您拥有的对象,请检查语句的标点符号。

在其中的某个时刻,您已经用另一个账户的用户 ID 对名称进行了限定。否则,请 DBA来授予您 DBA 权限或为您执行此操作。

-515 Constraint constraint-name has already been dropped.

You are trying to drop a constraint that has already been dropped in the same ALTER TABLE statement.

您正在尝试删除已在同一个 ALTER TABLE 语句中删除的约束。

-516 System error - temporary output file not created yet.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器与调用它的库函数之间的通信存在问题。检查您的程序是否与正在使用的数据库服务器处于相同的软件级别。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-517 The total size of the index is too large or too many parts in index.

All database servers have limits on the number of columns that can be included in an index and on the total number of bytes in a key (the sum of the widths of the columns). This CREATE INDEX statement would exceed that limit for this database server. GBase 8s Dynamic Server and GBase 8s Universal Server allow 16 key parts (columnar or functional) and a width of 390 bytes on a 2K page platform. On 4K page platforms or using a non-default page size allows greater than 390 bytes for the width of indexed columns. GBase 8s SE supports 8 columns and a width of 126 bytes. Other GBase 8s database servers allow 16 columns and 255 characters.

所有数据库服务器都对索引中可以包含的列数和键中的字节总数(列宽度之和)有限制。此CREATE INDEX 语句将超过此数据库服务器的限制。此 CREATE INDEX 语句将超过此数据库服务器的限制。GBase 8s Dynamic Server 和 GBase 8s Universal Server 在 2K 页面平台上允许 16 个关键部件(columnar 或 functional)和 390 字节的宽度。在 4K 页面平台上或使用非缺省页面大小时,索引列的宽度允许大于 390 字节。GBase 8s SE 支持 8 列和 126 字节的宽度,其他 GBase 数据库服务器允许 16 列和 255 个字符。

-518 Child constraint constraint-name not found.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-519 Cannot update column to illegal value.

One of the values in this UPDATE statement is based on an expression that is in error. Check each expression in the SET clause for validity.

Look in particular at uses of built-in functions such as LENGTH and DATE.

此 UPDATE 语句中的值之一基于错误的表达式。检查 SET 子句中的每个表达式是否有效。尤其要注意内置函数的使用,如 LENGTH 和 DATE。

-520 Cannot open database tblspace.

The database server cannot locate the disk partition in which it has stored a table that is referenced in this command. Contact the database server administrator to find out what the problem is. Possibly the chunk that contains this tblspace has been taken off-line.

数据库服务器无法定位它在其中存储了此命令中引用的表的磁盘分区。请与数据库服务器管理员联系,了解问题所在。可能包含这个 tblspace 的 chunk 已经被离线取走了。

-521 Cannot lock system catalog table-name.

You cannot lock any of the tables that comprise the system catalog. All users need them at all times. The database server handles concurrent access to them correctly, so simply remove this statement from your program.

无法锁定构成系统目录的任何表。所有用户在任何时候都需要它们。数据库服务器正确地处理对它们的并发访问,因此只需从程序中删除此语句即可。

-522 Table table-name not selected in query.

You used a correlation name to qualify a column name in either a GROUP BY clause or a SET clause. Consider rewriting the statement in an SPL routine that you then use as the triggered action, passing the column value as an argument. In any case, you must rewrite the statement without a using a correlation name in the GROUP BY clause or the SET clause.

您使用关联名称限定 GROUP BY 子句或 SET 子句中的列名。考虑在 SPL 例程中重写语句,然后将其用作触发的操作,将列值作为参数传递。在任何情况下,您都必须重写语句,而不必在 GROUP BY 子句或 SET 子句中使用关联名称。

-523 Can only recover, repair or drop table.

This statement (RECOVER, REPAIR, or DROP) specifies a view. However,these statements are only supported for real tables, not views. In the case of DROP, if you drop any of the tables used in the view, the view will be removed as well. To recover or repair this table, you must recover or repair the tables on which the view is defined. For a way to list the names of tables that are views, see the discussion of error-394.

此语句( RECOVER、 REPAIR 或 DROP )指定视图。但是,这些语句只支持真正的表,而不是视图。在 DROP 的情况下,如果您删除视图中使用的任何表,视图也将被删除。若要恢复或修复此表,必须恢复或修复定义视图的表。有关列出作为视图的表的名称的方法,请参见对 Error-394 的讨论。

-524 Lock table can only be used within a transaction.

Because this database has a transaction log, a table can only be locked within a transaction. Review the program, and ensure that a BEGIN WORK statement is issued to start a transaction before this statement.

由于此数据库具有事务日志,因此只能在事务中锁定表。检查程序,并确保在此语句之前发出 BEGIN WORK 语句以启动事务。

-525 Failure to satisfy referential constraint constraint-name.

During an ALTER TABLE or SET statement, you have added or re-enabled a referential constraint that the data in the table violates. Check that the data in the referencing column (child key) exists in the referenced column (parent key).

在 ALTER TABLE 或 SET 语句期间,添加或重新启用了表中数据违反的引用约束。检查引用列(子键)中的数据是否存在于引用列(父键)中。

-526 Updates are not allowed on a scroll cursor.

For a DECLARE statement, the clause FOR UPDATE is not allowed in conjunction with the SCROLL keyword. For an UPDATE statement in an ANSI-compliant database (in which the FOR UPDATE clause is not required when declaring a cursor for update), the cursor named in this statement was declared with the SCROLL keyword and may not be used for updates.

The way a scroll cursor is implemented makes it unsafe for updating a table, since it will sometimes not reflect the current state of the selected rows. If you want to use a scroll cursor to examine rows and then update them, you may redesign your application in the following way (among many). Use the scroll cursor to select also the ROWID of each row. Declare a second, nonscrolling cursor that selects one row for update based on its ROWID. When it is time to update a selected row:对于 DECLARE 语句,不允许将 UPDATE 子句与 SCROLL 关键字结合使用。对于符合 ANSI标准的数据库中的 UPDATE 语句(在该数据库中,在声明更新游标时不需要 FOR UPDATE子句),此语句中命名的游标是用 SCROLL 关键字声明的,因此不能用于更新。实现滚动游标的方式使更新表不安全,因为它有时不会反映选定行的当前状态。如果您想使用滚动游标检查行,然后更新它们,您可以通过以下方式重新设计应用程序(包括许多)。使用滚动光标也可以选择每一行的 ROWID 。声明第二个非滚动游标,该游标根据 ROWID 选择一行进行更新。当需要更新选定的行时:* Open the update cursor using the ROWID value found by the scrolling cursor.

* 使用滚动游标找到的 ROWID 值打开更新游标。

* Fetch the row, and check the error code (the row might have been deleted).

* 获取该行,并检查错误代码(该行可能已被删除)。

* If the fetch succeeded, verify that the row contents are unchanged from those selected by the scrolling cursor (the row is now locked, so it cannot change further, but it might have changed between the two fetches).

* 如果提取成功,请验证行内容与滚动游标选择的行内容保持不变(该行现在已锁定,因此无法进一步更改,但可能在两次提取之间发生了更改)。

* If the row is unchanged, update it using the nonscrolling cursor.

* 如果行未更改,请使用非滚动游标更新该行。

* Close the nonscrolling cursor.

* 关闭无滚动光标。

* This procedure ensures that the update reflects the current state of the table but also retains the convenience of the scrolling cursor. A fetch by ROWID of a recently fetched row will usually entail no disk activity and so will not cost much time.

* 此过程确保更新反映表的当前状态,但也保留滚动光标的方便性。ROWID 对最近获取的行的获取通常不需要磁盘活动,因此不会花费太多时间。

-527 Lock Mode is not available on this system.

You tried to use the SET LOCK MODE TO WAIT statement on GBase 8s SE,but your GBase 8s SE database server uses CREATE LOCKING rather than System V locking. If the error recurs, note all circumstances and contact GBase Technical Support.

您尝试在 GBase SE 上使用 SET LOCK MODE TO WAIT 语句,但是您的 GBase 8s SE 数据库服务器使用 CREATE LOCKING 而不是 System V locking。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

The database server cannot execute the SET LOCK MODE TO WAIT statement because the host operating system does not have adequate support for locking to permit waiting for a lock to be released. On this system,your program will be notified when a table or row is locked (with an error such as -233 or -378); your program determines what to do next,such as rolling back the transaction and trying it again.

数据库服务器无法执行 SET LOCK MODE TO WAIT 语句,因为主机操作系统没有足够的锁定支持以允许等待释放锁。在这个系统上,当一个表或行被锁定时,程序将被通知(包含一个错误,例如 -233 或 -378 );您的程序决定下一步要做什么,例如回滚事务并再次尝试它。

-528 Maximum output rowsize max-size exceeded.

The total number of bytes that this statement selects exceeds the maximum that can be passed between the database server and the program.

Make sure that the columns selected are the ones that you intended.

Check that you have not named some very wide character column by mistake, neglected to specify a substring, or specified too long a substring. If the selection is what you require, rewrite this SELECT statement into two or more statements, each of which selects only some of the fields. If it is a join of several tables, you might best select all desired data INTO TEMP; then select individual columns of the temporary table. If this is a fetch via a cursor in a program, you might revise the program as follows. First, change the cursor to select only the ROWID of the desired row. Second, augment the FETCH statement with a series of SELECT statements, each of which selects one or a few columns WHERE ROWID = the saved row ID.

此语句选择的字节总数超过了数据库服务器和程序之间可以传递的最大字节数。确保所选列是您所希望的列。检查是否错误地命名了某个非常宽的字符列,忽略了指定子字符串,或指定了太长的子字符串。如果所选内容符合您的要求,请将此 SELECT 语句重写为两个或多个语句,每个语句只选择部分字段。如果它是多个表的联接,则最好将所有需要的数据都选择到临时表中;然后选择临时表的各个列。如果这是通过程序中的游标获取的,您可以按照以下方式修改程序。首先,将光标更改为只选择所需行的 ROWID 。其次,用一系列 SELECT 语句来增强 FETCH 语句,每个语句都选择一个或几个列,其中 WHERE ROWID = 保存的行 ID 。

-529 Cannot attach to transaction.

Your application program is unable to initialize its connection to the database server because you are using a shared-memory implementation.

Either the database shared memory has not been initialized, or the maximum number of users has already started using the system. Check the accompanying ISAM error code for more information.

您的应用程序无法初始化到数据库服务器的连接,因为您使用的是共享内存实现。数据库共享内存尚未初始化,或者已开始使用系统的最大用户数。有关更多信息,请查看附带的 ISAM 错误代码。

-530 Check constraint constraint-name failed.

The check constraint placed on the table column was violated. To see the check constraint associated with the column, query the syschecks system catalog table. However, you must know the constrid for the check constraint before you query syschecks. (The constrid is assigned in the sysconstraints system catalog table.) Use the following subquery to show the check constraint for constraint-name:违反了放置在表列上的 CHECK 约束。若要查看与该列关联的 CHECK 约束,请查询syschecks 系统目录表。但是,在查询 syschecks 之前,您必须知道 CHECK 约束的constrid 。( constrid 是在 sysconstrains 系统目录表中分配的。)使用以下子查询显示约束名称的 CHECK 约束:SELECT * FROM syschecks WHERE constrid = (SELECT constrid FROM sysconstraints WHERE constrname = constraint-name)In certain scenarios, you might get this error without a constraint name being specified. This can happen if you are performing a DDL operation that has a check constraint that is violated by the existing data on the table.

In this case, the DDL operation would not succeed, and thus the constraint name would not be in the system catalog.

在某些情况下,可以在不指定约束名称的情况下获得此错误。如果执行的 DDL 操作具有CHECK 约束,而该约束被表上现有数据违反,则可能发生这种情况。在这种情况下,DDL操作不会成功,因此约束名称将不在系统目录中。

-531 Duplicate column column-name exists in view.

This CREATE VIEW statement gives a list of column names, and at least one of them appears twice in the list. Review the list of column names,and make sure that each appears only once.

这个 CREATE VIEW 语句提供了一个列名列表,其中至少有一个在列表中出现了两次。检查列名列表,并确保每个列名只出现一次。

-532 Cannot alter temporary table table-name.

The table shown is only a temporary table. It will vanish when this session ends. Such tables cannot be altered. To alter the shape of the table, simply drop it, and re-create it.

所示的表只是一个临时表。当这次会话结束时,它就会消失。这样的表是不能更改的。若要更改表的形状,只需将其删除,并重新创建它。

-533 Extent size too small, minimum size is number k.

The size that is specified for a disk extent (either the EXTENT SIZE or the NEXT SIZE clause) must be at least four times the disk page size,as shown. Generally, set EXTENT SIZE large enough to hold all of the rows as you initially estimate them, and set NEXT SIZE at an eighth or a quarter of that.

为磁盘 extent 指定的大小( EXTENT SIZE 或 NEXT SIZE 子句)必须至少是磁盘页大小的四倍,如下图所示。通常,将 EXTENT SIZE 设置为足够容纳所有行,正如您最初估计的那样,并将 NEXT SIZE 设置为八分之一或四分之一。

-534 Could not insert new row into table, table is locked.

Roll back the current transaction, and run it again when the table has been unlocked.

回滚当前事务,并在表被解锁后再次运行它。

-534 Cannot open EXPLAIN output file.

The statement SET EXPLAIN ON has been executed, and the database server is trying to open the file sqexplain.out in the current working directory. An operating-system error of some kind prevents it. See the ISAM error code for more information. Look for operating-system error messages that might give more detail. Likely problems include a lack of write permissions in the current directory and a full disk.

SET EXPLAIN ON 语句已被执行,数据库服务器正在尝试打开当前工作目录中的sqexplain.out 文件。某种类型的操作系统错误阻止了它的发生。有关更多信息,请参见ISAM 错误代码。寻找可能提供更多细节的操作系统错误消息。可能的问题包括当前目录中缺乏写权限和磁盘完整。

-535 Already in transaction.

This BEGIN WORK statement is redundant; a transaction is already in progress. If this is a program, review its logic to make sure it has not accidentally failed to end the previous transaction.

这个 BEGIN WORK 语句是多余的;事务已经在进行中。如果这是一个程序,请检查它的逻辑,以确保它没有意外地结束先前的事务。

-536 Number of columns in child constraint does not match number of cols in parent constraint.

The number of referencing columns (child key) does not match the number of referenced columns (parent key) in the referential constraint. Check that a one-to-one relationship exists between referenced and referencing columns.

引用列的数量(子键)与引用约束中的引用列数(父键)不匹配。检查引用列和引用列之间是否存在一对一的关系。

-537 Constraint column column-name not found in table.

The column that is specified in a constraint definition does not exist.

约束定义中指定的列不存在。

-538 Cursor cursor-name has already been declared.

The cursor that is named in this DECLARE statement has also been named in a DECLARE statement that was executed earlier. Possibly the same DECLARE is being executed in a loop, or possibly the program meant to execute a FREE statement for this cursor but did not. Review the program logic to ensure that it executes only a single DECLARE for each cursor (except after freeing one).

在此 DECLARE 语句中命名的游标也已在前面执行的 DECLARE 语句中命名。可能是在循环中执行相同的 DECLARE ,也可能是为了执行该游标的 FREE 语句的程序,但没有执行。

检查程序逻辑,以确保它只对每个游标执行一个 DECLARE (释放游标之后除外)。

-539 DBTEMP too long.

The pathname in the DBTEMP environment variable exceeds the limit on pathnames, which is 80 characters. You will have to locate the temporary directory higher in the directory hierarchy.

DBTEMP 环境变量中的路径名超过了路径名的限制,即 80 个字符。您必须在目录层次结构中找到较高的临时目录。

-540 Write failed on constraints.

An error occurred while defining a constraint. Possibly you have defined a constraint whose name duplicates the name of another constraint, table, or index. If this is the case, repeat the statement,specifying a unique name. Otherwise, check the accompanying ISAM error code for more information.

定义约束时发生错误。可能您已经定义了一个约束,其名称与另一个约束、表或索引的名称重复。如果是这样的话,请重复该语句,指定唯一的名称。否则,请查看附带的ISAM 错误代码以获得更多信息。

-541 User does not have ALTER privilege.

You must have the correct privilege before you can alter the name of a table or the names, types, or number of columns in it. You must also have the correct privileges to set the object modes for constraints and triggers.

在更改表的名称或表中的名称、类型或列数之前,必须具有正确的权限。您还必须拥有为约束和触发器设置对象模式的正确权限。

You must be the owner of the database object, have Database Administrator privilege in the database, or be granted ALTER privilege for the database object by its owner or a DBA. See the discussion of error -313 for a way to list the owners of tables and users with DBA privilege.

您必须是数据库对象的所有者,在数据库中具有数据库管理员权限,或者由其所有者或DBA 授予数据库对象的 ALTER 权限。请参阅对 Error-313 的讨论,以获得列出具有DBA 权限的表和用户的所有者的方法。

-542 Cannot specify a column more than once in a constraint, trigger,or index.

You name the same column more than once in the triggering column list of an update trigger. Remove the duplicate occurrence of the column name, and try again. This error also will appear if duplicate column names exist in the index list.

在更新触发器的触发列表中,可以多次命名同一列。删除列名的重复出现,然后再试一次。如果索引列表中存在重复的列名,也会出现此错误。

-543 ESCAPE character must be only one byte.

In the WHERE clause, a subclause ESCAPE char contains more than one character as char. Review the punctuation of the clause, and revise it so that it specifies just one byte character.

在 WHERE 子句中,子句 ESCAPE 字符包含多个字符作为 char 。检查该子句的标点符号,并对其进行修改,使其仅指定一个字节字符。

-544 Cannot have aggregates within aggregates.

The statement contains a call on an aggregate function within the parameter list for another aggregate function, such as SUM(MAX(column)). This action is not supported because all aggregates are calculated over the same groups of rows. If you did not intend an expression of this sort, look for missing or misplaced parentheses. If you did intend it, rethink the query. For example, you might select the MAX values into a temporary table and then take their SUM.

该语句包含对另一个聚合函数的参数列表中的聚合函数的调用,例如 SUM(MAX(column))不支持此操作,因为所有聚合都是在同一组行上计算的。如果不打算使用此类表达式,请查找缺少或放置错误的括号。如果您确实打算这样做,请重新考虑查询。例如,您可以将最大值选择到临时表中,然后接受它们的和。

-545 No write permission for table table-name.

Check the accompanying ISAM error code for more information. With this database server, a database is a directory with the name dbname.dbs,while tables and indexes are files within that directory. You need to have read and write access to all these files in order to exercise normal database functions.

有关更多信息,请查看附带的 ISAM 错误代码。对于此数据库服务器,数据库是名为dbname.dbs 的目录,而表和索引是该目录中的文件。为了行使正常的数据库功能,您需要对所有这些文件进行读写访问。

-546 Cannot have host variables when creating a view view-name.

This statement either prepares or executes a CREATE VIEW statement in which the SELECT statement refers to host variables. This action is not supported. The SELECT statement in a view can be executed from any program and cannot rely on the variables of one program. Review the CREATE VIEW statement, and make sure that it does not contain the names of any host variables, an INTO clause, or a ? placeholder.

此语句准备或执行 CREATE VIEW 语句,其中 SELECT 语句引用宿主变量。不支持此操作。视图中的 SELECT 语句可以从任何程序执行,不能依赖于一个程序的变量。检查CREATE VIEW 语句,确保它不包含任何主机变量、INTO 子句或?占位符的名称。

-547 Must rollforward database in the directory where the database is.

Before you execute the ROLLFORWARD statement, make the current directory the directory that contains the dbname.dbs directory for the database. Then execute the statement again.

在执行 ROLLFORWARD 语句之前,使当前目录成为包含数据库 dbname.dbs 目录的目录。

然后再次执行该语句。

-548 No referential constraint or trigger allowed on a TEMP table.

You cannot create a constraint or a trigger on a temporary (TEMP)table. Consider creating the temporary table as a permanent table in the database. If this option is feasible, create the table, and then create the trigger on it.

不能在临时(TEMP)表上创建约束或触发器。考虑将临时表创建为数据库中的永久表。

如果此选项可行,请创建表,然后在其上创建触发器。

-549 Column column-name in UNIQUE constraint is not a column in the table.

The column appears in the list of columns for a UNIQUE clause, but it is not one of the columns defined in this table. Check the spelling of all column names in this statement. If they are as you intend, then check the definition of the table. See the discussion of error -328 for a way to list all column names in a table.

列出现在 UNIQUE 子句的列表中,但它不是此表中定义的列之一。检查此语句中所有列名的拼写。如果它们是您想要的,那么检查表的定义。有关在表中列出所有列名的方法,请参见对 Error-328 的讨论。

-550 Total length of columns in constraint is too long.

The total size of all the columns listed in a UNIQUE, PRIMARY KEY, or FOREIGN KEY clause is limited. The limit is the same as the restriction on the total size of all columns in a composite index.

GBase 8s Dynamic Server allows 16 key parts and a width of 390 bytes on a 2K page platform. On 4K page platforms or using a non-default page size allows greater than 390 bytes for the width of indexed columns.

GBase 8s SE supports 8 columns and a width of 126 bytes.

Other GBase 8s database servers allow 16 columns and 255 bytes.

The limit depends on the database server in use, but all servers support a total of at least 120 bytes.

UNIQUE、PRIMARY KEY 或 FOREIGN KEY 子句中列出的所有列的总大小是有限的。该限制与对复合索引中所有列的总大小的限制相同。GBase 8s Dynamic Server 在2K页面平台上允许 16 个关键部件和 390 字节的宽度。在 4K 页面平台或使用非缺省页面大小时,索引列的宽度允许大于 390 字节。GBase 8s SE 支持 8 列和 126 字节。其他GBase 8s 数据库服务器允许 16 列和 255 字节。限制取决于正在使用的数据库服务器,但所有服务器总共支持至少 120 个字节。

For additional information, see the CREATE TABLE statement in the GBase 8s Guide to SQL: Syntax.

有关其他信息,请参阅 GBase 8s SQL 指南:语法中的 CREATE TABLE 语句。

-551 The constraint contains too many columns.

The total number of columns listed in a UNIQUE, PRIMARY KEY, or FOREIGN KEY clause is limited. The limit depends on the database server in use,but all database servers support eight columns. The limit is the same as the restriction on the number of columns in a composite index. For additional information, refer to the CREATE INDEX statement in the GBase 8s Guide to SQL: Syntax.

UNIQUE、PRIMARY KEY 或 FOREIGN KEY 子句中列出的列总数是有限的。限制取决于正在使用的数据库服务器,但所有数据库服务器都支持八列。该限制与对复合索引中列数的限制相同。有关其他信息,请参阅GBase 8s SQL 指南:语法中的 CREATE INDEX 语句。

-552 Blob host variables are disallowed in multi-statement prepares.

This EXECUTE statement executes a prepared list of multiple statements.

One or more of the host variables supplied for the ? placeholders in the list is a locator structure for a TEXT or BYTE value. This action is not allowed. Statements that refer to TEXT or BYTE variables may be prepared and executed, but they must be single statements, not part of a multistatement list.

这个 EXECUTE 语句执行一个准备好的多个语句列表。为列表中的?占位符提供的一个或多个主机变量是 TEXT 或 BYTE 值的定位符结构。此操作是不允许的。可以准备和执行引用 TEXT 或 BYTE 变量的语句,但它们必须是单个语句,而不是多语句列表的一部分。

-553 Mkdbsdir not found in $GBS_HOME/bin. Consult your installation instructions.

An executable program, mkdbsdir, is used to create the initial contents of the database directory during a CREATE DATABASE statement. It is distributed with the database server and should be found in the bin subdirectory of the directory that the GBS_HOME environment variable names, but it was not. Check the setting of GBS_HOME, and then consult with the person who installed the software.

可执行程序 mkdbsdir 用于在 CREATE DATABASE 语句期间创建数据库目录的初始内容。

它与数据库服务器一起分布,应该在 GBS_HOME 环境变量名所在目录的 bin 子目录中找到,但它不是。检查 GBS_HOME 的设置,然后咨询安装软件的人员。

-554 Syntax disallowed in this database server.

The database server that you are using does not support this statement or some clause in it. When a program starts, the database server in use is chosen based on the SQLEXEC environment variable . Several small differences in statement syntax exist between GBase 8s SE and other GBase 8s database servers.

所使用的数据库服务器不支持此语句或其中的某些子句。当程序启动时,将根据 SQLEXEC环境变量选择正在使用的数据库服务器。GBase 8s SE 和 其他 GBase 8s 数据库服务器在语句语法上存在一些细微的差异。

For example, GBase 8s SE supports the IN 'pathname' clause of the CREATE TABLE statement while other GBase 8s database servers support the IN dbspace clause instead.

例如,GBase 8s SE 支持 CREATE TABLE 语句的 IN‘path name’子句,而其他 GBase 8s 数据库服务器则支持 IN dbspace 子句。

-555 Cannot use a select or any of the database statements in a multi-query prepare.

The statement text that is presented with this PREPARE statement has multiple statements divided by semicolons, and one is a SELECT,DATABASE, CREATE DATABASE, or CLOSE DATABASE statement. These statements must always be prepared as one-statement texts. Check the statement text string, and make sure that you intended multiple statements. If you did, revise the program to execute these four statement types alone.

与这个 PREPARE 语句一起出现的语句文本有多个语句被划分,其中一个语句是 SELECT、DATABASE、CREATEDATABASE 或 CLOSE DATABASE 语句。这些语句必须始终作为一个语句文本来准备。检查语句文本字符串,并确保您希望有多个语句。如果是这样的话,修改程序来单独执行这四种语句类型。

-556 Cannot create, drop, or modify an object that is external to current database.

This statement attempts to create, drop, or alter an object in an external database, one other than the current database. You can only read the contents of an external database.

此语句尝试在外部数据库中创建、删除或更改对象,而不是当前数据库。只能读取外部数据库的内容。

If you make the external database your current database, you can modify the contents. Review all uses of names beginning with ,which refers to an object in the external database .

如果将外部数据库作为当前数据库,则可以修改内容。检查以 开头、指向外部数据库 的对象的名称的所有用法。

-557 Cannot locate table that is external to the current database after levels of synonym mapping.

One of the tables named in this query was in fact a synonym, and it pointed outside the current database. It named another synonym that pointed outside its database, and so on for synonyms with no real table being found. The database server has given up on the query in case an endless chain of synonyms exists.

这个查询中命名的表之一实际上是同义词,它指向当前数据库之外。它命名了另一个同义词,该同义词指向它的数据库外。对于 没有找到实际表的同义词。数据库服务器已放弃查询,以防存在无穷无尽的同义词链。

To review the synonyms in the current database that refer to external databases, query systables and syssyntable as follows:要查看当前数据库中引用外部数据库、查询系统和 syssyntable 的同义词,如下所示:SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM systables T, syssyntable S WHERE T.tabtype = 'S' AND T.tabid = S.tabid AND S.btabid IS NULL To follow a chain of synonyms through external databases, use a similar query in the external database and substitute for servername, dbname,and tabname the values that the preceding query returns each time.

若要在外部数据库中遵循同义词链,请在外部数据库中使用类似的查询,并将每次查询返回的值替换为 serverName、dbname 和 tabname 。

SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM dbname@servername:systables T, dbname@servername:syssyntable S WHERE T.tabtype = 'S' AND T.tabname = 'tabname'AND T.tabid = S.tabid When this query returns no row, the requested tabname is not defined as a synonym in that database (it is a table, a view, or not defined).

当此查询不返回任何行时,请求的表名不会定义为该数据库中的同义词(它是表、视图或未定义)。

-558 Changrp not found in $GBS_HOME/bin. Consult your installation instructions.

This command requires the presence of an executable program named changrp, which is normally installed as part of the database server. It should be in the bin subdirectory of the directory that GBS_HOME environment variable names. Check the value in that variable, and then consult with the person who installed the software.

此命令要求存在一个名为 changrp 的可执行程序,该程序通常作为数据库服务器的一部分安装。它应该位于 GBS_HOME 环境变量名的 bin 子目录中。检查该变量中的值,然后与安装该软件的人员协商。

-559 Cannot create a synonym on top of another synonym.

This CREATE SYNONYM statement names another synonym. Making a chain of synonyms is not supported. See the discussion of error -218 for a way to list the names of all synonyms. To have a second synonym with the same meaning as the first, find out the meaning of the other synonym.

Then make a new synonym to refer to the same base table. To see the base table for a given synonym, query systables and syssyntable as follows, substituting the name of the synonym:这个创建 CREATE SYNONYM 语句命名了另一个同义词。不支持建立同义词链。有关列出所有同义词名称的方法,请参阅对 Error-218 的讨论。要有第二个同义词,与第一个同义词的意思相同,请找出另一个同义词的意思。然后创建一个新的同义词来引用同一个基表。若要查看给定同义词的基表,请按以下方式查询系统和 syssyntable ,替换同义词的名称:SELECT T.tabname synonym, S.* FROM systables T, syssyntable S WHERE T.tabname = name AND T.tabid = S.tabid If btabid is defined in the resulting display, the synonym refers to a table in that current database with that tabid; otherwise, it refers to an external database.

如果在结果显示中定义了 btabid ,则同义词使用该 tabid 引用当前数据库中的表;否则,它引用外部数据库。

-560 Synonym with tabid number not found in systables.

Either the systables or syssyntable system catalog, or an index on one of these, has been corrupted. Run the bcheck or secheck utility. Be prepared to drop and re-create all synonyms.

系统目录或 syssyntable 系统目录,或其中之一的索引已损坏。运行 bcheck 或secheck 实用程序。准备好放弃并重新创造所有的同义词。

-561 Sums and averages cannot be computed on datetime values.

This statement applies an aggregate function such as SUM to a column that has the type DATETIME. The function is not defined on this data type since arithmetic is not. Review the use of aggregate functions.

You will have to revise the query.

此语句将聚合函数(如 SUM )应用于具有 DATETIME 类型的列。此数据类型不定义函数,因为算术不是。检查聚合函数的使用情况。您必须修改查询。

-562 Database conversion failed.

You are running a new version of the database server, and you just opened a database for the first time with this level of the software.

The database server tried to upgrade the database automatically,probably by defining an additional system-catalog table. An unexpected error occurred. Check the accompanying ISAM error code for more information. If the error recurs, note all circumstances and contact GBase Technical Support.

您正在运行一个新版本的数据库服务器,您刚刚用这个级别的软件首次打开了一个数据库。数据库服务器试图自动升级数据库,可能是通过定义额外的系统目录表来实现的。发生了意外错误。有关更多信息,请查看附带的 ISAM 错误代码。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-563 Cannot acquire exclusive lock for database conversion.

You are running a new version of the database server, and you have just opened a database for the first time with this level of the software.

The database server has tried to upgrade the database automatically,probably by defining an additional system catalog table. However, it needs to lock the database for exclusive use to do this conversion, and some other user has the database open. Wait a short time, and try this statement again. At that time, the database might be free (or another user's action might have updated it).

您正在运行一个新版本的数据库服务器,您刚刚用这个级别的软件首次打开了一个数据库。数据库服务器试图自动升级数据库,可能是通过定义额外的系统目录表。但是,它需要锁定数据库以便进行这种转换,而且其他一些用户打开了数据库。稍等片刻,再试一次这个语句。那时,数据库可能是空闲的(或者其他用户的操作可能已经更新了它)。

-564 Cannot sort rows.

This internal error reflects an unexpected condition during a sort.

Check the accompanying ISAM error code for more information. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误反映了排序过程中的意外情况。有关更多信息,请查看附带的 ISAM 错误代码。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-565 Cannot read sorted rows.

This internal error reflects an unexpected condition during a sort.

Check the accompanying ISAM error code for more information. If the error recurs note all circumstances and contact GBase Technical Support.

此内部错误反映了排序过程中的意外情况。有关更多信息,请查看附带的 ISAM 错误代码。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-566 Cannot initiate sort.

This internal error reflects an unexpected condition during a sort.

Check the accompanying ISAM error code for more information. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误反映了排序过程中的意外情况。有关更多信息,请查看附带的 ISAM 错误代码。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-567 Cannot write sorted rows.

This internal error reflects an unexpected condition during a sort.

Check the accompanying ISAM error code for more information. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误反映了排序过程中的意外情况。有关更多信息,请查看附带的 ISAM 错误代码。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-568 Cannot reference an external database without logging.

This statement refers to a database other than the current database.

However, the current database uses transaction logging, and the external one does not. This action is not supported; the databases that are used in a single transaction must all use logging or all not use it.

此语句引用当前数据库以外的数据库。但是,当前数据库使用事务日志记录,而外部数据库不使用事务日志。不支持此操作;在单个事务中使用的数据库必须全部使用日志记录,或者全部不使用日志。

-569 Cannot reference an external database with logging.

This statement refers to a database other than the current database.

However, the current database does not use transaction logging, and the external one does. This action is not supported; the databases that are used in a single transaction must all use logging or all not use it.

此语句引用当前数据库以外的数据库。但是,当前数据库不使用事务日志记录,外部数据库使用事务日志记录。不支持此操作;在单个事务中使用的数据库必须全部使用日志记录,或者全部不使用日志。

-570 Cannot reference an external ANSI database.

This statement refers to a database other than the current database.

However, the current database is not ANSI compliant, and the external one is. This action is not supported; the databases that are used in a single transaction must all be ANSI compliant, or all must not be.

此语句引用当前数据库以外的数据库。但是,当前数据库不兼容 ANSI ,而外部数据库是兼容的。不支持此操作;在单个事务中使用的数据库必须全部符合 ANSI ,或者所有数据库都必须符合 ANSI 。

-571 Cannot reference an external non-ANSI database.

This statement refers to a database other than the current database.

However, the current database is ANSI compliant, and the external one is not. This action is not supported; the databases used in a single transaction must all be ANSI compliant, or all must not be.

此语句引用当前数据库以外的数据库。但是,当前数据库符合 ANSI 标准,而外部数据库则不兼容。不支持此操作;单个事务中使用的数据库必须全部符合 ANSI ,或者所有数据库都必须符合 ANSI 。

-572 The specified wait duration is too long.

The maximum time that you can specify as the WAIT time in SET LOCK MODE is 32,767 seconds. Review this statement, and make sure it specifies the duration in seconds that you intended. If so, either use a shorter duration, or (since 32,767 seconds is more than 9 hours) simply omit the duration to specify an indefinite wait.

在 SET LOCK MODE 中,您可以指定为等待时间的最大时间是 32,767 秒。检查此语句,并确保它指定了您想要的持续时间(秒)。如果是这样的话,要么使用更短的持续时间,要么(因为 32,767 秒超过 9 小时)只需省略持续时间以指定无限期等待。

-573 Cannot set log to buffered in a mode ANSI database.

This statement tries to apply BUFFERED LOG mode, but the database is ANSI compliant; that is, it was created with the clause MODE ANSI. One aspect of ANSI compliance is that all transactions are logged immediately during the execution of the COMMIT WORK statement. The use of a buffered log entails a deferred write of log records. It improves performance at some slight risk of failing to log a transaction. Such a risk is not allowed under the standard; an ANSI-compliant database must use unbuffered logging.

此语句尝试应用缓冲日志模式,但数据库符合 ANSI ;也就是说,它是用子句模式 ANSI创建的。 ANSI 遵从性的一个方面是,在执行提交工作语句期间立即记录所有事务。使用缓冲日志需要延迟写入日志记录。它提高了性能,降低了记录事务的风险。这种风险在标准下是不允许的;符合 ANSI 标准的数据库必须使用无缓冲日志记录。

-574 A subquery has returned not exactly one column.

This statement contains a subquery (a SELECT statement within parentheses)to represent a single value (on one side of a relational operator such as equals). Such a subquery must return exactly one row and one column;otherwise, it is unclear which value the subquery represents. This subquery has returned more than one value. This error can occur if you specify the ITEM keyword in a collection subquery with more than one element in the projection list.

该语句包含一个子查询(圆括号内的 SELECT 语句),用于表示单个值(在关系运算符,如等号的一侧)。这样的子查询必须准确地返回一行和一列;否则,不清楚子查询表示哪个值。此子查询已返回多个值。如果在集合子查询中指定 ITEM 关键字,且投影列表中有多个元素,则可能发生此错误。

Review all subqueries to make sure that they can return at most one column(by listing only one expression after SELECT) and at most one row (by testing a unique key in the WHERE clause). For a collection subquery, either drop the ITEM keyword or make sure that the projection list contains only one element.

检查所有子查询,以确保它们最多只能返回一列(在 SELECT 之后只列出一个表达式)和最多返回一行(通过测试 WHERE 子句中的唯一键)。对于集合子查询,可以删除 ITEM关键字,或者确保投影列表只包含一个元素。

-575 LENGTH() requires string type values.

This statement contains a use of LENGTH that is applied to a column or an expression that is not a character type (not CHAR or VARCHAR). This action is not supported. Review the uses of LENGTH, and make sure they apply only to character values.

此语句包含长度的用法,它应用于非字符类型的列或表达式(不是 CHAR 或 VARCHAR )。

不支持此操作。检查长度的用法,并确保它们仅适用于字符值。

-576 Cannot specify CONSTRAINT name for TEMP table.

You cannot specify a constraint (either UNIQUE, PRIMARY KEY, or CHECK)name for constraints placed on temporary tables. This action is not supported for a temporary table. However, you can specify that a column receives one of these constraints, and you can specify a list of columns as having a constraint, but you may not use the CONSTRAINT constraint-name clause. Temporary tables and their indexes are not recorded in the usual system catalog tables.

不能为放置在临时表上的约束指定约束( UNIQUE、 PRIMARY KEY 或 CHECK)名称。临时表不支持此操作。但是,可以指定列接收这些约束之一,并且可以将列表指定为具有约束,但不能使用 CONSTRAINT constraint-name 子句。临时表及其索引不记录在通常的系统目录表中。

-577 A constraint of the same type already exists on the column set.

You have placed a constraint (either UNIQUE, PRIMARY KEY, FOREIGN KEY,or CHECK) on a set of columns, but a constraint of the same type on those columns already exists. In the case of a FOREIGN KEY, this error only occurs if the same foreign-key set of columns references the same existing parent key set of columns. Either the constraint was established when the table was created, or it was added later. Because the constraint already exists, it is not added again.

您在一组列上放置了一个约束(要么是 UNIQUE,要么是 PRIMARY KEY,要么是 FOREIGN KEY,或者是 CHECK),但是在这些列上已经存在相同类型的约束。对于 FOREIGN KEY,只有当相同的列外键集引用相同的现有列父键集时,才会发生此错误。要么是在创建表时建立约束,要么是在以后添加约束。因为约束已经存在,所以不会再次添加约束。

-578 Owner name is too long.

This statement contains an owner name that qualifies the name of a table,view, index or synonym, and the owner name is longer than the maximum of 32 characters (for example, overly_long1234567890123456789012.tablename).

Review the punctuation and spelling of all identifiers. Possibly an omitted space or comma causes two names to run together. To check the names of all known owners, select the owner column of the relevant system catalog: systables, sysindexes, or syssynonyms.

此语句包含一个所有者名称,该名称限定表、视图、索引或同义词的名称,并且所有者名称的长度超过 32 个字符的最大长度(例如,overly_long1234567890123456789012.tablename)。请检查所有标识符的标点符号和拼写。一个省略的空格或逗号可能会导致两个名称一起运行。要检查所有已知所有者的名称,请选择相关系统目录的所有者列: systables、sysindexes 或 syssynonyms 。

-579 Not owner of synonym.

You do not own the synonym that is specified in this DROP SYNONYM statement. To drop an object you do not own, you must have Database Administrator privilege.

您不拥有在这个 DROP SYNONYM 语句中指定的同义词。若要删除不属于的对象,必须具有“数据库管理员”权限。

-580 Cannot revoke permission.

This REVOKE statement cannot be carried out. Either it revokes a database-level privilege, but you are not a Database Administrator in this database, or it revokes a table-level privilege that your account name did not grant. Review the privilege and the user names in the statement to ensure that they are correct. To summarize the table-level privileges you have granted, query systabauth as follows:无法执行此 REVOKE 语句。它撤销数据库级特权,但您不是此数据库中的数据库管理员,也不是取消账户名未授予的表级权限。检查语句中的权限和用户名,以确保它们是正确的。为了总结您授予的表级权限,查询 systabauth 如下:SELECT A.grantee, T.tabname FROM systabauth A, systables T WHERE A.grantor = USER AND A.tabid = T.tabid-581 Error loading message file.

This SET EXPLAIN statement could not be completed because the database server was unable to find the file of message templates it uses when it prepares explanatory output. Consult with the person who installed the GBase 8s software.

由于数据库服务器在准备解释性输出时无法找到它使用的消息模板文件,因此无法完成此SET EXPLAIN 语句。咨询安装 GBase 8s 软件的人员。

-582 Database does not have logging.

This ROLLFORWARD statement could not be executed because this database does not have a transaction log. The rollforward operation uses the transaction log as its input. Since no transactions have been logged,the database cannot be rolled forward.

无法执行此 ROLLFORWARD 语句,因为此数据库没有事务日志。前滚操作使用事务日志作为其输入。由于未记录任何事务,因此无法前滚数据库。

-583 View permissions no longer valid -- permissions on remote objects revoked.

This statement queries a view that is based on tables in external databases (databases other than the current database). However, in one or more of those external databases, your account does not have the necessary table-level privilege on a table that the view uses, or possibly your CONNECT privilege for an external database has been revoked. For a way to display the definition of a view, see the discussion of error -385. In the view definition, look for table names that are qualified with database names and possibly site names.

此语句查询基于外部数据库(当前数据库以外的数据库)中的表的视图。但是,在其中的一个或多个外部数据库中,您的账户在视图使用的表上没有必要的表级权限,或者您对外部数据库的连接权限可能已被撤销。有关显示视图定义的方法,请参阅对 Error-385 的讨论。在视图定义中,查找具有数据库名称和可能的站点名称的表名。

-584 Cannot rename system catalog.

This RENAME TABLE statement cannot be carried out because it would rename one of the tables that make up the system catalog. The names of these tables cannot be changed; the database server uses them.

无法执行此 RENAME TABLE 语句,因为它将重命名组成系统目录的一个表。不能更改这些表的名称;数据库服务器使用它们。

-585 Cannot rename column in system catalog.

This RENAME COLUMN statement cannot be carried out because it would rename a column of one of the tables that make up the system catalog.

The database server relies on these column names for internal queries,and you cannot change them.

此 RENAME TABLE 语句无法执行,因为它将重命名构成系统目录的一个表的列。数据库服务器依赖这些列名进行内部查询,您不能更改它们。

-586 Cursor is already open.

This database is operating in ANSI compliance (it was created or started MODE ANSI). By the rules of ANSI SQL, a cursor must always be closed before it can be reopened. Review the logic of the program.

Possibly it was originally written to take advantage of one of the GBase 8s extensions to SQL: if a cursor is reopened, it is automatically closed and opened. In the current database, that action is not allowed.

此数据库是按照 ANSI 规范操作的(它是创建或启动 MODE ANSI )。根据 ANSI SQL 的规则,在重新打开游标之前,必须始终关闭游标。检查程序的逻辑。可能最初编写它是为了利用 SQL 的一个 GBase 8s 扩展:如果一个游标被重新打开,它就会自动关闭和打开。在当前数据库中,该操作是不允许的。

-588 Invalid host variable number.

If the error recurs, pleasnote all circumstances and contact GBase Technical Support.

如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-589 Cannot update multiple sites within a single transaction.

This database server supports only single-site update. The operations within one transaction can modify data at only one site in the network.

Some preceding statement within this transaction has already modified data at one site; the current statement would modify data at a second site. The statement is not executed. Roll back the current transaction.

Examine the application in the light of this restriction. Check the names of all tables that UPDATE, INSERT, and DELETE statements affect to make sure they are all in the same database or in databases that the same database server holds. (Check the definition of any synonyms.

Synonyms can make tables in external databases appear to be in the current database.)此数据库服务器只支持单站点更新。一个事务中的操作只能修改网络中一个站点上的数据。此事务中的前一语句已经修改了一个站点上的数据;当前语句将修改第二个站点上的数据。语句未执行。回滚当前事务。根据这一限制检查申请。检查 UPDATE、INSERT 和DELETE 语句影响的所有表的名称,以确保它们都位于同一数据库或同一数据库服务器所保存的数据库中。(检查任何同义词的定义。同义词可以使外部数据库中的表显示在当前数据库中。)-590 Routine cache corrupted.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-590 Procedure cache corrupted.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-591 Invalid default value for column/variable /.

The specified default value is the wrong type or is too long for a column or an SPL-routine variable.

指定的缺省值类型错误,或者指定的缺省值对于列或 SPL-例程变量太长。

To specify a valid default value for a column, use the DEFAULT clause in a CREATE TABLE statement. To specify a valid default value for a variable in an SPL routine, use the DEFAULT clause in a DEFINE statement.

若要指定列的有效缺省值,请在 CREATE TABLE 语句中使用 DEFAULT 子句。若要在 SPL例程中指定变量的有效缺省值,请在 DEFINE 语句中使用 DEFAULT 子句。

-592 Cannot specify column to be not null when the default value is null.

This CREATE or ALTER TABLE statement specifies that a column may not contain nulls (the NOT NULL clause), but it also has a DEFAULT clause giving the default value for new rows as NULL. This contradiction is not allowed.

此 CREATE TABLE 语句或 ALTER TABLE 语句指定列可能不包含 NULL(NOT NULL 子句),但它还具有一个 DEFAULT 子句,将新行的缺省值设为 NULL 。这种矛盾是不允许的。

-593 Cannot specify default value for SERIAL or SERIAL8 or BIGSERIAL column.

This CREATE or ALTER TABLE statement specifies that a column has a SERIAL or SERIAL8 or BIGSERIAL data type, but it also has a DEFAULT clause for the column. The database server generates values for a SERIAL or SERIAL8 or BIGSERIAL column each time a row is created,so the DEFAULT clause is meaningless.

此 CREATE TABLE 语句或 ALTER TABLE 语句指定列具有 SERIAL 或 SERIAL 8 或BIGSERIAL 数据类型,但它也具有该列的 DEFAULT 子句。每次创建一行时,数据库服务器都会为 SERIAL 或 SERIAL 8 或 BIGSERIAL 列生成值,因此 DEFAULT 子句没有意义。

-594 Cannot specify non-null default value for TEXT or BYTE column.

This CREATE or ALTER TABLE statement specifies that a column has a data type of BYTE or TEXT. It also has a DEFAULT clause for the column that specifies something other than NULL. You can only designate the default value NULL for columns of TEXT or BYTE data type.

此 CREATE TABLE 语句或 ALTER TABLE 语句指定列具有 BYTE 或 TEXT 的数据类型。它还为列提供了一个 DEFAULT 子句,该子句指定的不是 NULL。只能为 BYTE 或 TEXT 数据类型的列指定缺省值 NULL。

-595 Incorrect use of an aggregate function.

An aggregate function was incorrectly used inside an SPL routine expression, as an argument to an iterator table function,or inside a check constraint. These types of expressions cannot process aggregate functions.

聚合函数在 SPL 例程表达式中被错误地用作迭代器表函数的参数,或者在 CHECK 约束中使用。这些类型的表达式不能处理聚合函数。

The following examples show the incorrect use of an aggregate function:以下示例显示聚合函数的使用不正确:LET var = MAX(another_var) + 10; -- error SELECT 1 FROM TABLE(FUNCTION(udr1(max(1)))); -- error An SPL routine expression, or the expression in a check constraint,can refer to only a single value, so the use of an aggregate function is meaningless.

SPL 例程表达式或 CHECK 约束中的表达式只能引用单个值,因此使用聚合函数是没有意义的。

-596 Bad EXIT/CONTINUE statement. Not within a statement-name loop.

The SPL routine EXIT and CONTINUE statements must be placed within a FOREACH, WHILE, or FOR loop.

SPL 例程 EXIT 和 CONTINUE 语句必须放在 FOREACH、WHERE 或 FOR 循环中。

-597 [Internal] Premature End Of Buffer.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-598 Bad cursor name cursor-name.

Inside an SPL routine, a nonexistent cursor name was specified in an UPDATE/DELETE...WHERE CURRENT OF statement.

在 SPL 例程中,在 UPDATE/DELETE...WHERE CURRENT OF 语句中指定了一个不存在的游标名。

FOREACH cur1 FOR SELECT col INTO var FROM tab UPDATE tab SET col = proc(var)WHERE CURRENT OF bad_cur_name; -- error END FOREACH-599 Cannot mix GBase 8s Dynamic Server syntax with GBase 8s SE syntax.

Syntax specific to GBase 8s Dynamic Server and to the GBase 8s SE database server was mixed in the same statement. Use the appropriate syntax for your database server.

特定于 GBase 8s Dynamic Server 和 GBase 8s SE 数据库服务器的语法在同一语句中混合。对数据库服务器使用适当的语法。

-600 Cannot create TEXT or BYTE value.

This statement creates a new BYTE or TEXT value, but some unexpected error prevented the creation of that value. Roll back the current transaction. Check the accompanying ISAM error code for more information. Possibly the storage space or tblspace has filled up, or you are not referring to a valid storage space. If the error recurs,note all circumstances and contact GBase Technical Support.

此语句将创建一个新的 BYTE 或 TEXT 值,但一些意外的错误阻止了该值的创建。回滚当前事务。有关更多信息,请查看附带的 ISAM 错误代码。可能存储空间或 tblspace 已被填满,或者您指的不是有效的存储空间。如果错误再次发生,请注意所有情况,并与GBase 技术支持部门联系。

-601 Cannot delete TEXT or BYTE value.

This statement replaces or deletes a BYTE or TEXT value, but some unexpected error prevented the deletion of the old value. Roll back the current transaction. Check the accompanying ISAM error code for more information. Possibly a hardware error or data corruption of the storage space or tblspace occurred. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句将替换或删除 BYTE 或 TEXT 值,但某些意外错误阻止了删除旧值。回滚当前事务。有关更多信息,请查看附带的 ISAM 错误代码。可能发生硬件错误或存储空间或tblspace 的数据损坏。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-602 Cannot open TEXT or BYTE value.

This statement refers to a BYTE or TEXT value, but some unexpected error prevented locating the value. Roll back the current transaction.

Check the accompanying ISAM error code for more information. Possibly a hardware error or data corruption of the storage space or tblspace occurred. If the error recurs, note all circumstance, and contact GBase Technical Support.

此语句引用一个 BYTE 或 TEXT 值,但某些意外错误阻止了该值的定位。回滚当前事务。

有关更多信息,请查看附带的 ISAM 错误代码。可能发生硬件错误或存储空间或tblspace 的数据损坏。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-603 Cannot close TEXT or BYTE value.

This statement writes a BYTE or TEXT value, but some unexpected error prevented finishing the creation of the value. Roll back the current transaction. Check the accompanying ISAM error code for more information. Possibly a hardware error or data corruption of the storage space or tblspace occurred. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句写入 BYTE 或 TEXT 值,但某些意外错误阻止了值的创建。回滚当前事务。有关更多信息,请查看附带的 ISAM 错误代码。可能发生硬件错误或存储空间或 tblspace 的数据损坏。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-604 Cannot read TEXT or BYTE value.

This statement refers to a BYTE or TEXT value, but some unexpected error prevented access to the value. Roll back the current transaction.

Check the accompanying ISAM error code for more information; possibly a hardware error or data corruption of the storage space or tblspace occurred. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句引用 BYTE 或 TEXT 值,但某些意外错误阻止了对该值的访问。回滚当前事务。有关更多信息,请查看附带的 ISAM 错误代码;可能发生硬件错误或存储空间或 tblspace的数据损坏。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-605 Cannot write TEXT or BYTE value.

This statement writes a BYTE or TEXT value, but some unexpected error prevented the creation of the value. Roll back the current transaction.

Check the accompanying ISAM error code for more information; possibly a hardware error or data corruption of the storage space or tblspace occurred. One possible cause is that the storage space for this column is full. Another is that although a new chunk has been assigned to the storage space, pages cannot be allocated in it until the addition of the chunk has been logged and the log file closed. The database server administrator can use the tbmode -l or onmode -l command to force a log file to be closed. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句写入 BYTE 或 TEXT 值,但某些意外错误阻止了值的创建。回滚当前事务。有关更多信息,请查看附带的 ISAM 错误代码;可能发生硬件错误或存储空间或 tblspace 的数据损坏。一个可能的原因是该列的存储空间已满。另一个原因是,虽然一个新的块已经分配给存储空间,但是在添加块被记录并日志文件关闭之前,不能在其中分配页面。数据库服务器管理员可以使用 tbmode -l 或 onmode -l 命令强制关闭日志文件。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-606 Invalid storage-space name for TEXT or BYTE data.

If this statement refers to a storage space (for example, the CREATE TABLE statement might create a column with type TEXT IN blobspace-name),the name is invalid or does not exist. Review the identifiers intended as storage-space names. If they are spelled as you intended, consult with the database server administrator to find out whether they exist and are online. If the statement does not refer to a storage space,this is an internal error. If the error recurs, note all circumstances and contact GBase Technical Support.

如果此语句引用存储空间(例如,CREATE TABLE 语句可能会创建一个列,类型为 TEXT IN blobspace-name),则该名称无效或不存在。检查用作存储空间名称的标识符。如果它们是按照您的意愿拼写的,请与数据库服务器管理员协商,以确定它们是否存在并处于联机状态。如果语句不引用存储空间,则这是内部错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-607 Text/Byte subscript error.

This statement refers to a TEXT or BYTE value that uses substring notation (numbers in square brackets that follow the name). However,the substring is not correctly written. Review all uses of substrings,and make sure that the first number in each is greater than zero but not greater than the length of the value; the second number is not less than the first; and the numbers are separated by a comma.

此语句引用使用子字符串表示法(名称后面方括号中的数字)的 TEXT 或 BYTE 值。但是,子字符串没有正确写入。检查子字符串的所有用法,并确保每个子字符串中的第一个数字大于零但不大于值的长度;第二个数字不小于第一个;数字用逗号分隔。

-608 Illegal attempt to convert Text/Byte data type.

This statement is written to imply a conversion from a TEXT or BYTE value to another data type, for example, by combining it with other types in an expression or by inserting it into a column of another type. This action is not supported; TEXT and BYTE columns can only be selected or be copied into other columns of the same type. Check that the statement names the columns you intended and that they have the data types you thought.

编写此语句是为了暗示将 TEXT 或 BYTE 值转换为另一种数据类型,例如,将其与表达式中的其他类型组合起来,或将其插入另一类型的列中。不支持此操作;只能选择 TEXT 或BYTE 列或将它们复制到相同类型的其他列中。检查语句是否命名了您想要的列,并且它们具有您认为的数据类型。

-609 Illegal attempt to use Text/Byte host variable.

This statement uses a host variable that is a TEXT or BYTE locator structure but combines it with data of some other type (for instance,in an expression or by inserting it into a column of another type).

This action is not supported; host variables of these types may only be used for selecting from, creating, or inserting into columns of the same type.

该语句使用一个主机变量,该变量是 TEXT 或 BYTE 定位器结构,但将其与其他类型的数据(例如,在表达式中或通过将其插入另一类型的列)组合。不支持此操作;这些类型的宿主变量只能用于从同一类型的列中选择、创建或插入。

-610 Index not allowed on TEXT or BYTE columns.

This CREATE INDEX statement names a column of the TEXT or BYTE type;however, these types are not supported for indexing. Because no defined lexical ordering exists for these types, the database server does not know how to sort or compare them. Therefore it cannot build an inverted index. Possibly you understand the data well enough to understand how to extract an ordered set of key values from it. If so, perform the extraction into a separate column in the same table, and index that column.

此 CREATE INDEX 语句命名 TEXT 或 BYTE 类型的列;但是,索引不支持这些类型。由于这些类型不存在已定义的词法排序,因此数据库服务器不知道如何对它们进行排序或比较。因此,它不能建立一个倒排索引。可能您对数据的了解足以理解如何从其中提取一组有序的键值。如果是这样的话,将提取到同一表中的一个单独的列中,并对该列进行索引。

-611 Scroll cursor can't select TEXT or BYTE columns.

The cursor that is named in this statement is associated with a SELECT statement that returns one or more TEXT or BYTE columns. Also, the cursor is declared with the SCROLL keyword. This action is not supported.Rows that are fetched through a scroll cursor are also stored in a temporary table. Because of the bulk of TEXT and BYTE values,this action would produce an unacceptable cost in time and disk space.

Revise the declaration of the cursor to select the desired columns of other types and also the ROWID. After you fetch a row through the scrolling cursor, use a separate, nonscrolling cursor to fetch the BYTE or TEXT values, WHERE ROWID=host-var.

此语句中命名的游标与返回一个或多个 TEXT 或 BYTE 列的 SELECT 语句相关联。此外,游标是用 SCROLL 关键字声明的。此操作不支持。通过滚动光标获取的行也存储在临时表中。由于大量的 TEXT 或 BYTE 值,此操作将产生不可接受的时间和磁盘空间成本。修改游标的声明以选择其他类型的所需列以及 ROWID 。通过滚动游标获取一行之后,使用单独的非滚动游标来获取 BYTE 或 TEXT 值,WHERE ROWID=host-var。

-612 TEXT and BYTE columns are not allowed in the "group by" clause.

This SELECT statement selects one or more BYTE or TEXT values and also specifies those columns in the GROUP BY clause. This action is not supported. Since no defined lexical order to BYTE or TEXT values exists, the database server cannot order or compare them. Therefore it cannot group rows on their values. (This condition is true even of substrings selected from a BYTE or TEXT column.) Review your SELECT statement to ensure that the correct columns are named in the GROUP BY clause.

此 SELECT 语句选择一个或多个 BYTE 或 TEXT 值,并指定 GROUP BY 子句中的那些列。

不支持此操作。由于不存在从 BYTE 或 TEXT 值定义的词法顺序,因此数据库服务器无法对它们进行排序或比较。因此,它不能对其值进行分组。(即使是从 BYTE 或 TEXT 列中选择的子字符串也是如此。)检查 SELECT 语句,以确保在 GROUP BY 子句中指定了正确的列。

-613 TEXT and BYTE columns are not allowed in the "distinct" clause.

This statement specifies DISTINCT values, but it also selects a BYTE or TEXT value. The database server does not know how to compare or order these values, so it cannot sort them, and it cannot locate duplicate values. You cannot use the DISTINCT keyword when these data types are selected. Reword your SELECT statement to either remove the keyword or select only normal columns.

此语句指定 DISTINCT 值,但也选择一个 BYTE 或 TEXT 值。数据库服务器不知道如何比较或排序这些值,因此无法对它们进行排序,也无法定位重复的值。当选择这些数据类型时,不能使用 DISTINCT 键字。重述 SELECT 语句以移除关键字或只选择普通列。

-614 TEXT and BYTE columns are not allowed in the "order by" clause.

This SELECT statement selects one or more BYTE or TEXT values, and also specifies those columns in the ORDER BY clause. This action is not supported. Because no defined lexical order to BYTE or TEXT values exists, the database server cannot order them. (This is true even of substrings selected from a BYTE or TEXT column.) Review your SELECT statement to ensure that he correct columns are named in the ORDER BY clause.

此 SELECT 语句选择一个或多个 BYTE 或 TEXT 值,并在 ORDER BY 子句中指定这些列。

不支持此操作。由于不存在从 BYTE 或 TEXT 值定义的词法顺序,因此数据库服务器无法对它们进行排序。(即使是从 BYTE 或 TEXT 列中选择的子字符串也是如此。)检查SELECT 语句,以确保它在 ORDER BY 子句中指定了正确的列。

-615 TEXT and BYTE columns are not allowed in this expression.

This statement uses an aggregate function, such as COUNT, SUM, MIN, MAX, or AVG, but applies it to a column that has the BYTE or TEXT data type. This action is not supported.

此语句使用聚合函数,如 COUNT、SUM、MIN、MAX 或 AVG ,但将其应用于具有 BYTE 或TEXT 数据类型的列。不支持此操作。

Review the use of each aggregate function to make sure that it is not applied to a BYTE or TEXT column.

请检查每个聚合函数的使用情况,以确保它不应用于 BYTE 或 TEXT 列。

-616 A TEXT or BYTE subscript is not allowed within this context.

This UPDATE or INSERT statement specifies a subscripted column of BYTE or TEXT data type as a destination. Subscript notation is not allowed in this context; a BYTE or TEXT (or any other) value must be replaced in full. Revise the statement to assign into whole columns.

此 UPDATE 或 INSERT 语句指定 BYTE 或 TEXT 数据类型的订阅列为目标。在此上下文中不允许下标表示法;必须完全替换 BYTE 或 TEXT (或任何其他)值。修改语句,将其分配为整列。

-617 A TEXT or BYTE data type must be supplied within this context.

This statement assigns a value that is not a simple large object to a BYTE or TEXT column or assigns a BYTE or TEXT column to a column that is not a simple large object. Neither action is supported. BYTE and TEXT values must be assigned as whole units to columns of the same type. Check that the statement specifies the columns that you intended.

此语句将一个不是简单大对象的值分配给一个 BYTE 或 TEXT 列,或者将一个 BYTE 或TEXT 列分配给一个不是简单的大对象的列。这两项都没有得到支持。 BYTE 值和TEXT 值必须作为整个单位分配给同一类型的列。检查语句是否指定了您想要的列。

-618 Error occurred while trying to copy TEXT or BYTE data.

This statement copies a BYTE or TEXT value from one row to another, but some unexpected error interfered with the operation. Roll back the current transaction. Check the accompanying ISAM error code for more information; possibly a hardware error, data corruption of the storage space or tblspace, or a shortage of disk space exists, or an invalid storage space was named. If the error recurs, note all circumstances and contact GBase Technical Support.

此语句将 BYTE 或 TEXT 值从一行复制到另一行,但某些意外错误干扰了操作。回滚当前事务。检查附带的 ISAM 错误代码以获得更多信息;可能是硬件错误、存储空间或tblspace 的数据损坏或磁盘空间不足,或者命名为无效存储空间。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-619 A TEXT or BYTE error has occurred in the front-end application.

This statement transfers a BYTE or TEXT value between the database and the user program, but something has happened to prevent that. For example, perhaps it was not possible to allocate a buffer for a value that was located in memory. Check the accompanying ISAM error code for more information.

该语句在数据库和用户程序之间传输一个 BYTE 或 TEXT 值,但是发生了一些事情来防止这种情况发生。例如,可能无法为内存中的值分配缓冲区。有关更多信息,请查看附带的ISAM 错误代码。

-620 Unable to update next extent size.

This internal error indicates the database server cannot change an internal data structure (not a system catalog) that is stored in the root dbspace. Check the accompanying ISAM error code for more information. Possibly corruption of the root dbspace occurred. Have the database server administrator run the oncheck, onutil, or tbcheck utility.

此内部错误表示数据库服务器无法更改存储在 root dbspace 中的内部数据结构(而不是系统目录)。有关更多信息,请查看附带的 ISAM 错误代码。可能发生 root dbspace 的损坏。让数据库服务器管理员运行 oncheck、onutil 或 tbcheck 实用程序。

-621 Unable to update new lock level.

This internal error indicates that the database server is unable to convert a lock from shared to exclusive. Check the accompanying ISAM error code for more information. Possibly a hardware error or a problem with shared memory exists. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误表示数据库服务器无法将锁从共享转换为独占。有关更多信息,请查看附带的ISAM 错误代码。可能存在硬件错误或共享内存问题。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-622 Error on locating constraint index index-name.

This internal error shows that the database server is trying to test a new or updated row for uniqueness under a UNIQUE or PRIMARY KEY constraint, but the index that implements the constraint cannot be found. Check the accompanying ISAM error code for more information.

Corruption of the system catalog tables or the root dbspace or a hardware problem might have occurred. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误显示数据库服务器试图在 UNIQUE 或 PRIMARY KEY 约束下测试新行或更新行的唯一性,但无法找到实现约束的索引。有关更多信息,请查看附带的 ISAM 错误代码。系统目录表、root dbspace 或硬件问题可能已经发生。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-623 Unable to find CONSTRAINT constraint-name.

The constraint specified in this statement cannot be found. Review the spelling of the name shown. If it is as you intended, check the names of existing named constraints by querying the sysconstraints table as shown in the following example. If the owner name shown for the desired constraint is not yours, you need to be a Database Administrator to reference it (and, if this database is ANSI compliant, you need to qualify the name with its owner-name).

无法找到此语句中指定的约束。检查所示名称的拼写。如果它是您想要的,那么通过查询sysconstraints 表来检查现有命名约束的名称,如下面的示例所示。如果为所需约束显示的所有者名称不是您的,则需要成为数据库管理员才能引用它(如果该数据库符合 ANSI标准,则需要用其所有者名称限定名称)。

SELECT constrname, owner FROM gbasedbt.sysconstraints-624 Unable to drop CONSTRAINT constraint-name.

This internal error shows that the database server had an unexpected error while dropping a constraint or the index that implemented it.

Check the accompanying ISAM error code for more information. Corruption of the system catalogs or the root dbspace might have occurred, or a hardware problem might exist. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误显示数据库服务器在删除约束或实现约束的索引时出现了意外错误。有关更多信息,请查看附带的 ISAM 错误代码。系统目录或 root dbspace 可能已发生损坏,或者可能存在硬件问题。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-625 Constraint name constraint-name already exists.

The constraint name already exists. Review the spelling. If it is as you intended, you must select another name, or drop and redefine the existing constraint. See the discussion of error -623 for a way to list all constraints.

约束名称已经存在。检查拼写。如果是您想要的,则必须选择另一个名称,或者删除并重新定义现有约束。有关列出所有约束的方法,请参见对 Error-623 的讨论。

-626 Cannot obtain or set serial value.

This internal error message does not refer to a problem with a SERIAL or SERIAL8 or BIGSERIAL column in a table that you defined. The database server uses unique integer values for many purposes (for example, the table ID number for a new or altered table). An internal error has made it impossible to generate a new, unique number. For example, in host systems that use files for locking, something might have prevented the creation of a lock file. Check the accompanying ISAM error code for more information. If the error recurs, note all circumstances and contact GBase Technical Support.

此内部错误消息不引用您定义的表中的 SERIAL 或 SERIAL 8 或 BIGSERIAL 列的问题。

数据库服务器将唯一整数值用于多种用途(例如,新表或更改表的表 ID 号)。内部错误使得无法生成新的唯一数字。例如,在使用文件进行锁定的主机系统中,某些东西可能阻止了锁文件的创建。请查看附带的 ISAM 错误代码以获得更多信息。如果出现错误,请注意所有情况,并与 GBase 技术支持部门联系。

-627 Cannot prepare coordinator for two-phase commit.

Because the coordinator cannot prepare this GBase 8s STAR two-phase commit transaction, all participants eventually roll back all work that is associated with the transaction. No administrative intervention is required. See the ISAM error for more information about why the database server could not prepare to commit the local transaction.

由于协调器无法准备这个 GBase 8s STAR 两阶段提交事务,所以所有参与者最终都会回滚与事务相关的所有工作。不需要管理者干预。有关数据库服务器无法准备提交本地事务的详细信息,请参阅 ISAM 错误。

-628 Cannot end two-phase commit transaction at coordinator.

The database server acting as coordinator for the transaction cannot end this GBase 8s STAR two-phase commit transaction, and the transaction remains open. Eventually, GBase 8s STAR automatic recovery mechanics will end the transaction. No administrative intervention is required. See the ISAM error for more information about why the database server could not end the transaction properly.

充当事务协调器的数据库服务器不能结束此 GBase 8s STAR 两阶段提交事务,事务仍然处于打开状态。最终, GBase 8s STAR 自动恢复机制将结束它。不需要管理者干预。有关数据库服务器无法正确结束事务的详细信息,请参阅 ISAM 错误。

-629 Cannot end heuristically rolled back transaction.

The database server acting as coordinator for the transaction cannot end this GBase 8s STAR two-phase commit transaction, and the transaction remains open. Eventually, GBase 8s STAR automatic recovery mechanics will end it. No administrative intervention is required. See the ISAM error for more information about why the database server could not end the transaction properly.

充当事务协调器的数据库服务器不能结束此 GBase 8s STAR 两阶段提交事务,事务仍然处于打开状态。最终, GBase 8s STAR 自动恢复机制将结束它。不需要管理者干预。有关数据库服务器无法正确结束事务的详细信息,请参阅 ISAM 错误。

-630 Cannot prepare database server server-name for commit.

The specified database server cannot prepare the local transaction associated with this GBase 8s STAR two-phase commit transaction.

Eventually, all participants roll back all work associated with the transaction. No administrative intervention is required. See the ISAM error for more information about why the database server could not prepare to commit the local transaction.

指定的数据库服务器无法准备与此 GBase 8s STAR 两阶段提交事务关联的本地事务。

最后,所有参与者都回滚与事务相关的所有工作。不需要管理者干预。有关数据库服务器无法准备提交本地事务的详细信息,请参阅 ISAM 错误。

-631 Cannot create optical cluster on column that is not TEXT or BYTE.

You can only create optical clusters on columns of TEXT or BYTE data type. The column name is some other type. Check that the column is the one you meant to specify, and review the definition of the table.

只能在 TEXT 或 BYTE 数据类型的列上创建光学集群。列名是其他类型。检查列是否是您要指定的列,并检查表的定义。

-632 Cannot create optical cluster.

An attempt to create an optical cluster has failed. See the ISAM error for more information.

创建光学集群的尝试失败了。有关更多信息,请参见 ISAM 错误。

-633 Cannot drop optical cluster.

An attempt to drop an optical cluster has failed. See the ISAM error for more information.

试图丢弃一个光学集群的尝试失败了。有关更多信息,请参见 ISAM 错误。

-634 Object does not exist.

You are trying to drop a trigger that does not exist. Check that you are spelling the name of the trigger correctly. Also, you might query the systriggers system catalog table to review the names of triggers in the database.

您正在尝试放弃不存在的触发器。检查是否正确拼写触发器的名称。此外,还可以查询systriggers 系统目录表,以检查数据库中触发器的名称。

-635 Not owner of object.

You are trying to drop a database object that you do not own. You might query the appropriate system catalog table to see who owns the object. (For example, for a trigger, query the systriggers table.) You probably need to ask the owner of the database object or the database administrator to drop the object.

您正在尝试删除一个您不拥有的数据库对象。您可以查询适当的系统目录表,以查看谁拥有该对象。(例如,对于触发器,查询 systriggers 表。)您可能需要要求数据库对象的所有者或数据库管理员删除该对象。

-636 Total size of key fields is too large or there are too many key fields.

You have violated one of the following constraints on the cluster key that is specified in the ON clause of the CREATE OPTICAL CLUSTER statement:您违反了在 CREATE OPTICAL CLUTER 语句的 ON 子句中指定的集群键的下列约束之一:* The number of columns included in a composite cluster key exceeds 16.

* 复合集群键中包含的列数超过 16 列。

* The length of a CHARACTER column exceeds 256 bytes.

* 字符列的长度超过 256 字节。

-637 Cannot alter optical cluster.

An attempt to alter the size of an optical cluster has failed. See the ISAM error for more information.

改变光学集群大小的尝试失败了。有关更多信息,请参见 ISAM 错误。

-638 Cannot cluster TEXT or BYTE columns on non-optical media.

You can create an optical cluster only on TEXT or BYTE columns that are stored on optical media. Check that you have not specified the name of a TEXT or BYTE column that is stored in a storage space.

只能在存储在光学介质上的 TEXT 或 BYTE 列上创建光学集群。检查是否未指定存储空间中存储的 TEXT 或 BYTE 列的名称。

-639 Cannot cluster TEXT or BYTE columns on different optical families.

All of the TEXT or BYTE columns specified in the FOR clause of the CREATE OPTICAL CLUSTER statement must belong to the same optical family. Check that the columns that are specified for an optical cluster do not belong to different families.

CREATE OPTICAL CLUSTER 语句的 FOR 子句中指定的所有 TEXT 或 BYTE 列都必须属于同一个光学家族。检查为光学集群指定的列是否属于不同的家族。

-640 QPlan sanity failure line-number.

Running UPDATE STATISTICS might fix this internal error. If the error recurs, note all circumstances and contact GBase Technical Support.

运行 UPDATE STATISTICS 可能会修复此内部错误。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-641 Cannot reserve/release family on non-optical media.

The family name that is specified in the RESERVE or RELEASE statement must exist on optical media. Check that you have not specified a storage space with either of these statements.

RESERVE 或 RELEASE 语句中指定的家族名称必须存在于光学媒体上。检查是否使用这些语句中的任何一条指定了存储空间。

-642 Family name must be a character string.

The optical family name that is specified in the RESERVE or RELEASE statement must be either a character string, or a host or procedural variable that evaluates to a character string. If you specified a character string, check that you enclosed it in quotes.

在 RESERVE 或 RELEASE 语句中指定的光学家族名称必须是字符串,或者是计算为字符串的主机或过程变量。如果指定了字符串,请检查是否用引号括起来。

-643 Volume must be a number.

The volume argument in the RESERVE or RELEASE statements must be INTEGER or SMALLINT.

RESERVE 或 RELEASE 语句中的卷参数必须是 INTEGER 或 SMALLINT 。

-644 FAMILY(), VOLUME(), and DESCR() require BLOB column on optical medium.

The argument to the FAMILY(), VOLUME(), or DESCR() function must be a TEXT or BYTE column that is stored on optical media. Check that you have not specified a column of a different data type or a TEXT or BYTE column that is stored in a storage space.

FAMILY()、 VOLUME() 或 DESCR() 函数的参数必须是存储在光学媒体上的 TEXT 或 BYTE列。检查是否指定了不同数据类型的列或存储在存储空间中的 TEXT 或BYTE 列。

-645 Cannot reserve volume.

An attempt to reserve an optical volume with the RESERVE statement has failed. See the error from the optical subsystem (an error in the -7000 to -7199 range) for more information.

试图用 RESERVE 语句保留光学卷的尝试失败了。有关更多信息,请参见来自光学子系统的错误(-7000 到 -7199 范围内的错误)。

-646 Cannot release volume.

An attempt to release a requested optical volume with the RELEASE statement has failed. See the error from the optical subsystem (an error in the -7000 to -7199 range) for more information.

试图释放请求的光学卷与 RELEASE 语句已失败。有关更多信息,请参见来自光学子系统的错误(-7000 到 -7199 范围内的错误)。

-647 Error evaluating math library function function-name.

The data type of the argument is correct, but the value passed to the function is not appropriate for the math function. Check that you are passing a legitimate value to the function.

参数的数据类型是正确的,但是传递给函数的值不适合数学函数。检查是否向函数传递合法值。

-648 Cannot open DEBUG file for SPL routine trace.

An error occurred trying to open DEBUG trace file. This error can occur when one of the directories in the specified debug file name does not exist, or the directory is write protected. Check that the directory path is valid and that group gbasedbt can write to the directory.

试图打开调试跟踪文件时出错。如果指定的调试文件名中的某个目录不存在,或者该目录受到写入保护,则可能发生此错误。检查目录路径是否有效,以及 Gbasedbt 组是否可以写入目录。

-649 The debug file name must be a NON-NULL CHAR or VARCHAR.

The argument that is specified for the debug file in the SET DEBUG statement must be a character data type.

为 SET DEBUG 语句中的调试文件指定的参数必须是字符数据类型。

-650 Maximum varchar size has been exceeded.

This statement specifies a VARCHAR(m, r) column with a maximum width m greater than allowed (255). Check the punctuation of the column definition. If it is as you intended, redesign the table to use a VARCHAR width that ranges from 1 character to 255 characters.

此语句指定一个 VARCHAR(m,r) 列,其最大宽度 m 大于允许的宽度(255)。检查列定义的标点符号。如果是您想要的,那么重新设计表以使用一个 VARCHAR 宽度,从 1 字符到255 个字符不等。

-651 Reserved column size > maximum column size (varchar).

This statement specifies a VARCHAR(m, r) column with a reserved width r that is greater than the maximum width m. Check the punctuation of the column definition. If it is as you intended, revise the statement so that m is greater than or equal to r.

此语句指定一个 VARCHAR(m,r) 列,其保留宽度 r 大于最大宽度 m 。检查列定义的标点符号。如果是你想要的,修改这个语句,使 m 大于或等于 r 。

-652 Local variables do not allow default values.

An attempt was made to define a local variable with a default value.

Only global variables and parameters can have default values.

尝试使用缺省值定义局部变量。只有全局变量和参数可以具有缺省值。

An example of the error follows:错误的一个例子如下:DEFINE var INT DEFAULT 10; -- error The correction is as follows:更正如下:DEFINE var INT;LET var = 10;-653 Variables declared as LIKE cannot be global.

A global variable was defined as LIKE. LIKE variables must be local variables.

全局变量定义为 LIKE。类似的变量必须是局部变量。

An example of the error follows:错误的一个例子如下:DEFINE GLOBAL var LIKE tab.col; -- error Correction: Do not use the LIKE keyword with global variables. Instead,specify the data type explicitly.

更正:不要在全局变量中使用 LIKE 关键字。相反,显式地指定数据类型。

-654 Bad use of PROCEDURE declaration type.

The procedure declaration was used either in the parameters or the RETURNING clause. SPL routines cannot accept or return procedures.

存储过程声明在参数或返回子句中使用。SPL 例程不能接受或返回存储过程。

An example of the error follows:错误的一个例子如下:CREATE PROCEDURE testproc (proc1 procedure) -- error RETURNING procedure; -- error...

END PROCEDURE Correction: Do not attempt to use the procedure declaration type within a parameter or the RETURNING clause.

更正:不要尝试在参数或返回子句中使用过程声明类型。

-655 RETURN value count does not match procedure declaration.

The number of values that a procedure was declared to return in the RETURNING clause does not match the number of values in a RETURN clause.

在 RETURNING 子句中声明返回的存储过程的值数与 RETURN 子句中的值数不匹配。

An example of the error follows:错误的一个例子如下:CREATE PROCEDURE testproc () RETURNING INT, INT;...

RETURN 1,2,3; -- error...

RETURN 1; -- error END PROCEDURE Correction: In this example, return exactly two arguments.

更正:在本例中,准确地返回两个参数。

-656 Routine is not declared to return values.

When the routine was declared, it did not contain a RETURNING clause to indicate that the routine would not return any value, but then a RETURN statement was found in the body of the routine.

在声明例程时,它不包含返回子句以指示例程不会返回任何值,但是在例程的正文中会找到返回语句。

An example of the error follows:错误的一个例子如下:CREATE ROUTINE testproc() DEFINE a INT;LET a = 10;RETURN a + 1; -- error END ROUTINE Correction: Add a RETURNING clause before the DEFINE statement, or remove the RETURN statement.

更正:在 DEFINE 语句之前添加 RETURNING 子句,或删除 RETURN 语句。

-657 Cannot create a procedure within a procedure.

You cannot have a CREATE PROCEDURE statement within a CREATE PROCEDURE statement.

不能在 CREATE PROCEDURE 语句中使用 CREATE PROCEDURE 语句。

-658 Variables declared as GLOBAL require a default value.

A global variable was not given a default value. Global variables require a default value.

全局变量未被赋予缺省值。全局变量需要缺省值。

Example of error:错误示例:DEFINE GLOBAL glob INT; -- error Correction:更正:DEFINE GLOBAL glob INT DEFAULT 10;-659 INTO TEMP table required for SELECT statement.

A SELECT statement did not specify where to put the returned values.

SELECT statements within a procedure require either an INTO TEMP clause or an INTO clause that references the appropriate procedural variables.

SELECT 语句没有指定将返回值放在何处。过程中的 SELECT 语句要求使用 INTO TEMP子句或引用适当过程变量的 INTO 子句。

Example of error:错误示例:CREATE PROCEDURE testproc()...

SELECT col1, col2 FROM tab; -- error END PROCEDURE Correction:更正:CREATE PROCEDURE testproc()...

SELECT col1, col2 INTO var1, var2 FROM tab;SELECT col1, col2 FROM tab INTO TEMP another_table;END PROCEDURE-660 Loop variable variable-name cannot be modified.

An attempt was made to modify the value of a loop variable in a FOR statement. Loop variables cannot be modified inside a loop.

尝试修改 FOR 语句中循环变量的值。循环变量不能在循环中修改。

Example of error:错误示例:FOR i IN (1,2,3,4)LET i = i + 1; -- error END FOR Correction: Use another variable in the LET statement.

更正:在 LET 语句中使用另一个变量。

-661 Number of variables does not match number of values returned.

The number of variables on the left side of a LET statement does not match the number of values on the right side.

LET 语句左侧的变量数与右侧的值数不匹配。

Example of error:错误示例:LET a,b = 10,20,39;LET i,j = proc1()+proc2();LET a,b = (SELECT c1 FROM tab)Correction: Match the number of expressions on both sides of the LET statement.

更正:匹配 LET 语句两边的表达式数。

-662 Loop variable variable-name specified more than once.

A loop variable was used more than once in a FOREACH statement.

在 FOREACH 语句中多次使用循环变量。

Example of error:错误示例:FOREACH SELECT col1, col2 INTO var, var FROM tab -- error...

END FOREACH Correction:更正:FOREACH SELECT col1, col2 INTO var1, var2 FROM tab...

END FOREACH-663 You are using more than one procedure-calling syntax for procedure procedure-name.

While calling a procedure, some of the arguments were named, but others were not.

在调用过程时,有些参数被命名,而另一些则没有。

Example of error:错误示例:LET var = proc (arg1 = 10, 20, arg3 = 30); -- error Correction:更正:LET var = proc (arg1 = 10, arg2 = 20, arg3 = 30); --correct LET var = proc (10,20,30);--correct-664 Wrong number of arguments to system function function-name.

You have specified an incorrect number of arguments for the function function_name. Check that you are passing the correct number of arguments to the function.

您为函数 function_name 指定了不正确的参数。检查是否将正确的参数传递给函数。

-665 Internal error on semantics - code-number.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-666 Variable variable-name must be declared INTEGER or SMALLINT.

In a FOR statement, loop variables that contain ranges must be declared to be INT or SMALLINT.

在 FOR 语句中,必须声明包含范围的循环变量为 INT 或 SMALLINT 。

Example of error:错误示例:DEFINE var CHAR(10);FOR var IN (e1, e2 TO e3, e4) -- error...

END FOR;Correction: Because the FOR statement contains a range operator (the TO clause), var must be declared as INT or SMALLINT.

更正:因为 FOR 语句包含一个范围运算符(the TO clause),所以必须将 var 声明为 INT 或 SMALLINT 。

-667 Variable variable-name not declared.

The specified variable was not declared. Check the spelling of the undeclared variable to ensure that it is not causing the error.

未声明指定的变量。检查未声明变量的拼写,以确保它不会导致错误。

-668 The system command cannot be executed or it exited with a non-zero status.

Either a system call failed in the operating system or the command that was executed exited with a non-zero status.

系统调用在操作系统中失败,或者在非零状态下执行的命令退出。

The following example shows a statement that might cause the system command to fail with an error:下面的示例显示了一条语句,该语句可能导致系统命令发生错误而失败:SYSTEM 'hello';Make sure that the system command is not trying to run a function or program that is not in your path or that is not applicable to the environment.

确保系统命令不试图运行不在您的路径中或不适用于环境的函数或程序。

Make sure that you have provided a user ID and password when connecting to the database server. The database server must have the user's password in order to execute a command on behalf of that user.

确保在连接到数据库服务器时提供了用户 ID 和密码。数据库服务器必须有用户的密码才能代表该用户执行命令。

On Windows platforms, make sure the following Advanced User Rights have been assigned to user "gbasedbt": Act as part of the operating system;Increase quotas; Replace a process level token.

Windows 平台,请确保已将下列高级用户权限分配给“Gbasedbt”用户:充当操作系统的一部分;增加配额;替换进程级令牌。

The following example shows a statement that will fails with error -668 and the ISAM error explanation '-255 Not in a transaction':下面的示例显示了一个将因错误 -668 和 ISAM 错误解释‘-255 不在事务中’而失败的语句:SYSTEM 'exit 255';-669 Variable variable-name redeclared.

A variable has been declared twice in the same scope. See the GBase 8s Guide to SQL: Tutorial for an explanation of the scope of procedural variables.

变量已在同一范围内声明了两次。有关过程变量范围的说明,请参阅 GBase 8s SQL指南:教程。

This error can also be seen when a DECLARE (or PREPARE) uses identifier same as one of the declared procedural variables. Choose a different cursor name or statement id instead.

当声明(或准备)使用与声明的过程变量相同的标识符时,也可以看到此错误。选择不同的游标名称或语句id。

For example, following DECLARE statement incorrectly uses cursor name same as procedural variable:例如,下面的 DECLARE 语句错误地使用了与过程变量相同的游标名称:DEFINE spl_var INTEGER;...

DECLARE spl_var CURSOR FOR stmt_id1;Following code fixes the issue in above sample code:以下代码修复了上述示例代码中的问题:DEFINE spl_var INTEGER;...

DECLARE cur_id CURSOR FOR stmt_id1;-670 Variable variable-name declared as SERIAL or SERIAL8 or BIGSERIAL type.

The SERIAL or SERIAL8 or BIGSERIAL data type is not a legal procedure type.

Use the INTEGER or INT8 or BIGINT data type to match the SQL SERIAL or SERIAL8 or BIGSERIAL data type.

SERIAL 或 SERIAL8 或 BIGSERIAL 数据类型不是合法程序类型。使用 INTEGER 或 INT8或 BIGINT data 数据类型来匹配 SQL SERIAL 或 SERIAL8 或 BIGSERIAL 数据类型。

-671 Routine invocation routine-name has duplicate parameter name.

A routine call named a parameter more than once.

一个名为参数的例程调用不止一次。

Example of error:错误示例:LET var = proc (arg1 = 10, arg2 = 20, arg1 = 30);-- error-671 Procedure call procedure-name has duplicate parameter name.

A procedure call named a parameter more than once.

一个存储过程调用命名一个参数超过一次。

Example of error:错误示例:LET var = proc (arg1 = 10, arg2 = 20, arg1 = 30);-- error-672 Invalid data structure execution-tree.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-673 Routine routine-name already exists in database.

You attempted to create a routine that already exists in the database.

If you want to create a new version of the routine, use the DROP ROUTINE statement to drop the routine before you attempt to create the new version of the routine.

您试图创建数据库中已经存在的例程。如果要创建例程的新版本,请在尝试创建例程的新版本之前使用 DROP ROUTINE 语句删除例程。

-674 Routine cannot be resolved.

You called a routine that does not exist in the database, you do not have permission to execute the routine, or you called the routine with too few or too many arguments. If a prepared statement invokes a user-defined routine and your application or another application drops the routine before the prepared statement is executed, you will receive this error.

您调用了数据库中不存在的例程,您没有执行该例程的权限,或者调用该例程的参数太少或太多。如果准备好的语句调用用户定义的例程,而应用程序或其他应用程序在执行准备语句之前删除例程,则将收到此错误。

You might also see this error message if you write an expression that calls an SPL routine (stored procedure) that returns no values. For an SPL routine to be usable in an expression, the routine must return a value.

如果您编写的表达式调用不返回值的 SPL例程(存储过程),您也可能会看到此错误消息。为了使 SPL 例程在表达式中可用,该例程必须返回一个值。

Check that the name of the routine is correct, that you have execute permission, that you specified the correct number of arguments to execute a routine, and that the data types for the arguments are appropriate. For a prepared statement that refers to the routine,make sure that the routine still exists when you execute the statement.

检查例程的名称是否正确,是否具有执行权限,是否指定了执行例程的正确参数,以及参数的数据类型是否合适。对于引用例程的准备语句,请确保在执行该语句时该例程仍然存在。

-675 Illegal SQL statement in SPL routine.

An SQL statement that is not allowed in an SPL routine was executed.

This error occurs when a routine is called from an SQL data manipulation statement.

执行了 SPL 例程中不允许的 SQL 语句。当从 SQL 数据操作语句调用例程时,会发生此错误。

Example of error:错误示例:CREATE PROCEDURE testproc (arg INT, id INT) RETURNING INT;UPDATE tab SET col = arg WHERE key = id; -- error RETURN id;END PROCEDURE;SELECT col FROM tab WHERE testproc(tab.col, tab.key) = 10;Do not use statements such as the preceding UPDATE statement in SPL routines.

不要在 SPL 例程中使用前面的 UPDATE 语句等语句。

-676 Invalid check constraint column.

A check constraint that is specified at the column level can reference only that column. To specify a check constraint that spans more than one column, specify the check constraint at the table level. You cannot create a check constraint for columns across tables.

在列级别指定的 CHECK 约束只能引用该列。若要指定跨越多个列的 CHECK 约束,请在表级别指定 CHECK 约束。不能为跨表的列创建 CHECK 约束。

-677 Check constraint cannot contain subqueries or procedures.

A check constraint cannot contain a subquery or a procedure. Subqueries are disallowed in check constraints because they depend on the state of the database. For data integrity, the evaluation of a check constraint must not vary or depend on the state of the database.

CHECK 约束不能包含子查询或存储过程。CHECK 约束中不允许子查询,因为它们依赖于数据库的状态。对于数据完整性,CHECK 约束的计算不能改变或依赖于数据库的状态。

Example of error:错误示例:CREATE TABLE new_stock (stock_num SERIAL PRIMARY KEY,unit_price MONEY CHECK (unit_price >=(SELECT unit_price FROM stock WHERE manu_code = 'HRO')),manu_code CHAR(3));Verify that your statement does not have a subquery or procedure in a check constraint.

验证您的语句在 CHECK 约束中没有子查询或存储过程。

-678 Invalid subscript for column column-name in check constraint.

A subscripted column in a check constraint has subscripts outside the bounds of the column. Check that the bounds specified in the subscripted column do not exceed the maximum length of the column. If you know the table name of the column, use the following subquery to query the system-catalog tables to find out the maximum length of the column:CHECK 约束中的下标列已在列的边界外下标。检查下标列中指定的边界是否超过该列的最大长度。如果您知道该列的表名,请使用以下子查询系统目录表以找出该列的最大长度:SELECT collength FROM syscolumns WHERE colname = 'column-name'AND tabid = (SELECT tabid FROM systables WHERE tabname = 'table-name')-679 Cannot read constraint violation data for constraint constraint-name.

See the ISAM error for more information. If this internal error recurs, note all circumstances and contact GBase Technical Support.

有关更多信息,请参见 ISAM 错误。如果这个内部错误再次出现,请注意所有情况,并与GBase 技术支持部门联系。

-680 Cannot write constraint violation data for constraint constraint-name.

See the ISAM error for more information. If this internal error recurs,pase note all circumstances and contact GBase Technical Support.

有关更多信息,请参见 ISAM 错误。如果这个内部错误再次出现,请注意所有情况,并与GBase 技术支持部门联系。

-681 Column specified more than once in the INSERT list.

The error occurs if the user specifies a column name more than once in the INSERT column list.

如果用户在 INSERT 列表中多次指定列名,则会发生错误。

-682 Error reading constraint index on table table-name.

The system was unable to validate the constraint. See the ISAM error for more information. If this internal error recurs, note all circumstances and contact GBase Technical Support.

系统无法验证约束。有关更多信息,请参见 ISAM 错误。如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-683 Specified STEP expression will not traverse RANGE.

The evaluated value of the STEP expression in the FOR statement will lead to an infinite loop.

FOR 语句中 STEP 表达式的计算值将导致无限循环。

Example of error:错误示例:FOR i = 10 TO 20 STEP -1; -- error...

END FOR Correction: Correct either the range or the step expressions so that the incremented values are within the range.

更正:更正范围或步骤表达式,使增量值在此范围内。

-684 Function returns too many values.

The number of returned values from a function is more than the number of values that the caller expects.

函数返回的值数大于调用者所期望的值数。

Example of error:错误示例:CREATE ROUTINE testroutine(arg INT) RETURNING INT, INT;RETURN 1,2;END ROUTINE SELECT col FROM tab WHERE col = testroutine(1); -- error-685 Function returns too few values.

The number of returned values from a function is less than the number of values that the caller expects.

函数返回的值数小于调用者期望的值数。

Example of error:错误示例:CREATE ROUTINE testroutine (arg INT) RETURNING INT, INT;RETURN 1,2;END ROUTINE UPDATE tab SET (c1, c2, c3) = (testroutine(1)); -- error-686 Function has returned more than one row.

A function returned more than one row of values (for example, it executed RETURN...WITH RESUME) when the caller expected only one row of values.

一个函数返回多行值(例如,当调用者只期望一行值时,它执行RETURN...WITH RESUME)。

Example of error:错误示例:CREATE FUNCTION testroutine (limit INT) RETURNING INT;DEFINE i INT;FOR i IN (1 TO limit)RETURN i WITH RESUME;END FOR END FUNCTION;CREATE FUNCTION gettest() RETURNING INT;DEFINE var INT;LET var = testroutine (10); -- error RETURN var;END FUNCTION;-687 Set debug file before tracing SPL routines.

A TRACE statement was executed before a SET DEBUG FILE statement. The destination of the output of the TRACE statement is unknown. This error can also apply to the TRACE OFF statement.

在 SET DEBUG FILE 语句之前执行 TRACE 语句。 TRACE 语句的输出目标未知。此错误也可应用于 TRACE OFF 语句。

Example of error:错误示例:TRACE procedure; -- error Correction:更正:SET DEBUG FILE TO 'trace.out';TRACE procedure;-688 Variable variable-name must be declared CHAR or VARCHAR.

You declared the variable as a data type other than CHAR or VARCHAR.

Correct the declaration, and try again.

您将变量声明为数据类型,而不是 CHAR 或 VARCHAR 。改正声明,再试一次。

-689 Global variable variable-name declared inconsistently.

Two or more procedures were executed that defined the same global variable with different data types.

执行了两个或多个存储过程,这些存储过程定义了具有不同数据类型的相同全局变量。

Example of error:错误示例:CREATE PROCEDURE test1()DEFINE GLOBAL glob INT DEFAULT 10;...

END PROCEDURE CREATE PROCEDURE test2()DEFINE GLOBAL glob CHAR (9) DEFAULT USER;...

END PROCEDURE Correction: Declare global variables consistently. (Using appropriate naming conventions would be useful.) Two variables of the same data type but different lengths are considered inconsistent.

更正:一致声明全局变量。(使用适当的命名约定是有用的。)数据类型相同但长度不同的两个变量被认为不一致。

-690 Cannot read keys from referencing table table-name.

The referential constraint could not be validated. See the ISAM error for more information. If you are using cascading deletes, database logging must be on.

无法验证引用约束。有关更多信息,请参见 ISAM 错误。如果您使用的是级联删除,则数据库日志必须是打开的。

-691 Missing key in referenced table for referential constraint constraint-name.

A referential constraint has been violated. This condition usually occurs when you are trying to insert a value into or update the value of a column that is part of a referential constraint. The value you are trying to enter does not exist in the referenced (parent-key)column. If you are using cascading deletes, database logging must be on.

违反了引用约束。当您试图将值插入或更新作为引用约束一部分的列的值时,通常会发生此情况。要输入的值在引用(父键)列中不存在。如果您使用的是级联删除,则数据库日志必须是打开的。

-692 Key value for constraint constraint-name is still being referenced.

You have violated a referential constraint. This situation usually occurs when you are trying to delete a row in a column (parent key)that another row (child key) is referencing. If you are using cascading deletes, database logging must be on.

您违反了引用约束。这种情况通常发生在您试图删除另一个行(子键)所引用的列(父键)中的行时。如果您使用的是级联删除,则数据库日志必须是打开的。

-693 System command expects a non-null value.

A null value was passed to the SYSTEM statement.

空值被传递给 SYSTEM 语句。

Example of error:错误示例:DEFINE c CHAR(100);LET c = NULL;...

SYSTEM c; -- error-694 Too many arguments passed to procedure procedure-name.

More arguments were passed to a procedure than a procedure was declared to accept.

传递给存储过程的参数比声明接受的存储过程多。

-695 Argument is not a parameter of procedure procedure-name.

A named parameter was passed to a procedure, but the named parameter does not exist.

已将命名参数传递给存储过程,但不存在命名参数。

Example of error:错误示例:CREATE PROCEDURE testproc (arg1 INT, arg2 INT) RETURNING INT;...

RETURN 1;END PROCEDURE SELECT col FROM tab WHERE testproc (arg1 = 10, arg5 = 20); -- error-696 Variable variable-name has undefined value.

An SPL variable was referenced or a row field was set before a value was assigned.

在赋值之前引用 SPL 变量或设置行字段。

Example of error:错误示例:DEFINE my_row_var1 (last_name CHAR(20), id INTEGER);DEFINE i, j INT;LET i = j + 1; -- error LET my_row_var1.id = new_id; -- error While LET my_row_var1 = ROW(NULL::CHAR(20), NULL::INTEGER)::person_rt;LET my_row_var1.id = new_id; -- success Correction: Assign all variables and parameters valid values before you use them.

更正:在使用变量和参数之前,指定它们的所有有效值。

Row type variables are allowed in SPL routines. Such variables must be initialized before they are used. To initialize a row type variable, you must initialize the entire variable.

Initializing each field will not substitute for initializing the entire variable, and in fact you cannot initialize the individual fields until after you have initialized the entire variable. The following example shows correct and incorrect initialization of row type variables in SPL.

在 SPL 例程中允许行类型变量。必须在使用这些变量之前初始化它们。若要初始化行类型变量,必须初始化整个变量。初始化每个字段并不能替代初始化整个变量,实际上,在初始化完整个变量之后,才能初始化各个字段。下面的示例显示 SPL 中行类型变量的正确和不正确初始化。

-- Example showing that row type variables in SPL must have the entire-- variable initialized. It is not sufficient to initialize the fields-- without initializing the entire variable.

-- 示例显示SPL中的行类型变量必须初始化整个变量。仅初始化字段而不初始化整个变-- 量是不够的。

CREATE DATABASE tango;drop table table1;drop row type person_rt restrict;drop function create_person_rt;CREATE ROW TYPE person_rt (last_name CHAR(20), id INTEGER);CREATE FUNCTION create_person_rt(new_name CHAR(20), new_id INTEGER)RETURNING person_rt;DEFINE my_row_var1 person_rt;-- You cannot initialize the individual fields of the variable until you-- have initialized the entire variable. If the following statement were-- executed at this point, it would fail with error -696.

-- LET my_row_var1.id = new_id;-- Initialize the entire variable.

LET my_row_var1 = ROW(NULL::CHAR(20), NULL::INTEGER)::person_rt;-- Now set the individual fields.

LET my_row_var1.id = new_id;LET my_row_var1.last_name = new_name;RETURN my_row_var1;END FUNCTION;-- Sample usage:-- 样本使用:CREATE TABLE table1 (person_column person_rt);INSERT INTO table1 (person_column) VALUES (create_person_rt('Uhuru', 128));CLOSE DATABASE;You must initialize the entire variable because the engine can track whether or not the entire variable has been initialized but cannot track initialization on a field-by-field basis.

-697 STEP expression evaluated to ZERO.

The STEP expression of a FOR statement evaluated to zero.

FOR 语句的 STEP 表达式计算为零。

Example of error:错误示例:LET e = -1;FOR i = 10 TO 20 STEP e+1; -- error...

END FOR Correction: Change the STEP expression so that it evaluates to a nonzero value.

更正:更改 STEP 表达式,使其计算值为非零值。

-698 Inconsistent transaction. Number and names of servers rolled back - servers.

This message is returned if an GBase 8s STAR two-phase commit or a distributed transaction is implemented with a mixed result. That is,some database servers participating in the transaction rolled back their parts of the global transaction, but other database servers committed their parts of the global transaction. The number of database servers that rolled back work is always accurate, but the list of server names can be incomplete. If a large number of servers rolled back work, the list might be truncated to save space. Refer to the message log of the coordinator database server for a complete list of server names. If this error message is returned, you must determine whether your networked database system is in an inconsistent state. This procedure is described in detail in your Administrator's Guide.

如果 GBase 8s STAR 两阶段提交或分布式事务以混合结果实现,则返回此消息。也就是说,一些参与事务的数据库服务器回滚了它们在全局事务中的部分,而其他数据库服务器则提交了它们在全局事务中的部分。回滚工作的数据库服务器数量总是准确的,但服务器名称列表可能不完整。如果大量服务器回滚工作,则可能会截断列表以节省空间。有关服务器名称的完整列表,请参阅协调器数据库服务器的消息日志。如果返回此错误消息,则必须确定网络数据库系统是否处于不一致状态。本程序将在“管理员指南”中详细说明。

-699 Transaction heuristically rolled back.

This message is returned if all participating database servers heuristically roll back an GBase 8s STAR two-phase commit transaction.

Because all database servers rolled back the transaction, the networked database system remains consistent.

如果所有参与的数据库服务器启发式地回滚 GBase 8s STAR 两阶段提交事务,则返回此消息。因为所有数据库服务器都回滚事务,所以联网数据库系统保持一致。

-700 Statement is invalid within a global transaction.

This error is generated when a user attempts to execute a BEGIN WORK,COMMIT WORK, or ROLLBACK WORK statement within a global transaction.

当用户试图在全局事务中执行 BEGIN WORK、COMMIT WORK 或 ROLLBACK WORK 语句时,会生成此错误。

-701 Statement is invalid within the XA environment.

This error is generated when you attempt to execute any of the following statements within an X/Open distributed transaction-processing environment:当您试图在 X/Open 分布式事务处理环境中执行下列任何语句时,会生成此错误:* CLOSE DATABASE* 关闭数据库* CREATE DATABASE* 创建数据库* DROP DATABASE* 删除数据库* SET LOG* 设置日志* SAVEPOINT* 保存点* RELEASE SAVEPOINT* 释放保存点* ROLLBACK TO SAVEPOINT* 回滚到保存点Within this environment, you can execute a single DATABASE statement after an xa_open call to specify a current database. However, after this database is selected, no other DATABASE statement can be executed.

This error is generated when you attempt to execute a second DATABASE statement.

在此环境中,可以在 xa_open 调用之后执行单个 DATABASE 语句来指定当前数据库。但是,在选中此数据库后,将无法执行其他 DATABASE 语句。当尝试执行第二条 DATABASE语句时会生成此错误。

-702 Cannot open database in exclusive mode.

Within an X/Open distributed transaction processing environment, you cannot open a database in exclusive mode.

在 X/Open 分布式事务处理环境中,不能以独占模式打开数据库。

-703 Primary key on table table-name has a field with a null key value.

An attempt was made either to insert a null value into a column that is part of a primary key, or to add a primary constraint to a table that has a NULL value in one of the key columns.

尝试将空值插入到作为主键一部分的列中,或者向其中一个键列中有 NULL 值的表中添加主约束。

-704 Primary key already exists on the table.

A table can have only one primary key.

表只能有一个主键。

-705 Cannot drop/modify procedure procedure-name. It is currently in use.

An attempt was made either to drop a currently executing procedure or to run UPDATE STATISTICS on a currently running procedure. This condition can occur if a procedure tries to drop itself or if a nested procedure tries to drop a procedure that called it.

尝试删除当前正在执行的过程或对当前运行的过程运行更新统计信息。如果过程试图删除自身,或者嵌套过程试图删除调用它的过程,则可能发生此情况。

Example of error:错误示例:CREATE PROCEDURE testproc()...

DROP PROCEDURE testproc; -- error END PROCEDURE Correction: You can use an ON EXCEPTION statement to trap this error and not carry out the DROP PROCEDURE or UPDATE STATISTICS statement.

更正:可以使用 ON EXCEPTION 语句捕获此错误,而不执行 DROP PROCEDURE 或 UPDATE STATISTICS 语句。

This error also occurs if you try to drop a function or procedure that a functional index is using.

如果尝试删除函数索引所使用的函数或过程,也会发生此错误。

This error also occurs if you try to drop a function or procedure that a xadatasource type is using.

如果尝试删除 xadatasource 类型正在使用的函数或存储过程,也会发生此错误。

-706 Execute privilege denied on procedure procedure-name.

A user who does not own the procedure or is not DBA must have Execute privilege in order to run a procedure.

不拥有存储过程或不是 DBA 的用户必须具有执行权限才能运行存储过程。

-707 TEXT and BYTE columns in optical cluster must be distinct.

The same column is specified more than once in the column list of the FOR clause in the CREATE OPTICAL CLUSTER statement. Change your statement so that no column appears more than once.

同一列在 CREATE OPTICAL CLUSTER 语句中 FOR 子句的列表中不止一次被指定。更改您的语句,以便不会出现多于一次的列。

-708 Optical cluster cluster-name already exists.

You have attempted to create a new optical cluster with the name of an existing cluster. You must either drop the existing cluster or re-execute your statement using a different cluster name.

您已经尝试使用现有集群的名称创建一个新的光学集群。必须删除现有集群或使用不同的集群名称重新执行语句。

-709 TEXT and BYTE column column-name is already clustered.

You have already created an optical cluster using the named column.

Because a single column can be part of only one optical cluster, your attempt to create a new cluster on this column has failed.

您已经使用命名的列创建了一个光学集群。由于单个列只能是一个光集群的一部分,因此您在此列上创建新集群的尝试失败。

-710 Table has been dropped, altered, or renamed.

This error can occur with explicitly prepared statements. These statements have the following form:此错误可能发生在显式准备语句中。这些声明的形式如下:PREPARE statement id FROM "quoted_string"After a statement has been prepared in the database server and before execution of the statement, a table to which the statement refers might have been renamed or altered, possibly changing the structure of the table.

Problems might occur as a result. Adding an index to the table or altering the fragmentation scheme after preparing the statement can also invalidate the statement.

在数据库服务器中准备了语句之后,在语句执行之前,该语句所引用的表可能已被重命名或更改,可能会更改该表的结构。结果可能会出现问题。在准备语句后向表添加索引或更改分片方案也会使语句无效。

This error can also occur with SPL routines. Before the database server executes a new SPL routine the first time, it optimizes the code(statements) in the SPL routine. Optimization makes the code depend on the structure of the tables that the procedure references. If the table structure changes after the procedure is optimized, but before it is executed, this error can occur.

SPL 例程也可能发生此错误。在数据库服务器第一次执行新的 SPL 例程之前,它会优化SPL 例程中的代码(语句)。优化使代码依赖于存储过程引用的表的结构。如果表结构在优化后但在执行之前发生更改,则可能会发生此错误。

The Auto Re-prepare feature allows the database server to check prepared statements and stored procedures prior to execution for changes to any tables that they reference. This feature prevents many of the common causes for the-710 error.

自动重新准备功能允许数据库服务器在执行之前检查已准备好的语句和存储过程,以查看它们引用的任何表的更改。此特性防止了导致-710错误的许多常见原因。

When the Auto Re-prepare feature is enabled the following semantics apply:启用自动重新准备功能时,应用以下语义:Before execution of a prepared statement or SPL routine the database server checks to determine if the structure of directly or indirectly referenced tables may have changed. If changes are detected the statement is checked prior to re-prepare:在执行准备好的语句或 SPL 例程之前,数据库服务器将检查直接或间接引用表的结构是否发生了变化。如果检测到更改,则在重新准备之前检查语句:* A change in the number or type of columns in the SELECT list will result in error -710 being raised. In this case the application should prepare and execute the statement again to allow the database server to re-describe the SELECT list.

* 选择列表中列的数量或类型的更改将导致引发错误 -710。在这种情况下,应用程序应该再次准备并执行语句,以便数据库服务器重新描述选择列表。

* For other changes the database server automatically re-prepares the statement. If this is successful the statement will then be executed.

* 对于其他更改,数据库服务器会自动重新准备语句。如果成功,则将执行语句。

Stored procedures are re-optimized and executed if the reoptimization succeeds.

如果重新优化成功,则重新优化和执行存储过程。

An error that occurs during the re-prepare of a statement or re-optimization of a SPL routine is returned to the application in place of the -710 error.

在重新准备语句或重新优化SPL例程期间发生的错误将返回给应用程序以代替 -710 错误。

When the Auto Re-pepare feature is not enabled the following semantics apply:当未启用“自动重新配置”功能,则应用下列语义:A subsequent OPEN command for a cursor will fail if the cursor refers to the invalid prepared statement; the failure will occur even if the OPEN command has the WITH REOPTIMIZATION clause.

如果游标引用无效的准备语句,则游标的后续 OPEN 命令将失败;即使 OPEN 命令具有WITH REOPTIMIZATION 子句,也会发生失败。

If an index was added or the fragmentation scheme was altered after the statement was prepared, you must prepare the statement again and declare the cursor again. You cannot simply reopen the cursor if it was based on a prepared statement that is no longer valid.

如果在准备语句后添加了索引或更改了分段方案,则必须再次准备语句并再次声明游标。

如果游标是基于已准备好的不再有效的语句,则不能简单地重新打开游标。

This error can also occur if the table referenced by the statement has any foreign key references to tables that were renamed after the statement was prepared.

如果语句引用的表对准备语句后重命名的表具有任何外键引用,则也会发生此错误。

Each SPL routine is optimized the first time that it is run (not when it is created). This behavior means that an SPL routine might succeed the first time it is run but fail later under virtually identical circumstances. The failure of an SPL routine can also be intermittent because failure during one execution forces an internal warning to reoptimize the procedure before the next execution.

每个 SPL 例程在第一次运行时(而不是在创建它时)进行优化。这种行为意味着 SPL 例程在第一次运行时可能会成功,但在几乎相同的情况下会在以后失败。SPL 例程的失败也可能是间歇性的,因为在一次执行期间的失败会迫使内部警告在下一次执行之前重新优化过程。

The database server keeps a list of tables that the SPL routine references explicitly. Whenever any of these explicitly referenced tables is modified, the database server reoptimizes the procedure the next time the procedure is executed.

数据库服务器保存 SPL 例程显式引用的表列表。每当这些显式引用表中的任何一个被修改时,数据库服务器都会在下一次执行该存储过程时重新优化该过程。

However, if the SPL routine depends on a table that is referenced only indirectly, the database server cannot detect the need to reoptimize the procedure after that table is changed. For example, a table can be referenced indirectly if the SPL routine invokes a trigger. If a table that is referenced by the trigger (but not directly by the SPL routine)is changed, the database server does not know that it should reoptimize the SPL routine before running it. When the procedure is run after the table has been changed, this error can occur.

但是,如果 SPL 例程依赖于仅间接引用的表,则数据库服务器无法检测在更改该表后是否需要重新优化该存储过程。例如,如果 SPL 例程调用触发器,则可以间接引用表。如果触发器引用的表(但不是由 SPL例程直接引用)被更改,数据库服务器不知道在运行它之前应该重新优化 SPL 例程。在表更改后运行存储过程时,可能会发生此错误。

Use one of two methods to recover from this error:使用两种方法中的一种从此错误中恢复:* Issue the UPDATE STATISTICS statement to force reoptimization of the procedure.

* 发出 UPDATE STATISTISTICS 语句强制对存储过程进行重新优化。

* Rerun the procedure.

* 重新运行存储过程。

To prevent this error, you can force reoptimization of the SPL routine.

To force reoptimization, execute the following statement:若要防止此错误,可以强制重新优化 SPL 例程。若要强制重新优化,请执行以下语句:UPDATE STATISTICS FOR PROCEDURE procedure_name You can add this statement to your program in either of the following ways:您可以通过下列任何一种方式将此语句添加到您的程序中:* Place the UPDATE STATISTICS statement after each statement that changes the mode of an object.

* 将 UPDATE STATISTISTICS 语句放在更改对象模式的每个语句之后。

* Place the UPDATE STATISTICS statement before each execution of the SPL routine.

* 将 UPDATE STATISTISTICS 语句放在每次执行 SPL 例程之前。

For efficiency, you can put the UPDATE STATISTICS statement with the action that occurs less frequently in the program (change of object mode or execution of the procedure). In most cases, the action that occurs less frequently in the program is the change of object mode.

为了提高效率,您可以将 UPDATE STATISTISTICS 语句与程序中发生频率较低的操作(对象模式的更改或过程的执行)放在一起。在大多数情况下,在程序中发生较少的动作是对象模式的改变。

When you follow this method of recovering from this error, you must execute the UPDATE STATISTICS statement for each procedure that references the changed tables indirectly unless the procedure also references the tables explicitly.

当您遵循此方法从此错误恢复时,必须对间接引用更改表的每个存储过程执行 UPDATE STATISTICS 语句,除非该存储过程也显式引用这些表。

You can also recover from this error by simply rerunning the SPL routine.

The first time that the stored procedure fails, the database server marks the procedure as in need of reoptimization. The next time that you run the procedure, the database server reoptimizes the procedure before running it. However, running the SPL routine twice might be neither practical nor safe. A safer choice is to use the UPDATE STATISTICS statement to force reoptimization of the procedure.

您也可以通过简单地重新运行 SPL 例程来从这个错误中恢复。当存储过程第一次失败时,数据库服务器将该存储过程标记为需要重新优化。下次运行该存储过程时,数据库服务器将在运行该存储过程之前重新优化该存储过程。然而,两次运行 SPL 例程可能既不实际,也不安全。更安全的选择是使用 UPDATE STATISTISTICS 语句强制对粗出过程进行重新优化。

-711 Cannot insert encoded BLOB descriptor.

An attempt to insert an encoded blob descriptor by means of the DESCR()function has failed. See the ISAM error for more information.

试图通过 DESCR() 函数插入编码的 BLOB 描述符的尝试失败了。有关更多信息,请参见ISAM 错误。

-712 Cannot insert encoded BLOB descriptor in non-optical BLOB columns.

You have attempted to use the DESCR() function to insert an encoded blob descriptor into a TEXT or BYTE column that is stored in a dbspace or blobspace. You can use this function only to insert descriptors into blob columns that are stored on optical media.

您已经尝试使用 DESCR() 函数将编码的 BLOB 描述符插入到存储在 dbspace 或blobspace 中的 TEXT 或 BYTE 列中。您只能使用此函数将描述符插入存储在光学介质上的 BLOB 列中。

-713 Cannot decode encoded BLOB descriptor.

The decoding of a blob descriptor prior to its insertion into a data row has failed. See the error from the optical subsystem (an error in the -7000 to -7199 range) for more information.

BLOB 描述符插入数据行之前的解码失败。有关更多信息,请参见来自光学子系统的错误(-7000 到 -7199 范围内的错误)。

-714 Cannot encode BLOB descriptor.

The encoding of a blob descriptor for storage on optical media has failed. See the error from the optical subsystem (in the -7000 to -7199 range) for more information.

用于存储在光学介质上的 BLOB 描述符的编码失败。有关更多信息,请参见来自光学子系统的错误(在 -7000 到 -7199 范围内)。

-715 Transaction state error.

An error occurred in retrieving a transaction state. See the ISAM error for more information.

检索事务状态时发生错误。有关更多信息,请参见 ISAM 错误。

-716 Possible inconsistent transaction. Unknown servers are server-name-list.

This message appears after an administrator ends a coordinator database server process, thread, or session using tbmode -z or onmode-z any time after the coordinator issues its decision either to commit or roll back a two-phase commit transaction. You must examine the message log or the logical log at each of the database servers for which the status is listed as unknown to determine whether the local transaction was committed or rolled back. If some participating database servers rolled back the transaction, and others committed it,you must determine whether your networked database system is in an inconsistent state. This procedure is described in detail in your Administrator's Guide.

在协调器发出提交或回滚两阶段提交事务的决定之后,管理员在使用 tbmode-z 或onmode-z 结束协调器数据库服务器进程、线程或会话之后,就会出现此消息。必须检查状态为未知状态的每个数据库服务器上的消息日志或逻辑日志,以确定本地事务是否已提交或回滚。如果一些参与的数据库服务器回滚事务,而其他服务器提交了事务,则必须确定联网数据库系统是否处于不一致状态。本程序将在“管理员指南”中详细说明。

-717 Invalid argument passed to system function function-name.

An invalid data type has been passed to one of the arithmetic functions(HEX(), TRUNC(), ROUND()).

无效的数据类型已传递给算术函数之一 (HEX()、TRUNC()、ROUND())。

-718 Statement is invalid while a global transaction is suspended.

If a database server that is acting as a Resource Manager in an X/Open distributed transaction-processing environment has suspended a transaction, its next statement must be xa_start. All other statements are disallowed.

如果在 X/Open 分布式事务处理环境中充当资源管理器的数据库服务器挂起了事务,则其下一条语句必须是 xa_start 。所有其他的语句都是不允许的。

-719 Loop variable variable-name cannot be declared GLOBAL.

A global variable cannot be used as a loop variable. Redefine the variable to be local to the loop, or use another (local) variable as the loop variable.

全局变量不能用作循环变量。将变量重新定义为循环的本地变量,或者使用另一个(局部变量)变量作为循环变量。

-720 The number of returned values and of SPL variables do not match.

The list of SPL variables that follows the INTO keyword has a different cardinality from the number of values in each row of the active set.

This error can occur during the FOREACH statement of SPL, or during the FETCH statement of dynamic SQL.

INTO 关键字后面的 SPL 变量列表与活动集中每一行的值数有不同的基数。此错误可能发生在 SPL 的 FOREACH 语句或动态 SQL 的 FETCH 语句中。

In a FOREACH statement with an embedded SELECT statement, the variable list that follows the INTO keyword in the SELECT statement does not match the number of columns or expressions in each row that the SELECT statement retrieves. In a FOREACH statement with an embedded EXECUTE or EXECUTE PROCEDURE statement, the INTO clause that follows the routine argument list specifies a list of variables whose number does not match the number of values that the routine returns.

在带有嵌入式 SELECT 语句的 FOREACH 语句中,SELECT 语句中 INTO 关键字后面的变量列表不匹配 SELECT 语句检索的每一行中的列或表达式数。变量的数目与例程返回的值数不匹配的变量。在带有嵌入式 EXECUTE FUNCTION 或 EXECUTE PROCEDURE 语句的FOREACH 语句中,例程参数列表后面的 INTO 子句指定一个变量列表,其数量与例程返回的值数不匹配。

In a FETCH statement, the variable list that follows the INTO keyword does not match the number of columns or expressions in each row that a SELECT statement retrieves, or does not match the number of values returned by a function call. A DECLARE statement in the same SPL routine associated the cursor that FETCH specifies with a SELECT statement or with an EXECUTE FUNCTION or EXECUTE PROCEDURE statement.

在 FETCH 语句中,INTO 关键字后面的变量列表不匹配 SELECT 语句检索的每一行中的列或表达式数,或者与函数调用返回的值数不匹配。同一个 SPL 例程中的一个 DECLARE 语句与游标关联,该游标使用 EXECUTE FUNCTION 或 EXECUTE PROCEDURE 语句指定。

For example, the following dynamic SQL statements inside a procedure body returns this error when the procedure is executed, because fetching from the cursor returns two values (c1, c2) but has only one local variable(l_out1) to receive those two column values:例如,存储过程正文中的以下动态 SQL 语句在执行存储过程时返回此错误,因为从游标中提取返回两个值(c1、c2),但只有一个局部变量(l_out1)来接收这两个列值:create procedure proc()define qry_str varchar(120);define l_out1 char(10);let qry_str = "select c1,c2 from t1";prepare stmt_id from qry_str;declare my_cur cursor for stmt_id;open my_cur;fetch my_cur into l_out1;....

end procedure;To avoid this error, review the logic of the FOREACH or FETCH statement to verify that the list of variables in the INTO clause matches the number of values in the projection list of the SELECT statement, or matches the number of values returned by the routine. Both FOREACH and FETCH require a 1-to-1 correspondence in number, order, and data type between the list of SPL variables in the INTO clause and the values returned by a call or in each row returned by a query.

要避免此错误,请检查 FOREACH 或 FETCH 语句的逻辑,以验证 INTO 子句中的变量列表是否与 SELECT 语句的投影列表中的值数目匹配,或与例程返回的值数目匹配。FOREACH和 FETCH 在 INTO 子句中的 SPL 变量列表与调用返回的值或查询返回的每一行之间都需要 1 到 1 对应的数字、顺序和数据类型。

If more than one cursor is open when a FETCH statement receives this error,make sure that the FETCH statement references the correct cursor.

如果在 FETCH 语句收到此错误时打开了多个游标,请确保 FETCH 语句引用正确的游标。

-721 SPL routine () is no longer valid.

You are attempting to execute a procedure from an EXECUTE statement,but it has been redefined since the PREPARE statement was run. You must use the PREPARE statement again on the EXECUTE PROCEDURE statement.

您正在尝试从 EXECUTE 语句中执行一个过程,但是自从运行 PREPARE 语句以来,它已经被重新定义了。您必须再次对 EXECUTE PROCEDURE 语句使用 PREPARE 语句。

For example, the following sequence of code would cause this error:例如,下面的代码序列将导致此错误:$prepare pr_stat from 'execute procedure testproc()';...

/* drop procedure testproc create procedure testproc() ......

[same application or different] */...

$execute pr_stat;/* triggers error -721 */-722 Out of stack space.

The database server has run out of memory for stack space. Ask the GBase 8s database administrator to increase the STACKSIZE parameter that is specified in the ONCONFIG file to allocate more memory. The database server must be restarted for the change to take effect.

数据库服务器用于堆栈空间的内存已经耗尽。请 GBase 8s 数据库管理员增加 ONCONFIG文件中指定的 STACKSIZE 参数,以分配更多内存。必须重新启动数据库服务器才能使更改生效。

-723 Cannot disable logging in an ANSI-compliant database.

You attempted to use the START DATABASE WITH NO LOG syntax to remove database logging on an SE database that is ANSI compliant.

You cannot turn off logging by running this statement on this kind of database.

您试图使用 START DATABASE WITH NO LOG 语法删除符合 ANSI 标准的 SE 数据库上的数据库日志记录。不能通过在此类数据库上运行此语句来关闭日志记录。

-724 System initialization file $GBS_HOME/cnv50t60.sql is missing.

Check that $GBS_HOME/cnv50t60.sql is in place and readable. If it is, and the system still fails, reinstall the system.

是否 $GBS_HOME/cnv50t60.sql 已到位并具有可读性。如果是,而且系统仍然失败,请重新安装系统。

-725 Error occurred while reading system initialization file$GBS_HOME/cnv50t60.sql.

Check that the script file $GBS_HOME/cnv50t60.sql is readable. If it is, and the failure still occurs, reinstall the product.

检查脚本文件 $GBS_HOME/cnv50t60.sql 是否可读。如果是,并且仍然发生故障,请重新安装产品。

-726 First argument to dbinfo() must be a quoted string constant.

The first argument to dbinfo() should be a quoted string constant. If the first argument to dbinfo() is the string 'version', then the second argument should also be a quoted string constant.

dbinfo() 的第一个参数应该是引用的字符串常量。如果 dbinfo() 的第一个参数是字符串‘version’,那么第二个参数也应该是一个引号字符串常量。

-726 First argument to dbinfo() must be a quoted string constant.

Check that the first argument to dbinfo() is a quoted string that corresponds to one of the following values: 'dbspace', 'sqlca.sqlerrd1',or 'sqlca.sqlerrd2'.

检查 dbinfo() 的第一个参数是一个引号字符串,该字符串对应以下值之一:'dbspace'、 'sqlca.sqlerrd1' 或 'sqlca.sqlerrd2'。

-727 Invalid or NULL tblspace number given to dbinfo(dbspace).

You called the dbinfo() function with the 'dbspace' string constant as the first parameter. You must provide either the number of a valid tablespace or an expression that evaluates to such a number as the second parameter. Check that you supplied a number as your second parameter and that it corresponds to the number of a valid tablespace.

您使用“dbspace”字符串常量作为第一个参数调用 dbinfo() 函数。必须提供有效tablespace 的编号或计算为第二个参数这样的数字的表达式。检查您是否提供了一个数字作为第二个参数,并且它对应于一个有效 tablespace 的编号。

-728 Unknown first argument of dbinfo().

Check that the first argument to dbinfo() is a quoted string that corresponds to one of the following values: 'dbspace', 'version', 'sqlca.sqlerrd1','sqlca.sqlerrd2', 'sessionid', 'coserverid', 'utc_to_datetime','utc_current', 'get_tz', or 'dbhostname'.

检查 dbinfo() 的第一个参数是对应的引用字符串。下列值之一:'dbspace'、'version'、 'sqlca.sqlerrd1'、'sqlca.sqlerrd2'、 'sessionid'、 'coserverid'、'utc_to_datetime'、'utc_current'、 'get_tz' 或 'dbhostname'。

-728 Unknown first argument of dbinfo argument-name.

The valid arguments to the dbinfo() function are the quoted string'dbspace' followed by the number of a valid tablespace, or one of the following two values: 'sqlca.sqlerrd1' or 'sqlca.sqlerrd2'. Check that you supplied one of these values and enclosed the string in quotes.

dbinfo( )函数的有效参数是引用的字符串“dbspace”,后面是有效表空间的数目,或者是以下两个值中的一个:‘sqlca.sqlerrd1’或‘sqlca.sqlerrd2’。检查是否提供了其中一个值,并将字符串括在引号中。

-729 Trigger has no triggered action.

Your CREATE TRIGGER statement does not include a triggered action. Add a triggered action list to the trigger definition, and resubmit the CREATE TRIGGER statement.

您的 CREATE TRIGGER 语句不包括触发的操作。向触发器定义中添加触发操作列表,并重新提交 CREATE TRIGGER 语句。

-730 Cannot specify REFERENCING if trigger does not have FOR EACH ROW.

You included a REFERENCING clause in a CREATE TRIGGER statement that does not include a FOR EACH ROW triggered-action section. Either remove the REFERENCING clause or, if it is appropriate, add the missing keywords FOR EACH ROW, followed by the triggered actions that are to occur at that time.

在 CREATE TRIGGER 语句中包含了一个 REFERENCING 子句,该语句不包括 FOR EACH ROW触发操作的部分。或者删除 REFERENCING 子句,或者(如果适当的话)添加缺少的关键字 FOR EACH ROW,后面是将要发生的触发操作。

-731 Invalid use of column reference in trigger body.

For insert and delete triggers, the offending column is being used in the INTO clause of the EXECUTE PROCEDURE statement (which is only allowed for an update trigger). Remove the column names from the INTO clause.

对于插入和删除触发器,EXECUTE PROCEDURE 语句的 INTO 子句中使用违规列(只允许更新触发器)。从 INTO 子句中删除列名。

-732 Incorrect use of old or new values correlation name inside trigger.

You cannot use the new or old correlation name outside the FOR EACH ROW section or in the INTO clause of the EXECUTE PROCEDURE statement. You cannot use the new or old correlation name to qualify the SELECT COUNT DISTINCT column. For example, the following statement returns this error:不能在 EXECUTE PROCEDURE 语句的 FOR EACH ROW 部分或 INTO 子句之外使用新的或旧的相关名称。不能使用新的或旧的相关名称来限定 SELECT COUNT DISTINCT 列。例如,以下语句返回此错误:SELECT COUNT (DISTINCT oldname.colname)You cannot specify an old correlation name for an insert trigger. You cannot specify a new correlation name for a delete trigger.

不能为插入触发器指定旧的相关名称。不能为删除触发器指定新的相关名称。

-733 Cannot reference procedure variable in CREATE TRIGGER or CREATE VIEW statement.

You have a CREATE TRIGGER or CREATE VIEW statement inside an SPL routine, and within the CREATE TRIGGER or CREATE VIEW statement,you reference a variable that is defined in the SPL routine.

This action is not legal. Remove the reference to the SPL-routine variable from the CREATE TRIGGER or CREATE VIEW statement and try again.

在 SPL 例程中有 CREATE 触发器或 CREATE VIEW 语句,在 CREATE TRIGGER 或 CREATE VIEW 语句中引用 SPL 例程中定义的变量。这种行为是不合法的。从 CREATE TRIGGER或 CREATE VIEW 语句中删除对 SPL-routine 变量的引用,然后重试。

-734 Object name matches old or new values correlation name.

This error is returned in three cases:此错误将在以下三种情况下返回:* The name of the triggering table or the synonym, if it is used,matches the old or new correlation name in the REFERENCING clause.

* 如果使用触发表或同义词的名称,则与 REFERENCING 子句中的旧的或新的相关名称相匹配。

* The name of a table or a synonym that is referenced in the action clause matches either the old or new correlation name in the REFERENCING clause.

* 在action 子句中引用的表或同义词的名称与 REFERENCING 子句中的旧的或新的相关名称相匹配。

* The old correlation name matches the new correlation name.

* 旧的相关名称与新的相关名称相匹配。

Change either the correlation name or the table name, and execute the CREATE TRIGGER statement again.

更改相关名称或表名,然后再次执行 CREATE TRIGGER 语句。

-735 Cannot reference table that participates in cascaded delete.

The child table is either referenced in a correlated subquery that is part of a DELETE or MERGE statement or as a source table in a MERGE statement. The child table cannot be one of the tables on which a delete would cascade.

These actions are not allowed because the result depends on the order in which the rows are processed. Rewrite your query so that the child table is not referenced in a correlated subquery, or as source table of the MERGE statement,or both.

子表可以在 DELETE 或 MERGE 语句的关联子查询中引用,也可以作为合并语句中的源表引用。子表不能是 DELETE 将级联的表之一。这些操作是不允许的,因为结果取决于处理行的顺序。重写查询,以便在关联子查询中不引用子表,也不引用 MERGE 语句的源表,或者两者都引用。

-736 The RESOLUTION and SAMPLING SIZE clauses are not valid for the LOW mode of the UPDATE STATISTICS statement.

Because data distributions are constructed only in the MEDIUM or HIGH modes of the UPDATE STATISTICS statement, specifying the resolution or sampling size is not meaningful in LOW mode.

由于数据分布仅在 UPDATE STATISTISTICS 语句的 MEDIUM 或 HIGH 模式中构造,所以在LOW 模式下指定分辨率或采样大小没有意义。

Remove the RESOLUTION clause and the SAMPLING SIZE clause from the statement.

请从语句中删除 RESOLUTION 子句和 SAMPLING SIZE 子句。

To use the SAMPLING SIZE clause, change the mode to MEDIUM. To use the RESOLUTION clause, change the mode to MEDIUM or HIGH.

若要使用抽样大小子句,请将模式更改为“中等”。若要使用“解决”子句,请将模式更改为“中”或“高”。

-737 The confidence value and the SAMPLING SIZE clause are not valid for the HIGH mode of the UPDATE STATISTICS statement.

Remove the confidence value and the SAMPLING SIZE clause from the statement.

从语句中删除置信值和 SAMPLING SIZE 子句。

For example, the following statement has a confidence value of 0.99:例如,以下语句的置信值为0.99:UPDATE STATISTICS HIGH RESOLUTION 0.1 0.99;The corrected statement is:更正后的语句如下:UPDATE STATISTICS HIGH RESOLUTION 0.1;If you want a distribution that is based upon sampling rather than one that uses all of the data in a column, change the mode from HIGH to MEDIUM and you specify number of samples using the SAMPLING SIZE clause.

如果希望基于抽样而不是使用列中的所有数据的分布,请将模式从 HIGH 更改为 MEDIUM,并使用 SAMPLING SIZE 子句指定样本数。

-738 DROP DISTRIBUTIONS is only valid in LOW mode.

By default, LOW mode does not remove distributions, so you need to use the DROP DISTRIBUTIONS clause. To remove HIGH or MEDIUM distributions,use the DROP DISTRIBUTIONS clause.

缺省情况下,LOW 模式不会删除 DISTRIBUTIONS,因此需要使用 DROP DISTRIBUTIONS子句。若要删除 HIGH 或 MEDIUM distributions,请使用 DROP DISTRIBUTIONS 子句。

-739 Confidence must be in the range [0.80, 0.99] (inclusive).

If the value of the confidence desired is greater than 0.99, use HIGH mode. A value of less than 0.80 is not allowed because it will probably yield a poor distribution. If you are reducing the confidence to reduce the time that is required to execute the UPDATE STATISTICS statement,consider using a larger resolution value.

如果所需信任的值大于 0.99,请使用 HIGH 模式。小于 0.80 的值是不允许的,因为它可能会产生很差的分布。如果降低了执行 UPDATE STATISTICS 语句所需时间的信心,请考虑使用更大的解析值。

-740 Resolution must be greater than 0.005 and less than, or equal to, 10.0.

The value of this parameter determines how finely the data distribution is resolved. A resolution of 10.0 implies that the accuracy of any estimate for the application of any single selection filter is limited to (+ or -) 5 percent. A value greater than 10.0 would be of little value because it would not provide sufficient detail about the distribution of the data.

此参数的值决定数据分布的解析程度。一个 10.0 的分辨率意味着,对任何单一选择过滤器的应用的任何估计的准确性限制在(或-)5%。大于 10.0 的值没有多大价值,因为它不能提供关于数据分布的足够详细信息。

-741 Trigger for the same event already exists.

You are creating a trigger for an event, but another trigger already exists for that event. You can have only one insert or delete trigger on a table. If you are defining multiple triggers that occur on an update, the column lists in the UPDATE statements must be mutually exclusive. You cannot name a column as a triggering column in more than one UPDATE clause.

您正在为事件创建触发器,但该事件的另一个触发器已经存在。只能在表上有一个插入或删除触发器。如果要定义在更新中发生的多个触发器,则 UPDATE 语句中的列表必须互斥。在多个 UPDATE 子句中,不能将列命名为触发列。

-742 Trigger and cascading-delete referential constraint cannot coexist.

Delete triggers cannot coexist with referential constraints.

删除触发器不能与引用约束共存。

This error occurs if you try to add a delete cascade foreign key to a table that already has a delete trigger on it. This error also occurs if you try to add a delete trigger to a table that already has a delete cascade foreign key.

如果试图将删除级联外键添加到已经有删除触发器的表中,则会发生此错误。如果试图向已具有删除级联外键的表添加删除触发器,也会发生此错误。

-743 Object object_name already exists in database.

You are trying to define an object that already exists in the database.

您正在尝试定义数据库中已经存在的对象。

-744 Illegal SQL statement in trigger.

This error is returned when the triggered SQL statement is BEGIN WORK,COMMIT WORK, ROLLBACK WORK, or SET CONSTRAINTS. These statements are not allowed as triggered actions. Remove the offending statement.

当触发的 SQL 语句是 BEGIN WORK, COMMIT WORK, ROLLBACK WORK 或 SET CONSTRAINTS时,将返回此错误。这些语句不允许作为触发操作。删除违规语句。

-745 Trigger execution has failed.

This message is defined for general use to apply to error conditions that you specify in an SPL routine that is a triggered action.

此消息定义为一般使用,以适用于您在 SPL 例程中指定的错误条件,SPL 例程是触发的操作。

-746 message-string You supply message-string for this message. You can apply this message to error conditions that you specify in an SPL routine. The corrective action for this error depends on the condition that caused it. You, the user,define both the condition and the message text.

您为此消息提供消息字符串。可以将此消息应用于在 SPL 例程中指定的错误条件。此错误的纠正措施取决于导致此错误的条件。用户定义条件和消息文本。

-747 Table or column matches object referenced in triggering statement.

This error is returned when a triggered SQL statement acts on the triggering table, or when both statements are updates, and the column that is updated in the triggered action is the same as the column that the triggering statement updates.

当触发 SQL 语句作用于触发表时,或者当这两条语句都是更新时,并且在触发操作中更新的列与触发语句更新的列相同时,将返回此错误。

-748 Exceeded limit on maximum number of cascaded triggers.

You exceeded the maximum number of cascading triggers, which is 61. You may be setting off triggers without realizing it. You can query the systriggers system catalog table to find out what triggers exist in the database. To trace the triggered actions, place the action clause of the initial trigger in an SPL routine, and use the SPL TRACE statement.

您超过了级联触发器的最大数目,即 61。你可能会在没有意识到的情况下触发器。您可以查询 systriggers 系统目录表,以找出数据库中存在哪些触发器。若要跟踪触发的操作,请将初始触发器的 action 子句放在 SPL 例程中,并使用 SPL TRACE 语句。

-750 Invalid distribution format found for table_name.

This internal error should not occur unless the database has been corrupted in some way. To rebuild the distribution, use UPDATE STATISTICS. If the error recurs, note all circumstances and contact GBase Technical Support.

除非数据库以某种方式损坏,否则不应发生此内部错误。若要重新生成 distribution,请使用 UPDATE STATISTICS。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-752 All Smart Disk devices are busy.

Wait a while and retry your Smart Disk operation.

请稍等,然后重试您的智能磁盘操作。

-753 Access denied - Single user limit has been exceeded.

Licensing enforcement is configured for only one user; multiple users cannot use the product at the same time. If you are using the product from a remote computer, the product is licensed only for a nonnetworked environment.If you are using the product from a local computer, wait until the current user exits and try again.

只为一个用户配置了许可证强制执行;多个用户不能同时使用该产品。如果您使用的是来自远程计算机的产品,则该产品仅用于非网络环境。如果您使用的是来自本地计算机的产品,请等到当前用户退出后再试一次。

-754 Cannot access the license file.

The system cannot find the user license file. The user license file might not have been installed, or it might have been installed improperly. Also, you might not have the correct file or directory permissions to access the user license file. Consult your installation documentation.

系统找不到用户许可证文件。用户许可证文件可能没有安装,或者安装不当。此外,您可能没有访问用户许可证文件的正确文件或目录权限。请参阅您的安装文档。

-755 Cannot access the license file to release license.

You might not have appropriate permission for your particular action.

Check with your system administrator.

您可能对您的特定操作没有适当的权限。请与系统管理员联系。

-756 Evaluation version has expired.

The evaluation version of this product will work only for a specified period of time. This version allows you to evaluate the product but not use it permanently. When the evaluation version expires, call GBase to order a standard version of the product.

此产品的评估版本将只在指定的时间内工作。此版本允许您评估产品,但不能永久使用它。当评估版本过期时,请调用 GBase 订购该产品的标准版本。

-757 File open for light append can't pseudo close.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-758 Cannot implicitly reconnect to the new server server_name.

If you use the CONNECT TO statement to connect to a server, you cannot implicitly reconnect to another server through one of the DATABASE statements (DATABASE, START DATABASE, and so on). You must switch to it with the SET CONNECTION statement.

如果使用 CONNECT TO 语句连接到服务器,则不能通过其中一个 DATABASE 语句(DATABASE, START DATABASE,等等)隐式地重新连接到另一台服务器。必须使用 SET CONNECTION 语句切换到它。

-759 Cannot use database commands in an explicit database connection.

If you use the CONNECT TO database@server syntax to connect to a database and server, you cannot select another database until you disconnect your current connection.

如果使用 CONNECT TO database@server 语法连接到数据库和服务器,则在断开当前连接之前,无法选择其他数据库。

-760 Remote procedure must commit or rollback before returning.

Your remote procedure must execute a COMMIT WORK or ROLLBACK WORK statement before that procedure returns control to your application.

远程过程必须执行 COMMIT WORK 或 ROLLBACK WORK 语句,然后该过程才能将控制返回到应用程序。

-762 Stack overflow occurred during statement parse.

This error indicates that an internal memory limitation in the SQL parser has been reached. This condition can occur if your query contains many nested expressions. For example, the query might contain many occurrences of AND and/or OR in the WHERE clause. To work around this condition, rewrite the query to eliminate some of the nested expressions.

此错误表示已达到 SQL 解析器中的内部内存限制。如果查询包含许多嵌套表达式,则可能发生此情况。例如,查询可能在 WHERE 子句中包含AND 和/或 OR 的许多occurrences。若要解决此情况,请重写查询以消除一些嵌套表达式。

-763 Error in auditing environment initialization.

This all-purpose message indicates a problem when a user tries to connect to a secure database server. Contact your security administrator or DBA for how to proceed.

此通用消息表示当用户试图连接到安全数据库服务器时出现问题。请与您的安全管理员或DBA 联系,了解如何继续进行。

-764 Only DBA can run update statistics on a database in this mode.

You tried to run the UPDATE STATISTICS statement with the DROP DISTRIBUTIONS clause on the entire database in a mode other than LOW.

Only user gbasedbt or the database administrator can do perform this action.

您尝试在不是 LOW 的模式下在整个数据库上运行 UPDATE STATISTICS 语句和 DROP DISTRIBUTIONS 子句。只有 Gbasedbt 用户或数据库管理员才能执行此操作。

-765 Cannot EXECUTE a statement that has been DECLAREd.

You cannot execute a prepared statement that has been declared.

However, to specify output variables for a prepared singleton SELECT statement, use EXECUTE INTO (or EXECUTE PROCEDURE INTO) instead of executing DECLARE, OPEN, and FETCH statements.

不能执行已声明的准备语句。但是,要为准备好的单例 SELECT 语句指定输出变量,请使用 EXECUTE INTO(或 EXECUTE PROCEDURE INTO)而不是执行 DECLARE、OPEN 和 FETCH语句。

-766 String must be null terminated.

With GBase 8s ESQL/C, if you use a host variable in an INSERT statement or in the WHERE clause of an SQL statement, and the database is ANSI compliant, the string must be null terminated.

对于 GBase 8s ESQL/C,如果在 INSERT 语句或 SQL 语句的 WHERE 子句中使用主机变量,且数据库符合 ANSI,则字符串必须为 NULL。

-767 Cannot UPDATE/INSERT a remote table using views with check options.

You cannot perform an UPDATE or INSERT operation on a table that resides across a network when you are using views that have check options. Remove the all check options from the view, or perform the UPDATE/INSERT locally.

在使用具有检查选项的视图时,不能对驻留在网络上的表执行 UPDATE 或 INSERT 操作。

从视图中删除所有检查选项,或在本地执行 UPDATE/INSERT。

-768 Internal error in routine routine-name.

If this internal error recurs, note all circumstances and contact GBase Technical Support.

如果这个内部错误再次出现,请注意所有情况,并与 GBase 技术支持部门联系。

-769 Internal - iterator execution/phase error parameter.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-770 Bad fragment id specified.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-771 Bad table lock id specified.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-772 Record/key doesn't qualify for any table/index fragment.

This error can occur during a record insert or update. The most likely cause is an incorrect fragmentation specification that did not specify a REMAINDER. The easiest correction is to add a REMAINDER fragment to your SQL statement. However, the best correction is probably to reexamine the original fragmentation specification, figure out what is wrong, and fix it with an ALTER FRAGMENT statement.

此错误可能发生在记录插入或更新过程中。最有可能的原因是不正确的分片规范,没有指定余数。最简单的更正是向 SQL语句中添加一个剩余片段。然而,最好的修正可能是重新检查原始的碎片规范,找出问题所在,并使用ALTERFECTION语句修复它。

For interval fragmented table or index, ensure that automatic interval fragment creation is enabled. The following query can be used to determine if automatic interval fragment creation is enabled for a table and its indexes:对于区间分片表或索引,请确保启用了自动间隔分片创建。以下查询可用于确定表及其索引是否启用了自动间隔分片创建:SELECT t.tabname, f.indexname,decode(bitand(f.flags, 2048), 0, 1, 0) intvl_enabled FROM sysfragments f, systables t WHERE f.tabid = t.tabid AND f.evalpos = -2 AND t.tabname = ;The following are examples on how to enable automatic interval fragment creation for an interval fragmented table or index:以下是关于如何为区间分片表或索引启用自动间隔分片创建的示例:ALTER FRAGMENT ON TABLE MODIFY INTERVAL ENABLED;ALTER FRAGMENT ON INDEX MODIFY INTERVAL ENABLED;-773 Expression required for new fragment.

When you add a fragment to an expression-based fragmentation strategy,you must specify an expression for the new fragment. Restate your SQL statement to include a fragment expression.

当向基于表达式的分片策略添加分片时,必须为新分片指定表达式。重新声明 SQL 语句以包含分片表达式。

-774 Cannot specify fragment expressions with a round-robin fragmentation.

If table fragmentation is based on a round-robin strategy, you cannot specify a fragment expression during an ALTER FRAGMENT operation.

如果表分片是基于轮转法策略的,则不能在 ALTER FRAGMENT 操作期间指定分片表达式。

-775 Fragment partition name not used by table/index.

The partition that is specified during an ALTER FRAGMENT operation is incorrect because that partition contains no fragment.

Specify a partition that has a fragment. Partition names default to the dbspace name if not specified at create time.

在 ALTER FRAGMENT 操作期间指定的分区是不正确的,因为该分区不包含任何分片。请指定一个具有分片的分区。分区名称缺省为 dbspace 名称(如果在创建时未指定)。

-776 Alter fragment error: unable to move rows to new fragmentation scheme.

During an ALTER FRAGMENT operation, the rows could not be moved to another fragmentation strategy. See the accompanying ISAM error for more information on why the ALTER FRAGMENT operation failed.

在 ALTER FRAGMENT 操作期间,不能将行移动到另一个分片策略。有关 ALTER FRAGMENT操作失败的更多信息,请参见附带的 ISAM 错误。

-777 Internal - function not valid on fragmented table.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-778 Unable to alter fragmentation scheme on index or table.

During an ALTER FRAGMENT operation, the fragmentation strategy for the index or table could not be altered. See the accompanying ISAM error for more information on why the ALTER FRAGMENT operation failed.

在 ALTER FRAGMENT 操作期间,索引或表的分片策略无法更改。有关 ALTER FRAGMENT 操作失败的更多信息,请参见附带的 ISAM 错误。

-779 Duplicate table name in the alter fragment specification.

You cannot attach the same table multiple times. Check that your alter fragment specification attaches the same table only once.

不能多次附加同一个表。检查您的 ALTER 分片规范只附加同一表一次。

-780 Table/index is not fragmented.

You cannot perform the ALTER FRAGMENT operation because the table or index is not fragmented. Fragment the table or index, or do not perform the fragmentation operation.

因为表或索引不是分片的,所以不能执行 ALTER FRAGMENT 操作。对表或索引进行分片,或不执行分片操作。

-781 Cannot alter fragmentation on a temp table.

You tried to alter a fragment that is based on a temporary table. In general, dynamic modification of a TEMP table is not allowed. You must re-create the temporary table if you require a different fragmentation scheme.

您试图修改基于临时表的分片。通常,不允许动态修改临时表。如果需要不同的分片方案,则必须重新创建临时表。

-782 Attached table is fragmented.

When you attach tables, the consumed table cannot be fragmented.

附加表时,所使用的表不能分片。

-783 Cannot attach because of incompatible schema.

Incompatible table schemas do not allow you to perform an attach. When you perform an attach, the table schemas must be identical and tables must be compatiable from LBAC perspective. Use the ALTER TABLE statement to make the schemas identical, the surviving table and consumed table to be protected by the same security policy, and make the protected columns to be protected by the same set of security labels. Then perform an ALTER FRAGMENT...ATTACH operation.

不兼容的表架构不允许执行附加操作。执行附加时,从 LBAC 的角度来看,表模式必须是相同的,表必须是兼容的。使用 ALTER TABLE 语句使架构相同,幸存的表和消费表受相同的安全策略保护,并使受保护的列受到同一组安全标签的保护。然后执行一个 ALTER FRAGMENT...ATTACH 操作。

-784 Cannot detach because of the existing referential constraints.

Existing referential constraints do not allow you to perform a detach.

You must drop the referential constraints before you perform the detach on the dbspace/partition or table.

现有的引用约束不允许执行分离。在dbspace/partition 或表上执行分离之前,必须删除引用约束。

-785 Cannot drop column because of table or index fragmentation.

You must alter fragmentation expressions to remove references to the column before the column can be dropped.

在删除列之前,必须更改分段表达式以删除对列的引用。

-786 Cannot attach to this table because it is not in the list of tables in the ATTACH clause.

The surviving table is either nonfragmented or hash-fragmented and must appear in the attach list in order for its existing fragment to be properly positioned in the resulting fragmentation scheme.

幸存的表要么是不分片的要么是散列-分片的,并且必须出现在附加列表中,以便使其现有的分片被正确地定位在所得到的分片方案中。

-787 Index fragmented same-as-table cannot be altered.

If you do not specify storage-spec in a CREATE INDEX statement, the indexes are fragmented the same as the underlying table, subject to all the restrictions on fragmented indexes. For example, an error is returned if the underlying fragmentation strategy is round-robin, and the index is unique. You cannot alter this type of index fragmentation.

If you want to change the index fragmentation, use the INIT option of ALTER INDEX to detach the index. That operation makes the index and table independent and lets you alter each independently.

如果不在 CREATE INDEX 语句中指定存储规格,则索引与基础表相同,与受分片索引的所有限制相同。例如,如果基础分片策略是循环的,并且索引是唯一的,则返回一个错误。

不能更改此类索引分片。如果要更改索引分片,请使用 ALTER INDEX 的 INIT 选项来分离索引。该操作使索引和表独立,并允许您独立地更改每个表和表。

-788 Unknown operator/type.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-789 Internal error, expression not properly defined.

If you cannot find a direct cause for this internal error, note all circumstances and contact GBase Technical Support.

如果找不到导致此内部错误的直接原因,请注意所有情况,并与 GBase 技术支持部门联系。

-790 Cannot create interval fragment.

An error occurred while creating an interval fragment. Retry the operation after some delay. If the error persists, note all circumstances and contact GBase Technical Support.

创建间隔分片时出错。延迟一段时间后重试操作。如果错误仍然存在,请注意所有情况,并与 GBase 技术支持部门联系。

-791 Cannot find fragment for the row.

An error occurred while finding a fragment for the row. For an interval fragmented table or index, a failure occurred while evaluating the fragment position for the row.

在为行查找分片时发生了错误。对于间隔分片表或索引,在计算行的分片位置时发生故障。

Examine the data value in the row with the definition of your fragmentation strategy to verify that the row can be stored in one of the initial range fragments or the interval fragments.

使用分片策略的定义检查行中的数据值,以验证该行是否可以存储在初始范围分片或间隔分片中。

-792 Cannot update the sysfragments system catalog table for an interval fragment.

An error occurred while updating the sysfragments system catalog table for the newly created interval fragment. Insufficient disk space is a common cause of this error.

更新新创建的间隔分片的 sysfragments 系统目录表时出错。磁盘空间不足是造成此错误的常见原因。

-793 Page size of the dbspace does not match page size of the table or index.

The page size of the dbspace does not match page size of the table or index.

All fragments of a table or index must be created in dbspace of same page size. If this is an interval fragmented table or index, ensure that all dbspaces in the STORE IN clause have same page size and match the page size of the initial fragment dbspaces.

dbspace 的页大小与表或索引的页大小不匹配。表或索引的所有片段必须在相同页大小的dbspace 中创建。如果这是一个间隔分段表或索引,请确保 STORE IN 子句中的所有dbspace 具有相同的页大小,并匹配初始分片 dbspace 的页大小。

-794 One or more dbspaces for interval fragments do not exist.

One or more dbspaces in the STORE IN clause of an interval fragmented table or index do not exist. Contact the database server administrator to have the dbspaces added. Alternatively you can use the ALTER FRAGMENT statement for the table or index to modify the STORE IN clause to list dbspaces that exist in the system. Always ensure that the page size of the dbspace matches the page size of the table or index.

区间分片表或索引的 STORE IN 子句中的一个或多个 dbspace 不存在。请与数据库服务器管理员联系,以添加 dbspace 。或者,您可以为表或索引使用 ALTER FRAGMENT 语句来修改 STORE IN 子句,以列出系统中存在的 dbspace 。始终确保 dbspace 的页大小与表或索引的页大小匹配。

-795 One or more dbspaces for interval fragments are unusable.

The primary chunk (and the mirror chunk, if one exists) for one or more dbspaces in the STORE IN clause of an interval fragmented table or index are unusable. Roll back the current transaction and terminate the application.

Contact the database server administrator to repair the dbspaces.

区间分片表或索引的 STORE IN 子句中的一个或多个 dbspac e的主 chunk (如果存在镜像 chunk)是不可用的。回滚当前事务并终止应用程序。请与数据库服务器管理员联系以修复 dbspace 。

-796 Fragment position for the row exceeds the maximum allowed.

The fragment position for the row exceeds 2147483646. Consider changing the interval value expression or transition value to accommodate the row.

行的分片位置超过 2147483646 。考虑更改区间值表达式或转换值以适应行。

-797 Fragment is not empty.

The fragment contains data rows or index items and is not empty.

该分片包含数据行或索引项,且不为空。

-798 No permission on table to create an interval fragment.

The user does not have the required table-level privilege to create an interval fragment. An interval fragment can be created during an INSERT or an UPDATE operation. If an INSERT operation triggers the creation of an interval fragment, then user must have INSERT privilege at the table-level. Similarly,if an UPDATE operation triggers the creation of an interval fragment, then user must have UPDATE privilege at the table-level.

用户没有创建间隔分片所需的表级权限。可以在 INSERT 或 UPDATE 操作期间创建间隔分片。如果 INSERT 操作触发了间隔分片的创建,那么用户必须在表级别拥有 INSERT 权限。类似地,如果 UPDATE 操作触发了间隔分片的创建,那么用户必须在表级别拥有UPDATE 权限。

-800 Corresponding data types must be compatible in CASE expression or DECODE function.

All the result values in all the WHEN clauses in the CASE expression should be of compatible data types. In the linearized use of the CASE expression, the value-expression that follows the CASE keyword should be compatible with the value-expressions that follow all the WHEN keywords in the CASE expression.

Reissue the query after modifying the CASE expression so that all related expressions are of compatible data types.

CASE 表达式中所有 WHERE 子句中的所有结果值都应该具有兼容的数据类型。在 CASE 表达式的线性化使用中,CASE 关键字后面的值表达式应该与 CASE 表达式中所有 WHEN 关键字后面的值表达式兼容。修改 CASE 表达式后重新发出查询,以便所有相关表达式都具有兼容的数据类型。

This error can also occur when the expressions for the DECODE function do not have compatible data types. The DECODE function has four possible expressions:expr, when_expr, then_expr, and else_expr. All instances of when_expr must have the same or a compatible data type as expr. All instances of then_expr must have the same or a compatible data type as else_expr. Reissue the query after modifying the DECODE function so that all related expressions are of same or compatible data types.

当解码函数的表达式没有兼容的数据类型时,也会发生此错误。 DECODE 函数有四个可能的表达式:expr、when_expr、then_expr 和 else_expr。when_expr 的所有实例都必须具有与 expr 相同或兼容的数据类型。修改DECODE 函数后重新发出查询,以便所有相关表达式都具有相同或兼容的数据类型。

This error can also occur when calling functions that use implicit casts and comparisons between data types, such as the NVL function. In this case,revise your program logic (for example, by adding an explicit cast). so that the expressions return the same or compatible data types.

在调用使用隐式转换和数据类型之间比较的函数(例如 NVL 函数)时,也可能发生此错误。在这种情况下,修改程序逻辑(例如,添加显式强制转换),以便表达式返回相同或兼容的数据类型。

-801 SQL Edit buffer is full.

The text editor cannot expand the buffer in which it stores your SQL statements because no more data space memory is available. If you have multiple statements in the buffer, execute them one at a time.

文本编辑器无法扩展存储 SQL 语句的缓冲区,因为没有更多的数据空间内存可用。如果缓冲区中有多个语句,则每次执行一个语句。

-802 Cannot open file for run.

The SQL command file that you specified cannot be opened for reading.

Review the filename that you specified. If it is spelled as you intended, check that it exists in the current directory or in a directory that is named in the DBPATH environment variable and that your account has read permission for it.

无法打开指定的 SQL 命令文件进行读取。检查指定的文件名。如果是按您的意愿拼写的,请检查它是否存在于当前目录或 DBPATH 环境变量中命名的目录中,并且您的账户对其具有读取权限。

-803 The file is too large for internal editing.

The SQL command file that you selected with the Choose option is too large for the edit buffer to hold. The size of the edit buffer is dynamic, and the program was unable to allocate enough memory to hold the contents of the command file. (In DOS, this error also appears if the command file exceeds 64 kilobytes.) Check that you specified the file you intended and that it is in fact an SQL command file. If it is the file that you intended, break it into smaller parts, and use them separately.

您使用 Choose 选项选择的 SQL 命令文件太大,无法容纳编辑缓冲区。编辑缓冲区的大小是动态的,程序无法分配足够的内存来保存命令文件的内容。(在 DOS 中,如果命令文件超过 64 KB,也会出现此错误。)检查您是否指定了您想要的文件,并且它实际上是一个 SQL 命令文件。如果是您想要的文件,请将其分解为较小的部分,并单独使用它们。

-804 Comment has no end.

This statement includes a comment that is enclosed in braces ({ }), but the closing brace is missing. Review the punctuation of the statement,and check that all braces appear in matching pairs.

此语句包括一个以大括号({})括起来的注释,但缺少结束大括号。检查语句的标点符号,并检查所有大括号是否以匹配的对出现。

-805 Cannot open file for load.

The input file that is specified in this LOAD statement could not be opened. Check the accompanying ISAM error code for more information.

Possibly a more complete pathname is needed, the file does not exist,or your account does not have read permission for the file or a directory in which it resides.

无法打开此 LOAD 语句中指定的输入文件。有关更多信息,请查看附带的 ISAM 错误代码。可能需要一个更完整的路径名,该文件不存在,或者您的账户没有该文件或其所在目录的读取权限。

-806 Cannot open file for unload.

The output file that is specified in this UNLOAD statement could not be opened. Check the accompanying ISAM error code for more information.

Possibly a more complete pathname is needed; the file exists, but your account does not have write permission for it; or the disk is full.

无法打开此 UNLOAD 语句中指定的输出文件。有关更多信息,请查看附带的 ISAM 错误代码。可能需要一个更完整的路径名;文件存在,但您的账户没有写权限;或者磁盘已满。

-807 Cannot open file for output.

The program cannot create the file that you specified with the Save option. The file should be saved in the current directory. Possibly your account does not have write permission in that directory. Possibly a read-only file of the same name exists (to eliminate this possibility, try to save the file under a different name). Possibly the disk is full. Look for operating-system error messages that might give more information.

程序无法创建使用 Save 选项指定的文件。该文件应保存在当前目录中。可能您的账户在该目录中没有写权限。可能存在同名的只读文件(为了消除这种可能性,请尝试将文件保存在不同的名称下)。可能磁盘已经满了。查找可能提供更多信息的操作系统错误消息。

-808 Cannot open file for choose.

The SQL command file that you specified for the Choose menu option cannot be opened for input. Check that the file is in the current directory and readable to your account.

您为“选择菜单”选项指定的 SQL 命令文件无法打开以供输入。检查该文件是否位于当前目录中并可读到您的账户。

-809 SQL Syntax error has occurred.

The INSERT statement in this LOAD/UNLOAD/INFO statement has invalid syntax.

Review it for punctuation and use of keywords.

此 LOAD/UNLOAD/INFO 语句中的 INSERT 语句语法无效。检查它的标点符号和关键字的使用。

-810 Cannot open file for save.

The SQL command file could not be saved. Check that your account has operating-system permission to write in the current directory and that the disk is not full.

无法保存 SQL 命令文件。检查您的账户是否具有在当前目录中写入的操作系统权限,以及磁盘是否已满。

-811 Cannot open printer for output.

The application is trying to open the device that is specified in the DBPRINT environment variable but is failing. Check the setting of that variable, and rerun the program.

应用程序试图打开 DBPRINT 环境变量中指定但失败的设备。检查该变量的设置,并重新运行程序。

-812 Cannot open pipe for output.

Under the Output option, you selected To-pipe and specified a program or command to receive the output. However, GBase 8s SQL was unable to open the pipe to that program or command. Review the program or command that you typed to ensure that it is a syntactically valid UNIX or DOS command and that it names only programs that are in your current execution path. Also look for operating-system error messages; you might have exceeded a system quota on memory or processes.

在 Output 选项下,选择 To-pipe 并指定一个程序或命令来接收输出。但是,GBase 8s SQL 无法打开到该程序或命令的管道。检查您输入的程序或命令,以确保它是语法上有效的 UNIX 或 DOS 命令,并且它只命名当前执行路径中的程序。还要查找操作系统错误消息;您可能已经超过了系统内存或进程的配额。

-813 Cannot write to pipe for output (no reading process).

Under the Output option, you sent output to a command or program through a pipe. Although the pipe was established (indicating that the command had correct syntax and named existing programs), it has since closed unexpectedly. This condition indicates that the (first) program in the pipe terminated before it had received all the output. Possibly it quit due to an error, or possibly you or another user terminated it with a kill command. Look for messages from the pipe program that might explain why it quit.

在 Output 选项下,通过管道将输出发送到命令或程序。尽管已经建立了管道(指示命令具有正确的语法并命名为现有程序),但它后来意外地关闭了。此条件表示管道中的(第一个)程序在接收到所有输出之前终止。可能由于错误退出,或者您或其他用户使用kill 命令终止它。查找管道程序中可能解释退出原因的消息。

-816 Cannot write file (check file permissions).

The file that is specified in the prior command cannot be written.

Probably your account does not have operating-system permission to write to the file. Check the permissions, and run the program again.

无法写入前面命令中指定的文件。可能您的账户没有写入文件的操作系统权限。检查权限,然后再次运行程序。

-817 Cannot read file (check file permissions).

The file that is specified in the prior command cannot be read.

Probably your account does not have operating-system permission to read the file. Check the permissions, and run the program again.

无法读取前面命令中指定的文件。可能您的账户没有读取文件的操作系统权限。检查权限,然后再次运行程序。

-818 Specified user menu not found.

The user menu that was requested cannot be found. Check the spelling of the menu name. If it is as you intended, check the contents of the sysmenus table in the current database; the menu might not be defined in this database.

无法找到所请求的用户菜单。检查菜单名称的拼写。如果是您想要的,请检查当前数据库中 sysmenus 表的内容;该数据库中可能没有定义菜单。

-819 There are no menu items in the menu.

The menu that you selected contains no items. You can choose a different menu or modify the current one. If you think that the menu should have items, check the contents of the sysmenuitems table in the current database.

您选择的菜单不包含任何项。您可以选择不同的菜单或修改当前的菜单。如果认为菜单应该有项,请检查当前数据库中 sysmenuems 表的内容。

-820 No more data to display.

The display of selected rows is finished. With no scrolling display,you cannot show the rows again. Restart the query from the beginning,or enter a new query.

选定行的显示已完成。如果没有滚动显示,则无法再次显示行。从一开始就重新启动查询,或者输入一个新的查询。

-821 Cannot open file for default report.

You requested creation of a default-report specification. This file is saved in the current directory, but some problem prevented it. Possibly the disk is full, or possibly your account does not have operating-system permission to write in that location.

您请求创建缺省报表规范。此文件保存在当前目录中,但有一些问题阻止了它。可能磁盘已满,或者您的账户没有在该位置写入的操作系统权限。

-822 Statements are already saved.

The current SQL statement has already been saved under the name that is shown at the top of the screen. (This message does not appear to occur any longer.)当前 SQL 语句已经以屏幕顶部显示的名称保存。(此消息似乎不再发生。)-823 There are no statements to run.

You selected the Run option, but no SQL statement has been entered.

Either enter a statement, or use Choose to load one.

您选择了 Run 选项,但没有输入 SQL 语句。输入语句,或使用 Choose 加载语句。

-824 Missing values clause on insert statement.

Probably no current GBase 8s product returns this message. If this message does appear, refer to the discussion of error -836. If the error recurs, note all circumstances and contact GBase Technical Support.

可能没有当前的 GBase 8s 产品返回此消息。如果出现此消息,请参阅对 Error-836的讨论。如果错误再次发生,请注意所有情况,并与 GBase 技术支持部门联系。

-825 Program not found.

No supporting executable file could be located. The file should have existed in the directory that the GBS_HOME environment variable names. Consult the person who installed the GBase 8s software.

无法找到支持的可执行文件。该文件应该存在于 GBS_HOME 环境变量名的目录中。

请咨询安装 GBase 8s 软件的人员。

-826 Fork system call failed.

This internal error indicates an inability to start a subordinate process. Possibly it stems from an attempt to enter vi from DB-Access when using the Use-editor option. Look for operating-system error messages that might give more information. Retry the operation. If the error recurs, contact your system administrator. In DOS systems, you probably are out of memory; exit to the operating-system command line,and resubmit your program.

此内部错误表示无法启动从属进程。可能是因为在使用 Use-Editor 选项时尝试从 DB-Access 输入 vi 。查找可能提供更多信息的操作系统错误消息。重试手术。如果出现错误,请与系统管理员联系。在 DOS 系统中,您可能内存不足;退出操作系统命令行,然后重新提交程序。

-827 Database not found.

See the discussion of error -329.

参见对错误 -329 的讨论。

-828 Command file not found.

The SQL command file that you specified is not found in the current directory or in the directory that is listed in the DBPATH environment variable. Check the spelling of the name and the setting of DBPATH.

在 DBPATH 环境变量中列出的当前目录或目录中找不到您指定的 SQL 命令文件。检查名称的拼写和 DBPATH 的设置。

-829 Form not found.

The compiled form specification that you specified is not found in the current directory or in the directory that is listed in the DBPATH environment variable. Check the spelling of the name and the setting of DBPATH.

您指定的已编译表单规范在当前目录或 DBPATH 环境变量中列出的目录中找不到。检查名称的拼写和 DBPATH 的设置。

-830 Report not found.

The compiled report specification that you specified is not found in the current directory or in the directory that is listed in the DBPATH environment variable. Check the spelling of the name and the setting of DBPATH.

在 DBPATH 环境变量中列出的当前目录或目录中找不到您指定的已编译报表规范。检查名称的拼写和 DBPATH 的设置。

-831 Error found in Report specifications.

One or more errors was found during compilation of the report specification. Edit the report-specification file, and compile it again. Follow the prompts to see the error messages. To look them up,use the finderr utility.

在编译报表规范期间发现了一个或多个错误。编辑报表规范文件,并再次编译。按照提示查看错误消息。要查找它们,请使用 finderr 实用程序。

-832 Error found in Form specifications.

One or more errors was found during compilation of the report specification. Edit the report specification file, and compile it again. Follow the prompts to see the error messages. To look them up,use the finderr utility.

在编译报表规范期间发现了一个或多个错误。编辑报表规范文件,并再次编译它。按照提示查看错误消息。要查找它们,请使用 finderr 实用程序。

-833 Saceprep could not compile Report.

The report compiler, saceprep, encountered an error while it was compiling a report specification. Look for other error messages, from saceprep and the operating system, that might give more information.

报表编译器 saceprep 在编译报表规范时遇到错误。从 saceprep 和操作系统中查找其他可能提供更多信息的错误消息。

-834 Sformbld could not compile Form.

The report compiler, sformbld, encountered an error while it was compiling a report specification. Look for other error messages, from sformbld and the operating system, that might give more information.

报表编译器 sformbld 在编译报告规范时遇到错误。从 sformbld 和操作系统查找其他错误消息,可能会提供更多信息。

-835 Current clause is invalid in interactive mode.

The WHERE CURRENT OF clause is meaningful only in a program that uses a cursor to read rows. In this interactive context, you must specify a condition other than CURRENT in your WHERE clause.

WHERE CURRENT OF子句仅在使用游标读取行的程序中才有意义。在此交互式上下文中,您必须在 WHERE 子句中指定 CURRENT 以外的条件。

-836 Insert statement has no values clause.

The INSERT statement that was entered as part of this LOAD statement requires a VALUES clause. Revise the statement to include one.

作为此 LOAD 语句的一部分输入的 INSERT 语句需要 VALUES 子句。修改语句使其包含VALUES 子句。

-837 There is not enough memory available.

GBase 8s SQL needed to allocate memory for one of a number of small work areas but was not able to do so. Stop the program, and restart it.

If this action does not eliminate the problem, see your system administrator about getting more memory. On DOS systems, you need to free some disk space.

GBase 8s SQL 需要为多个小工作区域中的一个分配内存,但无法这样做。停止程序,然后重新启动它。如果此操作不能消除问题,请联系您的系统管理员获取更多内存。在 DOS 系统上,您需要释放一些磁盘空间。

-838 A line in the load file is too long.

Each line of the input file to LOAD must be read into storage in full to be processed. GBase 8s SQL resizes its memory buffer as required to hold the current line. But in this case, it was not able to allocate a large enough buffer. This error is most likely when the load file contains TEXT or BYTE data values or very large CHAR values. All of the values for one row must be contained in one line of the file. If you cannot rerun the program with more memory available, modify the input file to have fewer or shorter values in each row. Or use the dbload utility to try to load the file.

LOAD 输入文件的每一行必须全部读入存储器才能被处理。 GBase 8s SQL 根据需要调整内存缓冲区以保存当前行。但在这种情况下,它无法分配足够大的缓冲区。当加载文件包含TEXT 或 BYTE 数据值或非常大的 CHAR 值时,该错误很可能发生。一行的所有值必须包含在文件的一行中。如果无法使用更多可用内存重新运行程序,请修改输入文件使每行具有更少或更短的值。或者使用 dbload 实用程序尝试加载文件-839 Table not found.

You specified the name of a table that does not exist in the current database. Review the spelling of the table name, and check that you are using the correct database. Refer to the discussion of error -310 for a way to display all table names.

您指定了当前数据库中不存在的表的名称。请检查表名的拼写,并检查您是否使用了正确的数据库。有关显示所有表名的方法,请参阅关于错误 -310 的讨论。

-840 Name is too long.

Names of databases, reports, forms, and other files must be 10 characters or shorter. Select a new, shorter name, and repeat this operation. In DOS systems, filenames can be a maximum of 8 characters plus a 3-character extension.

数据库,报告,表单和其他文件的名称不得超过 10 个字符。请选择一个新的,较短的名称,然后重复此操作。在 DOS 系统中,文件名最多可以有 8 个字符加一个 3 个字符的扩展名。

-841 Name must start with a letter or "_" and contain letters, digits,or "_".

Names of databases, reports, forms, and other files must conform to this rule. Repeat this operation with a name that conforms to the rule.

数据库,报告,表格和其他文件的名称必须符合此规则。用符合规则的名称重复此操作。

-842 Cannot read temp file.

GBase 8s SQL created a temporary file; now it is trying to read back the temporary file. However, it received an unexpected operating-system return code. Possibly you or another user removed the file, or possibly a hardware error occurred.

GBase 8s SQL 创建了一个临时文件;现在它正试图读回临时文件。但是,它收到了意外的操作系统返回码。可能是您或其他用户删除了该文件,或者可能发生了硬件错误。

-843 Cannot write temp file.

GBase 8s SQL is trying to write the current SQL source file into a temporary file for editing but received an unexpected operating-system return code. Look for operating-system error messages that might give more information. On UNIX systems, possibly your account does not have write access to /tmp or the directory that is named in the DBTEMP environment variable, or the disk might be full.

GBase 8s SQL 试图将当前 SQL 源文件写入临时文件进行编辑,但收到了意外的操作系统返回码。查找可能提供更多信息的操作系统错误消息。在 UNIX 系统上,可能是因为您的账户不具有对 /tmp 的目录的写入权限或不具有 DBTEMP 环境变量中命名的目录的写入权限,或者磁盘可能已满。

-844 Statement is too long -- out of memory.

GBase 8s SQL was unable to allocate a memory buffer large enough to hold this statement. Find a way to shorten the statement, or run it in two or more parts.

GBase 8s SQL 无法为持有的语句分配足够大的内存缓冲区。请尝试缩短该语句,或者将它分成两个或多个部分来运行。

-845 There are no user-menus in the database.

This database does not contain the sysmenus table, it is empty, or possibly the top-level menu is not named main. Check that you are using the database you intended. Consult with the person who defined the user menus for this database.

本数据库不包含 sysmenus 表,它是空表,或者可能顶层菜单没有被命名为 main。检查使用的数据库是否是您想要使用的数据库。请咨询为此数据库定义用户菜单的人员。

-846 Number of values in load file is not equal to number of columns.

The LOAD processor counts the delimiters in the first line of the file to determine the number of values in the load file. One delimiter must exist for each column in the table or for each column in the list of columns if one is specified. Check that you specified the file that you intended and that it uses the correct delimiter character. An empty line in the text can also cause this error.

LOAD 处理器对文件第一行中的分隔符进行计数,以确定加载文件中的值的数量。如果指定了列,则表中的每列或列列表中的每列都必须存在一个分隔符。检查您是否指定了您想要的文件,并且验证它是否使用了正确的分隔符。文本中的空行也会导致此错误。

If the LOAD statement does not specify a delimiter, verify that the default delimiter matches the delimiter that is used in the file. If you are in doubt about the default delimiter, specify the delimiter in the LOAD statement.

如果 LOAD 语句未指定分隔符,请验证缺省的分隔符是否与文件中使用的分隔符相匹配。

如果您对缺省分隔符有疑问,请在 LOAD 语句中指定分隔符。

-847 Error in load file row number.

A problem exists with the data on the indicated row of the load data file. The operation stopped after it inserted rows up to but not including the row that is noted (number-1 rows have been inserted). If this operation is inside a transaction, roll back the transaction. If not, either delete the inserted rows from the table or remove the used rows from the file before you repeat the operation. To correct the file, look for additional error messages that might help isolate the problem. Possibly not enough, or too many, fields (delimiters) exist on the indicated row. Possibly a data conversion problem exists, (for example, nonnumeric characters in a numeric field, an improperly formatted DATETIME value, or a character string that is too long).

Possibly a null (zero-length) field exists in a column where nulls are not allowed. Edit the load file to correct the problem. Look for similar problems in following lines, and then repeat the operation.

The row number and line number might not be the same because some rows might be split into several lines. To identify split rows and their corresponding line numbers, run the following command:egrep -n"\\$"To calculate a line number of an incorrect row, add the number of split rows that occur prior to the row to the row number.

加载数据文件的指定行上的数据存在问题。该操作会一直插入行,但不包括标记的行(已插入第1行)后停止。如果此操作位于事务中,请回滚该事务。如果不是,请在重复该操作之前从表中删除插入的行或从文件中删除使用的行。要更正该文件,请查找可能有助于排除问题的其他错误消息。可能是因为在指定的行上没有足够的或者太多的字段(分隔符)。也可能是因为数据转换问题(例如,数字字段中的非数字字符,格式不正确的 DATETIME 值或字符串太长)。或者可能是因为在不允许空值的列中存在空(零长度)字段。请编辑加载文件以纠正问题。在下面的行中查找类似的问题,然后重复该操作。行号和行号可能不相同,因为某些行可能会分成几行。要识别拆分行及其相应的行号,请运行以下命令:egrep -n"\\$"要计算错误行的行号,请将该行之前出现的拆分行数添加到行号。

-848 Form4gl could not compile Form.

You asked for a form specification to be compiled, but the form compiler reported one or more errors. Correct the errors in the form specification, and repeat the operation. The error messages are in the formname.err file.

您要求编译表单规范,但表单编译器报告了一个或多个错误。纠正格式规范中的错误,然后重复该操作。此错误消息位于 formname.err 文件中。

-849 Warning found in Form specifications.

You asked for a form specification to be compiled, and it was done, but the form compiler reported one or more warnings. You are not required to correct a warning before you try the form, but it is recommended it. The error messages are in the formname.err file.

编译并完成表单规范后表单编译器报告了一个或多个警告。在尝试表单之前,无需更正警告,但建议处理警告。错误消息位于 formname.err 文件中。

-850 User does not have permission to modify this menu.

Only the user who created the sysmenus table in this database can modify the menu structure. That user first selected the Modify option of the User-Menu display while this database was current. To determine who that user is, query systables as follows:只有在该数据库中创建 sysmenus 表的用户才能修改菜单结构。当数据库处于最新刷新状态时,该用户首先选择用户菜单显示的修改选项。要确定用户是谁,请按以下方式查询 systables:SELECT owner FROM systables WHERE tabname LIKE 'sysmenu*'If this action is not appropriate, ask that person to drop the sysmenus and sysmenuitems tables, and then have the person who should maintain the menus re-create them.

如果该操作不合适,请求该人员删除 sysmenus 和 sysmenuitems 表,然后让应该维护菜单的人员重新创建它们。

-851 Cannot drop file (check file permissions).

You requested that a file be dropped, but it could not be dropped,probably because your account does not have write permissions on it or on the directory in which it is stored. Use operating-system commands to check the file permissions.

要删除某个文件,但该文件无法删除,可能是因为您的账户没有对它的写权限或没有存储该文件的目录的写权限。使用操作系统命令检查文件权限。

-852 Write failed. count rows unloaded (check ulimit or disk space).

After writing count lines of output to the unload file, an error occurred trying to write the next line. Look for operating-system messages that might give more information. Possible causes include a full disk or a disk quota limit.

将输出的计数行写入卸载文件后,尝试写入下一行时发生错误。查找可能提供更多信息的操作系统消息。可能的原因包括磁盘太慢满或磁盘配额限制。

-853 Current transaction has been rolled back due to error or missing COMMIT WORK.

While GBase 8s SQL was executing SQL statements from a command file, it received an error return code or reached the end of the file but found no COMMIT WORK statement. Since a transaction was in progress (either the file contained BEGIN WORK, or the database is ANSI compliant),GBase 8s SQL rolled the transaction back. (It cannot leave the transaction open, and it cannot assume success even when no error was returned.)当 GBase 8s SQL 从命令文件执行 SQL 语句时,它接收到错误返回码或者到达文件末尾但未找到 COMMIT WORK 语句。由于事务正在进行(文件包含 BEGIN WORK,或者数据库符合ANSI),GBase 8s SQL 将事务处理回退。(它不能让事务处于打开状态,即使没有错误返回也不能视为成功。)-854 Back end not found. Or back end is busy.

In DOS, the application cannot establish a connection to the local GBase 8s SE engine or to the GBase 8s NET PC communications module.

在 DOS 中,应用程序无法建立与本地 GBase SE 引擎或 GBase NET PC 通信模块的连接。

The SE engine (for accessing a local database) or the GBase 8s NET PC communications module (for accessing a remote database) must be loaded before trying to connect to it by means of, for example, a DATABASE statement. To load the SE engine, run PSTARTSQ. To load the GBase 8s NET PC communications module, run REMSQL.

必须先加载 SE 引擎(用于访问本地数据库)或 GBase NET PCcommunications 模块(用于访问远程数据库),然后才能尝试通过例如 DATABASE 语句连接到它。要加载SE 引擎,请运行 PSTARTSQ。要加载 GBase NET PC 通信模块,请运行 REMSQL。

If the SE engine or the GBase 8s NET PC communications module has previously been loaded, and you get this error message, either another application currently has a connection to the SE engine, or the GBase 8s NET PC communications module (they can have only one connection at a time), or the current application encountered an internal error and lost the connection.

如如果之前已经加载了 SE 引擎或 GBase NET PC 通信模块,但是仍收到此错误消息,则表明当前有其他应用程序与 SE 引擎或 GBase NET PC通信模块连接(它们一次只能有一个连接),或当前应用程序遇到内部错误并丢失连接。

If another application has a connection to the SE engine or to the GBase 8s NET PC communications module, you must first release that connection before you can connect the current application. If the other application is a 4GL or an ESQL/C program, that application releases its connection by executing a CLOSE DATABASE statement, calling the SQLEXIT( ) function, or exiting.

如果有其他应用程序连接到 SE 引擎或 GBase NET PC 通信模块,则必须首先释放连接,然后才能连接当前应用程序。如果其他应用程序是 4GL 或 ESQL / C程序,则该应用程序通过执行 CLOSE DATABASE 语句,调用 SQLEXIT()函数或退出来释放连接。

In extreme situations where an internal error has occurred, you must exit the application and stop the SE engine or the GBase 8s NET PC communications module from the DOS command line. To stop the SE engine,run PSTARTSQ with the -T option. After you stop the SE engine, run PSTARTSQ with no options to reload it. To stop the GBase 8s NET PC communications module, run SETNET with the -T option. After you stop the GBase 8s NET PC communications module, run REMSQL to reload it.

在出现内部错误的极端情况下,您必须退出应用程序并从 DOS 命令行停止 SE 引擎或GBase NET PC 通信模块。要停止 SE 引擎,请使用 -T 选项运行 PSTARTSQ。停止 SE引擎后,运行 PSTARTSQ,而无需重新加载它。要终止 GBase NET PC 通信模块,请使用-T 选项运行 SETNET。停止 GBase NET PC通信模块后,运行 REMSQL 来重新加载。

This error message also might appear when a client Windows application uses the wrong .DLL file to connect to a database server across a network.

当客户端 Windows 应用程序使用错误的 .DLL 文件通过网络连接到数据库服务器时,也可能会出现此错误消息。

-855 Cannot drop rowids on a non-fragmented table.

You tried to use the ALTER TABLE...DROP syntax to drop the rowid column on a table that is not fragmented. A non-fragmented table has a rowid column, but you cannot drop it.

您试图使用 ALTER TABLE ... DROP 语法删除非分片表上的 rowid 列。非分片表有一个rowid 列,但是不能删除它。

-856 Rowids already exist on table.

A rowid column already exists for the specified table. You cannot create a rowid for a table more than once. Change your SQL statement.

指定表的 rowid 列已经存在。您不能多次为表创建 rowid。请修改 SQL语句。

-857 Rowids do not exist on table.

You cannot drop a nonexistent rowid. You specified a rowid that does not exist in the specified table. Avoid using rowids in your SQL statement. Instead, use a primary key to delete data.

无法删除一个不存在的 rowid。您指定了指定表中不存在的 rowid。避免在 SQL 语句中使用 rowid。而是使用主键来删除数据。

-858 Cannot specify the same partition/space name twice in a fragmentation specification.

You specified the same dbspace or same partition name more than once in a fragmentation specification. Change the fragmentation specification to use different dbspaces/partition for each fragment.

您在分片规范中多次指定同一 dbspace 或 同一分区名。将分片规范更改为对每个分片使用不同的 dbspace 或分区。

-859 "Distributions Only" is not meaningful in an update statistics LOW request.

You cannot specify the DISTRIBUTIONS ONLY option in the LOW mode of the UPDATE STATISTICS statement.

无法在 UPDATE STATISTICS 语句的 LOW 模式中指定 DISTRIBUTIONS ONLY 选项。

-860 A fragmented object must have at least than one fragment.

The Round Robin, Exprespression based fragmeneted object must have at least two fragments. All other fragmented objects needs to have at least one fragment.

基于表达式的循环分片对象必须至少具有两个分片。所有其他分片对象都需要至少具有一个分片。

-861 Cannot create new PDQ thread.

See the accompanying ISAM error for more information.

有关更多信息,请参阅随附的 ISAM 错误。

-862 Alter fragment attach must have at least one consumed table specified.

You have not specified a table to be consumed. See the syntax and usage for ALTER FRAGMENT... ATTACH in the GBase 8s Guide to SQL: Syntax.

没有指定要使用的表。请参阅“GBase 8s SQL指南:语法”中 ALTER FRAGMENT ... ATTACH的语法和用法。

-863 Cannot detach a table with rowids.

You must first drop rowids before you use ALTER FRAGMENT... DETACH. See the syntax and usage in the GBase 8s Guide to SQL: Syntax.

在使用 ALTER FRAGMENT ... DETACH 之前,必须先删除 rowid。请参阅“GBase 8s SQL 指南:语法”中的语法和用法。

-864 Cannot attach a table with rowids.

You must first drop the rowids on the surviving table before you attach the table.

在附加表之前,必须先删除表上的 rowid。

-865 Cannot add or drop the rowid column or the cdrserver and cdrtime columns in combination with other alter table options.

The ADD ROWIDS, DROP ROWIDS, ADD CRCOLS, or DROP CRCOLS keywords cannot be combined with any other ALTER TABLE options.

ADD ROWIDS、DROP ROWIDS、ADD CRCOLS 或 DROP CRCOLS 关键字不能与任何其他ALTER TABLE 选项结合使用。

-866 Cannot attach tables that contain serial fields.

Before you use an ALTER FRAGMENT... ATTACH statement, you must drop any serial fields or modify the column type.

在使用 ALTER FRAGMENT ... ATTACH 语句之前,必须删除任何序列字段或修改列类型。

-867 Cannot generate new rowid.

See the accompanying ISAM error for more information. A table cannot hold more than 2 gigabytes of records if it has serial or rowid columns.

有关更多信息,请参阅随附的 ISAM 错误。如果一个表具有 serial 或 rowid 列,则不能保存超过 2 GB 的记录。

-868 Cannot check constraints on the attaching table.

You cannot attach a table if a check, referential, primary-key, or not null constraint exists on the surviving table.

如果现有表上存在检查、参照、主键或非空约束,则不能附加表。

Drop any check, referential, primary-key, or not null constraint. Then attach the table and if you still want to use the constraint, re-create it.

删除任何检查、参考、主键或非空约束。然后附加表,如果您仍想使用约束,请重新创建它。

-869 Subqueries and procedures are not allowed in fragmentation expressions.

A fragmentation expression can reference only columns from the current table and data values from a single row. The restrictions disallow subqueries.

分片表达式只能引用当前表中的列和单个行中的数据值。该限制不允许子查询。

-870 Cannot specify duplicate remainder fragments.

You specified duplicate remainder fragments. Remove one of the remainder fragments from your SQL statement.

您指定了重复的剩余分片。请从 SQL 语句中删除其中一个剩余分片。

-871 Remainder fragment must be specified last.

If you specify a REMAINDER, it must be the last fragment expression.

Rewrite your syntax so that you specify the remainder fragment last.

如果指定了 REMAINDER,则它必须是最后一个分片表达式。重写语法以便指定最后的剩余分片。

-872 Invalid fragment strategy or expression for the unique index.

The round-robin method cannot fragment unique indexes. If the expression method fragments the indexes, all the columns that are used in the fragmentation expressions must also be part of the index key.

循环法不能分割唯一索引。如果表达式方法将索引分段,则分片表达式中使用的所有列也必须是索引键的一部分。

-873 Invalid fragment expression column.

You cannot use columns from different tables in a fragment expression.

无法在分段表达式中使用来自不同表的列。

-874 General exception error has occurred in the optimizer.

If this internal error occurs, note all circumstances and contact GBase Support.

如果发生此内部错误,则请注意所有场景并联系 GBase Support。

-875 Incompatible Access Mode and Isolation Level.

If you set the access mode to READ-WRITE, you cannot set the isolation level to READ-UNCOMMITTED.

如果将访问模式设置为 READ-WRITE,则无法将隔离级别设置为 READ-UNCOMMITTED。

-876 Cannot issue SET TRANSACTION once a transaction has started.

When a transaction is active, do not issue a SET TRANSACTION statement.

A transaction becomes active when a DDL or a DML statement is issued.

The only statements that you can place between the BEGIN WORK and the SET TRANSACTION statements are SET statements such as SET EXPLAIN, SET CONSTRAINT, SET DATASKIP, and so on.

当事务处于活动状态时,不要发出 SET TRANSACTION 语句。当发布 DDL 或 DML 语句时,事务变为活动状态。能在 BEGIN WORK和SET TRANSACTION 语句之间放置的唯一语句是 SET语句,例如 SET EXPLAIN、SET CONSTRAINT、SET DATASKIP 等。

-877 Isolation Level previously set by "Set Transaction".

Your program attempted to reset the isolation level that a preceding SET TRANSACTION statement established. Do not use a SET ISOLATION statement after a SET TRANSACTION statement.

您的程序试图重置之前 SET TRANSACTION 语句建立的隔离级别。在 SET TRANSACTION语句后不要使用 SET ISOLATION 语句。

-878 Invalid operation for a READ-ONLY transaction.

You specified a READ-ONLY transaction in a SET TRANSACTION statement and then attempted to alter the database. In other words, READ-ONLY ensures that you can read data, but you cannot alter data. If you want to alter the data, specify READ WRITE in the SET TRANSACTION statement.

If you only want to read the data, correct your program so that it does not attempt to alter the data.

您在 SET TRANSACTION 语句中指定了 READ-ONLY 事务,然后尝试更改数据库。换句话说,READ-ONLY 只确保您可以读取数据,但不能更改数据。如果要更改数据,请在 SET TRANSACTION语句中指定 READ WRITE。如果只想读取数据,请更正程序,使其不会尝试更改数据。

-879 Trim character must be null or have a length of 1.

The TRIM function evaluated to NULL. However, the TRIM character value expression must be null or contain a single character. Your program is incorrectly written. Every time the TRIM function evaluates to NULL,the value your program inserts into the TRIM character value expression is not null or contains more than one character. Correct, recompile,and rerun your program.

TRIM 函数评估为 NULL。但是,TRIM 字符值表达式必须为空或包含单个字符。您的程序写入不正确。每当 TRIM 函数计算结果为 NULL 时,程序插入的 TRIM 字符值表达式的值不为空或包含多个字符。请更正、重新编译并重新运行程序。

-880 Trim character and trim source must be of string data type.

You used a TRIM function where the TRIM character value expression and the source character value expression were conflicting data types. The character and source value expressions must be the string data type.

Check the syntax of the TRIM function, and check that the character and source values contain string data type values.

您使用了 TRIM 函数,其中 TRIM 字符值表达式和源字符值表达式是冲突的数据类型。字符和源值表达式必须是字符串数据类型。请检查 TRIM 函数的语法,并检查字符和源值是否包含字符串数据类型值。

-881 The resulting string length from CONCAT, LPAD, REPLACE or RPAD is longer than the maximum.

The LPAD, RPAD, REPLACE or CONCAT function returned a string whose length is outside the range from 1 to 255 bytes for NVARCHAR or VARCHAR, or from 1 to 32739 bytes for CHAR, NCHAR, or LVARCHAR. These functions return a string whose data type depends on the data type of the input string that the function is formatting. Make sure that the function returns a string whose length is within the size range for the returned data type.

LPAD、RPAD、REPLACE 或 CONCAT 函数返回一个长度在 1 到 255 个字节之间的 NVARCHAR或 VARCHAR 字符串或返回一个长度为 1 到 32739 个字节的 CHAR、NCHAR或 LVARCHAR。

这些函数返回字符串的数据类型取决于函数格式化的输入字符串的数据类型。确保该函数返回一个长度在返回数据类型的大小范围内字符串。

-882 Cannot create rowids on a non-fragmented table.

You tried to use the ALTER TABLE... ADD syntax to add a rowid column to a table that is not fragmented. This usage is not valid. If a rowid column already exists, rowids already exist on non-fragmented tables.

您试图使用 ALTER TABLE ... ADD 语法将 rowid 列添加到未分片表中。此用法无效。

如果 rowid 列已经存在,则 rowids 已经存在于非分片表中。

-883 Cannot evaluate the fragmentation expression.

A fragmentation expression in your program is invalid. Check the expression, and correct it. Check the logic of that expression. Also,some components of that expression might be NULL or might not represent existing or defined elements such as columns, hash values, ranges, index key values, and so on.

程序中的分片表达式无效。请检查表达式,并纠正它。检查该表达式的逻辑。此外,该表达式的某些元素可能为 NULL,或者可能表示为不是现有的或已定义的元素,例如列、散列值、范围、索引键值等。

-884 Cannot alter an index on a temporary table.

Your program attempted to alter an index on a temporary table. Correct your program to avoid altering indexes on temporary tables.

您的程序试图改变临时表上的索引。请更正您的程序以避免它更改临时表上的索引。

-885 Invalid or NULL utc time given to dbinfo(utc_to_datetime).

You attempted to pass an invalid or NULL value to the dbinfo()function. Make sure you pass a valid or non-null value to the dbinfo()function.

您试图将无效或 NULL 值传递给 dbinfo()函数。请确保将有效或非空值传递给 dbinfo()函数。

-886 Cannot drop table or view because of existing dependencies.

When you issue a DROP TABLE or DROP VIEW statement, you cannot drop the table or view if you specify the RESTRICT option and a view or foreign-key constraint exists that depends on that table or view.

当发出 DROP TABLE 或 DROP VIEW 语句时,如果指定了 RESTRICT 选项并且存在依赖于该表或视图的视图或外键约束,则不能删除此表或视图。

You also cannot drop a table if you specify the RESTRICT option and a violations and diagnostics table exists for that table.

如果指定了 RESTRICT 选项并且该表存在违规和诊断表,则也不能删除此表。

-887 Cannot revoke because of dependent privileges, views, or constraints.

You cannot use the RESTRICT option to REVOKE a privilege if that action will cause abandoned privileges, abandoned views, or abandoned table constraints. Refer to the GBase 8s Guide to SQL: Tutorial for more information.

如果该操作将导致撤销权限、删除视图或删除表约束,则不能使用 RESTRICT 选项来撤销权限。有关更多信息,请参阅“GBase 8s SQL指南:教程”。

-888 Cannot attach a table with primary-key constraints.

You cannot attach a table if a primary-key or unique constraint exists onthe surviving table or consumed table.

如果 surviving 表或 consumed 表中存在主键或唯一约束,则无法附加表。

Drop the primary-key constraint and then attach the table. If you still want to use the primary-key constraint, re-create it.

删除主键约束,然后附加表。如果您仍想使用主键约束,请重新创建它。

-889 Internal dataskip condition, should reposition to next row and continue.

If this internal error recurs, note all circumstance, and contact GBase Technical Support.

如果此内部错误再次出现,请注意所有情况,并联系 GBase 技术支持。

-891 Temporary table objects can only be enabled.

You cannot change the object mode of a temporary table object to the disabled or filtering object mode.

您不能将临时表对象的对象模式更改为禁用或过滤对象模式。

-892 Cannot disable object object-name due to other active objects using it.

Other objects are using this object. If the object being disabled is an index, then a unique constraint, primary constraint, or referential constraint might be using that object. If the object is a unique or a primary-key constraint, then a referential constraint might be using that object. If an index of a referential constraint is being disabled, then a unique constraint, primary constraint, or some other referential constraint might be using this object.

其它对象正在使用此对象。如果被禁用的对象是索引,则唯一约束、主约束或参照约束可能正在使用该对象。如果对象是唯一或主键约束,则参照约束可能使用该对象。如果禁用了参照约束的索引,则唯一约束、主约束或其他参照约束可能正在使用此对象。

The following example illustrates one of these scenarios:以下示例说明了以上任一场景:CREATE TABLE parent(c1 int, c2 int, c3 int);ALTER TABLE parent ADD CONSTRAINT PRIMARY KEY(c1) CONSTRAINT cons_parent_c1;CREATE TABLE child(x1 int, x2 int, x3 varchar(32));ALTER TABLE child ADD CONSTRAINT PRIMARY KEY(x1) CONSTRAINT cons_child_x1;The following ALTER statement is trying to disable the foreign key index that is being shared by the primary key, hence this error 892 is returned:以下 ALTER 语句试图禁用主键共享的外键索引,因此返回此错误 892:ALTER TABLE CHILD ADD CONSTRAINT(FOREIGN KEY(x1) REFERENCES PARENT(c1) CONSTRAINT cons_child_x2 INDEX DISABLED);-893 Cannot activate/create object object-name because of its dependencies.

The user has issued a SET statement to set a database object to the enabled or filtering object mode, or the user has issued a CREATE INDEX, CREATE TRIGGER, or CREATE TABLE statement to create a database object in the enabled or filtering object mode. However, this object needs other disabled objects. For example, before enabling a referential constraint on a table, the user must first enable the indexes that the constraint needs.

用户已发出 SET 语句以将数据库对象设置为启用或过滤对象模式,或者用户已发出 CREATE INDEX、CREATE TRIGGER 或 CREATE TABLE 语句以在启用或过滤对象模式中创建数据库对象。但是,该对象需要其他禁用的对象。例如,在对表启用引用约束之前,用户必须首先启用约束所需的索引。

-894 Cannot find object object-name.

The object name that the user specified explicitly in the SET statement is not found in the database.

数据库中找不到用户在 SE T语句中显式指定的对象名称。

-895 Cannot create violations/diagnostics table.

The user has issued a START VIOLATIONS TABLE statement for a target table. The database server is not able to create the violations and diagnostics tables for this target table. Any one of the following situations might be the reason for the failure:用户已经对目标表发出了 START VIOLATIONS TABLE 语句。但是数据库服务器无法为此目标表创建违规和诊断表。以下任何一种情况都可能是失败的原因:* The target table already has a violations and diagnostics table.

目标表已经有一个违规和诊断表。

* The names that are specified for the violations and diagnostics table in the START VIOLATIONS TABLE statement are not valid.

For example, if you omitted the USING clause from the statement and the number of characters in the target table name plus four characters is longer than the maximum identifier length, the generated names of the violations and diagnostics tables would be longer than the maximum identifier length. If the names of the violations and diagnostics tables are invalid for this reason, the user can give explicit names to the violations and diagnostics tables in the USING clause of the START VIOLATIONS TABLE statement to rectify the problem.

在 START VIOLATIONS TABLE 语句中为违规和诊断表指定的名称无效。例如,如果在语句中省略了 USING 子句,并且目标表名称中的字符数加上四个字符长于最大标识符长度,则生成的违规和诊断表名称将长于最大标识符长度。如果由于这个原因,违规和诊断表的名称无效,则用户可以在 START VIOLATIONS TABLE 语句的 USING 子句中为违规和诊断表提供显式名称,以纠正问题。

* The names that were specified for the violations and diagnostics tables in the START VIOLATIONS TABLE statement match the names of existing tables in the database.

START VIOLATIONS TABLE 语句中的违规和诊断表指定的名称与数据库中现有表的名称一致。

* The target table contains columns with the names GBase 8s_tupleid or GBase 8s_optype. Because these two column names would duplicate the GBase 8s_tupleid or GBase 8s_optype columns in the violations table, the database server cannot create the violations table.

目标表包含名称为 GBase 8s_tupleid 或 GBase 8s_optype 列。由于这两个列名将与违例表中的 GBase 8s_tupleid 或 GBase 8s_optype 列重复,因此数据库服务器无法创建违例表。

* The target table is a temporary table.

目标表是临时表。

* The target table is serving as a violations or diagnostics table for some other table.

目标表用作某个其他表的违例或诊断表。

* The target table is a system catalog table.

目标表是系统目录表。

-896 Violations table is not started for the target table.

This error occurs in either of the following cases:在以下任何一种情况下都会发生此错误:1. A STOP VIOLATIONS TABLE was executed before the START VIOLATIONS TABLE statement or after the START VIOLATIONS TABLE statement was rolled back.

有一个 STOP VIOLATIONS TABLE 在 START VIOLATIONS TABLE 语句之前或START VOLATIONS TABLE 语句回滚后执行。

  1. A violations table has not been started for the target table and an INSERT, DELETE, or UPDATE statement fails to satisfy any filtering-mode object on the target table.

目标表尚未启动违例表,并且 INSERT、DELETE 或 UPDATE 语句无法满足目标表上的任何筛选模式对象。

A violations table must exist before execution of the STOP VIOLATIONS statement.

在执行 STOP VIOLATIONS 语句之前违例表必须存在。

To prevent this error, you can start a violations table for the target table.

为防止出现此错误,您可以为目标表启动违例表。

-897 Cannot modify/drop a violations/diagnostics table.

The user has tried to alter or drop a table that is serving as a violations table or a diagnostics table for another table.

用户试图更改或删除用作另一个表的违例表或诊断表的表。

-898 Cannot alter a table which has associated violations/diagnostics tables.

The user has tried to add, drop, or modify a column in a table that has a violations and diagnostics table associated with it.

用户尝试添加、删除或修改具有与违例和诊断表关联的表中的列。

-899 Too many violations.

The number of records in the diagnostics table either exceeds or will exceed the limit that is specified. Limits are specified in the MAX VIOLATIONS clause of the START VIOLATIONS TABLE statement for Extended Parallel Server or the MAX ROWS clause for other GBase 8s database servers.

诊断表中的记录数超出或将超过指定的限制。限制在扩展并行服务器的 START VIOLATIONS TABLE 语句的 MAX VIOLATIONS 子句或其他 GBase 8s 数据库服务器的MAX ROWS 子句中指定。

When a single statement on the target table (such as an INSERT or SET statement) causes more records to be inserted into the diagnostics table than the limit that is specified by the MAX ROWS clause, this error is returned to the user who issued the statement on the target table.

当目标表上的单个语句(例如 INSERT 或 SET 语句)导致更多记录插入到诊断表中时,将超出 MAX ROWS 子句所指定的限制,此错误将返回给在目标表发出语句的用户。