DBMS_SQL 模块
DBMS_SQL 模块提供一组用于执行动态 SQL 的过程,并因此支持各种数据操作语言(DML)或数据定义语言(DDL)语句。
此模块的模式为 SYSIBMADM。
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 模块中可用的内置类型和常量。
| 姓名 | 类型或常量 | 描述 |
|---|---|---|
| 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 的函数。