DBMS_SQL 模块

DBMS_SQL 模块提供一组用于执行动态 SQL 的过程,并因此支持各种数据操作语言(DML)或数据定义语言(DDL)语句。

此模块的模式为 SYSIBMADM。

DBMS_SQL 模块包括以下内置例程。

表 1. DBMS_SQL 模块中可用的内置例程
过程名称 描述
BIND_VARIABLE_BLOB 过程 提供 IN 或 INOUT 参数的输入 BLOB 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 BLOB。
BIND_VARIABLE_CHAR 过程 提供 IN 或 INOUT 参数的输入 CHAR 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 CHAR。
BIND_VARIABLE_CLOB 过程 提供 IN 或 INOUT 参数的输入 CLOB 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 CLOB。
BIND_VARIABLE_DATE 过程 提供 IN 或 INOUT 参数的输入 DATE 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 DATE。
BIND_VARIABLE_DOUBLE 过程 提供 IN 或 INOUT 参数的输入 DOUBLE 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 DOUBLE。
BIND_VARIABLE_INT 过程 提供 IN 或 INOUT 参数的输入 INTEGER 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 INTEGER。
BIND_VARIABLE_NUMBER 过程 提供 IN 或 INOUT 参数的输入 DECFLOAT 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 DECFLOAT。
BIND_VARIABLE_RAW 过程 提供 IN 或 INOUT 参数的输入 BLOB(32767) 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 BLOB(32767)。
BIND_VARIABLE_TIMESTAMP 过程 提供 IN 或 INOUT 参数的输入 TIMESTAMP 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 TIMESTAMP。
BIND_VARIABLE_VARCHAR 过程 提供 IN 或 INOUT 参数的输入 VARCHAR 值,并针对 INOUT 或 OUT 参数将输出值的数据类型定义为 VARCHAR。
CLOSE_CURSOR 过程 关闭游标。
COLUMN_VALUE_BLOB 过程 检索类型为 BLOB 的列的值。
COLUMN_VALUE_CHAR 过程 检索类型为 CHAR 的列的值。
COLUMN_VALUE_CLOB 过程 检索类型为 CLOB 的列的值。
COLUMN_VALUE_DATE 过程 检索类型为 DATE 的列的值。
COLUMN_VALUE_DOUBLE 过程 检索类型为 DOUBLE 的列的值。
COLUMN_VALUE_INT 过程 检索类型为 INTEGER 的列的值。
COLUMN_VALUE_LONG 过程 检索类型为 CLOB(32767) 的列的值。
COLUMN_VALUE_NUMBER 过程 检索类型为 DECFLOAT 的列的值。
COLUMN_VALUE_RAW 过程 检索类型为 BLOB(32767) 的列的值。
COLUMN_VALUE_TIMESTAMP 过程 检索类型为 TIMESTAMP 的列的值。
COLUMN_VALUE_VARCHAR 过程 检索类型为 VARCHAR 的列的值。
DEFINE_COLUMN_BLOB 过程 将列的数据类型定义为 BLOB。
DEFINE_COLUMN_CHAR 过程 将列的数据类型定义为 CHAR。
DEFINE_COLUMN_CLOB 过程 将列的数据类型定义为 CLOB。
DEFINE_COLUMN_DATE 过程 将列的数据类型定义为 DATE。
DEFINE_COLUMN_DOUBLE 过程 将列的数据类型定义为 DOUBLE。
DEFINE_COLUMN_INT 过程 将列的数据类型定义为 INTEGER。
DEFINE_COLUMN_LONG 过程 将列的数据类型定义为 CLOB(32767)。
DEFINE_COLUMN_NUMBER 过程 将列的数据类型定义为 DECFLOAT。
DEFINE_COLUMN_RAW 过程 将列的数据类型定义为 BLOB(32767)。
DEFINE_COLUMN_TIMESTAMP 过程 将列的数据类型定义为 TIMESTAMP。
DEFINE_COLUMN_VARCHAR 过程 将列的数据类型定义为 VARCHAR。
DESCRIBE_COLUMNS 过程 返回游标检索到的列的描述。
DESCRIBE_COLUMNS2 过程 与 DESCRIBE_COLUMNS 完全相同,但允许列名长度超过 32 个字符。
EXECUTE 过程 执行游标。
EXECUTE_AND_FETCH 过程 执行游标并访存一行。
FETCH_ROWS 过程 通过游标访存行。
IS_OPEN 函数 检查游标是否已打开。
IS_OPEN 过程 检查游标是否已打开。
LAST_ROW_COUNT 过程 返回访存的总行数。
OPEN_CURSOR 过程 打开游标。
PARSE 过程 解析 DDL 语句。
VARIABLE_VALUE_BLOB 过程 将 INOUT 或 OUT 参数的值作为 BLOB 进行检索。
VARIABLE_VALUE_CHAR 过程 将 INOUT 或 OUT 参数的值作为 CHAR 进行检索。
VARIABLE_VALUE_CLOB 过程 将 INOUT 或 OUT 参数的值作为 CLOB 进行检索。
VARIABLE_VALUE_DATE 过程 将 INOUT 或 OUT 参数的值作为 DATE 进行检索。
VARIABLE_VALUE_DOUBLE 过程 将 INOUT 或 OUT 参数的值作为 DOUBLE 进行检索。
VARIABLE_VALUE_INT 过程 将 INOUT 或 OUT 参数的值作为 INTEGER 进行检索。
VARIABLE_VALUE_NUMBER 过程 将 INOUT 或 OUT 参数的值作为 DECFLOAT 进行检索。
VARIABLE_VALUE_RAW 过程 将 INOUT 或 OUT 参数的值作为 BLOB(32767) 进行检索。
VARIABLE_VALUE_TIMESTAMP 过程 将 INOUT 或 OUT 参数的值作为 TIMESTAMP 进行检索。
VARIABLE_VALUE_VARCHAR 过程 将 INOUT 或 OUT 参数的值作为 VARCHAR 进行检索。

下表列示 DBMS_SQL 模块中可用的内置类型和常量。

表 2. DBMS_SQL 内置类型和常量
姓名 类型或常量 描述
DESC_REC Type 列信息的记录。
DESC_REC2 Type 列信息的记录。
DESC_TAB Type 类型为 DESC_REC 的一组记录。
DESC_TAB2 Type 类型为 DESC_REC2 的一组记录。
NATIVE 常量 PARSE 过程的 language_flag 参数唯一支持的值。

使用说明

当您想要构造并运行动态 SQL 语句时,DBMS_SQL 模块中的例程非常有用。例如,您可能想要执行“ALTER TABLE”或“DROP TABLE”之类的 DDL 或 DML 语句,实时构造并执行 SQL 语句,或调用使用 SQL 语句中的动态 SQL 的函数。