只能在以下情况中使用 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 函数。
关联数组:不能做任何比较操作 内嵌表和可变数组:可以和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;