Oracle之DBMS 您所在的位置:网站首页 用纸箱子做打印机教程 Oracle之DBMS

Oracle之DBMS

2023-10-16 21:20| 来源: 网络整理| 查看: 265

通常运用 DBMS_SQL 包一般分为 如下 几步:

1. open cursor : 打开 cursor

2. parse cursor :解析你要执行的 SQL 语句

3. bind variable :如果要执行的 SQL 语句中包含变量,在此就需要绑定变量

4. execute :执行 SQL 语句

5. close cursor :在执行后关闭此 cursor.

如果你还需要返回执行 SQL 的结果集,还需要使用 define_column,define_array 等方法 ,具体可以看如下流程图:  

-- The flow of procedure calls will typically look like this: -- -- ----------- -- | open_cursor | -- ----------- -- | -- | -- v -- ----- -- ------------>| parse | -- | ----- -- | | -- | |--------- -- | v | -- | -------------- | -- |-------->| bind_variable | | -- | ^ ------------- | -- | | | | -- | -----------| | -- | || execute | ->| define_column | -- | ------- | ------------- -- | |------------ | | -- | | | ----------| -- | v | v -- | -------------- | ------- -- | ->| variable_value | | ------>| execute | -- | | -------------- | | ------- -- | | | | | | -- | ----------| | | | -- | | | | v -- | | | | ---------- -- | || fetch_rows | -- | | | ---------- -- | | | | -- | | | v -- | | | -------------------- -- | | | | column_value | -- | | | | variable_value | -- | | | --------------------- -- | | | | -- | | 0 THEN --将前面定义的字段返回给变量v_b-- dbms_sql.column_value(cursor_name, 2, v_b); dbms_output.put_line('B is ' || v_b); ELSE EXIT; END IF; END LOOP; --数据处理完成后记得要将cursor关闭 dbms_sql.close_cursor(cursor_name); EXCEPTION WHEN OTHERS THEN dbms_sql.close_cursor(cursor_name); END;

2. 使用 define_array 方法得到查询结果

前面已经分析了如何使用 define_column 方法得到查询结果,但有时我们想要一次得到多行查询结果,此时我们就需要使用define_array 方法,此方法常用于 DML 操作,稍后会有例子对此介绍,现在先来看一下如果使用 define_array.

DECLARE c NUMBER; d NUMBER; n_tab dbms_sql.number_table; n_tab1 dbms_sql.number_table; indx NUMBER := 1; BEGIN c := dbms_sql.open_cursor; dbms_sql.parse(c, 'select * from cux_demo where rownum


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有