考试网 >> IT认证 >> Oracle >> Oracle指导 >> oracle笔记-动态SQL

oracle笔记-动态SQL

发布时间:2006-06-28 09:15     点击:

[Page: ]



  16.2 如何使用动态SQL

  DBMS_SQL

  1.     调用OPEN_CURSOR获得一个游标句柄;

  2.     调用PARSE分析语句。一个游标句柄可以用于多条不同的已分析语句,但一个时间点仅一条有效;

  3.     调用BIND_VARIABLE或BIND_ARRAY来提供语句的任何输入;

  4.     若是一个查询(SELECT语句),调用DIFINE_COLUMN或DEFINE_ARRAY来告知Oracle如何返回结果;

  5.     调用EXECUTE执行语句;

  6.     若是一个查询,调用FETCH_ROWS来读取数据。可以使用COLUMN_VALUE从SELECT列表根据位置获得这些值;

  7.     否则,若是一个PL/SQL块或带有RETURN子句的DML语句,可以调用VARIABLE_VALUE从块中根据变量名获得OUT值;

  8.     调用CLOSE_CURSOR.

  注意这里对任何异常都应该处理,以关闭游标,防止泄露资源。

  本地动态SQL

  EXECUTE IMMEDIATE ‘语句’

  [INTO {变量1, 变量2, … 变量N | 记录体}]

  [USING [IN | OUT | IN OUT] 绑定变量1, … 绑定变量N]

  [{RETURNING | RETURN} INTO 输出1 [, …, 输出N]…];

  注意本地动态SQL仅支持弱类型REF CURSOR,即对于REF CURSOR,不支持BULK COLLECT.

  16.3 最后说明

  动态SQL的负面:破坏了依赖链、代码更脆弱、很难调优。
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有