PL/SQL中怎样使用动态游标

 dbms_sql可以实现

  --------------------

  动态SQL和静态SQL

  -------------------------------------------------- -----------

  1.静态SQL比动态SQL写起来要简单,代码量也少,执行效率也同,所以在可能的情况下还是用静态SQL.

  2.动态SQL一般是为了为了动态的数据源和动态的轮出以及动态的查询条件.

  3.动态SQL能执行DLL语句,而静态则不可以.

  -------------------------------------------------- -----------------------

  提供了DBMS_SQL包和ref cursor来执行动态SQL

  ref cursor执行效率更快

  -------------------------------------------------- ------

  以下情况应使用dbms_sql包来执行动态SQL

  1.不知道将使用列的个数和数据类型.DBMS_SQL包括"描述"结果集的过程,而本地动态SQL不需要.

  2.不知道可能要使用的绑定变更的个数或类型,DMBS_SQL允许在程序上将输入绑定到语句,而本地动态SQL要求编译时知道绑定变量的个数和类型

  3.将 提取 或插入上千个行并能够使用数据处理.DBMS_SQL允许使用数据处理.退在单个调中提取N行数据而不是一次提取一行数据

  4.在同一个对话中多次执行同一个语句,DBMS_SQL将允许分析这个语句一次但重复执行多次!

  =========================================

  以下情况应使用本地动态SQL

  -------------------------------------------------- --------

  1.知道将使用的列的个数和类型.

  2.知道绑定变量的个数和类型

  3.将执行DDL语句

  4.将执行这个语句很少次数(最好是一次)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值