BIND_VARIABLE:用于将特定的值或变量与待执行的 SQL 语句中的占位符关联起来。
DBMS_SQL.BIND_VARIABLE(c, 'bnd1', c1);
BIND_ARRAY:用于将数组变量与待执行的 SQL 语句中的占位符关联起来。
DBMS_SQL.BIND_ARRAY(c, 'bnd3', r);
DEFINE_COLUMN:用于定义待执行的 SELECT 语句的最终返回结果集中的列。
DBMS_SQL.DEFINE_COLUMN(source_cursor, 1, id_var);
EXECUTE:用于执行已解析 SQL。
n := DBMS_SQL.EXECUTE(c);
FETCH_ROWS:用于从指定游标中获取一行数据。
IF DBMS_SQL.FETCH_ROWS(source_cursor)>0 THEN
-- get column values of the row
EXECUTE_AND_FETCH:用于执行已解析的查询 SQL,并获取一行数据。
r := DBMS_SQL.EXECUTE_AND_FETCH(c);
VARIABLE_VALUE:用于从带有 RETURNING 的 SQL 语句中获取绑定变量的返回数据。
DBMS_SQL.VARIABLE_VALUE(c, 'bnd3', r);
COLUMN_VALUE:用于获取查询结果集中指定列的数据。
DBMS_SQL.COLUMN_VALUE(c, 1, some_dnames);
CLOSE_CURSOR:终章!关闭游标。
DBMS_SQL.CLOSE_CURSOR(c);
接下来我将使用羲和(Halo)数据库演示上述 DBMS_SQL 的各个接口。
二、环境准备
羲和(Halo)数据库设置为 ORACLE 模式,创建一个演示数据库 test_db,创建内部所需的 ORACLE 拓展。
评论