返回首页

gbase数据、南大通用产品文档:GBase8sonmode O: 重设 ONDBSPACEDOWN WAIT 方式

更新日期:2024年09月11日

语法:

元素
用途
关键注意事项
-O
重设 ONDBSPACEDOWN 配置参数的 WAIT 方式 无

只能在以下情况中使用 onmode -O 选项:
l ONDBSPACEDOWN 设置为 WAIT。
l 发生禁用 I/O 错误,导致数据库服务器阻塞所有正在更新的线程。
l 您无法或不想更正导致禁用 I/O 错误的问题。
l 您想要使数据库服务器将已禁用 dbspace 标记为关闭并继续进程。
当您执行此选项时,数据库服务器会将导致禁用 I/O 错误的 dbspace 标记为关闭,完成检
查点,并释放已阻塞的线程。然后,onmode 提示您一下消息:
This will render any dbspaces which have incurred disabling I/O errors unusable
and require them to be restored from an archive.
Do you wish to continue?(y/n)
当您运行 -O 选项时,如果 onmode 在非临界 dbspace 上未找到任何禁用 I/O 错误,它
将通知您以下消息:
There have been no disabling I/O errors on any noncritical dbspaces.
该命令有等同的 SQL 管理 API 函数。

chkenv 实用程序检查共享或专用环境配置文件的有效性。它验证该文件中各个环境
变量的名称,但不验证它们的值。当您在环境配置文件中定义 GBase 8s 产品使用的所有
环境变量时,使用 chkenv 来提供调试信息。

filename
是要调试的环境配置文件的名称。
pathname
是环境变量文件所在的完整目录路径。

关联数组:不能做任何比较操作
内嵌表和可变数组:可以和NULL比较,内嵌表也可以判断两个集合是否相等。其他
操作符都不能应用于集合。
当与NULL比较是,通常使用 IS[NOT] NULL操作符。可变数组和嵌套表支持IS[NOT]
NULL,但不支持诸如(<>, !=, ~=, or ^=)等操作符。
与NULL比较,示例如下:
CREATE OR REPLACE PROCEDURE P_5_13 AS
TYPE Foursome IS VARRAY(4) OF VARCHAR2(15); -- VARRAY type
team Foursome; -- varray variable
TYPE Roster IS TABLE OF VARCHAR2(15); -- nested table type
names Roster := Roster('Adams', 'Patel'); -- nested table variable

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 67 -

BEGIN
IF team IS NULL THEN
DBMS_OUTPUT.PUT_LINE('team IS NULL');
ELSE
DBMS_OUTPUT.PUT_LINE('team IS NOT NULL');
END IF;
IF names IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('names IS NOT NULL');
ELSE
DBMS_OUTPUT.PUT_LINE('names IS NULL');
END IF;
END;

--Result:
--team IS NULL
--names IS NOT NULL

具有相同元素的两个内嵌表变量支持比较是否相等。如果两个内嵌表变量有相同的内
嵌类型并且他的元素不是记录类型,则支持两个变量的比较。
内嵌表变量的比较,示例如下:
CREATE OR REPLACE PROCEDURE P_5_14 AS
TYPE dnames_tab IS TABLE OF VARCHAR2(30); -- element type is not record type
dept_names1 dnames_tab :=
dnames_tab('Shipping','Sales','Finance','Payroll');
dept_names2 dnames_tab :=
dnames_tab('Sales','Finance','Shipping','Payroll');
dept_names3 dnames_tab :=
dnames_tab('Sales','Finance','Payroll');
BEGIN
IF dept_names1 = dept_names2 THEN
DBMS_OUTPUT.PUT_LINE('dept_names1 = dept_names2');
END IF;
IF dept_names2 != dept_names3 THEN
DBMS_OUTPUT.PUT_LINE('dept_names2 != dept_names3');
END IF;
END;

--Result:
--dept_names1 = dept_names2
--dept_names2 != dept_names3