etl oracle的游标用法,for循环游标和fetchinto用法上有什么区别?
oracle的游标用法,for循环游标和fetchinto用法上有什么区别?
游标for循环确实简化了游标的开发。我们不再需要使用open、fetch和close语句,也不再需要使用%found属性来检测是否找到最后一条记录。甲骨文含蓄地帮助我们完成了这一切
其他人都完全一样。
SQL语句中的FETCH如何使用?
功能是将光标的当前值分配给变量,例如:
-define cursor
cursor CuItem(varBH number,varGSID varchar2)是
从数据项A中选择*,其中A.GSID=varGSID和A.THD01=varBH
vuItem CuItem%行类型
-使用cursor
打开CuItem(pBH,pGSID)
将CuItem提取到vuItem
同时CuItem%找到循环
结束循环
关闭CuItem
我觉得for循环的用法比fetch into用法简单得多。他们之间有什么区别吗?
是否有任何情况下,fetch可以做,但不能做?
从用法来看,for只需要一句话。Fetch必须打开和关闭游标,并判断是否获取数据。
oracle的游标用法,for循环游标和fetch into用法上有什么区别?
通常我们通过获取一些游标数据来获取游标数据。当游标中的记录数较少时,这无关紧要。然而,自从oracle8i以来,Oracle提供了fetchbulk集合来批量获取游标中的数据。它可以提高读取光标中大量数据的效率。就像SNMP协议一样,V2版本将get bulk PDU添加到V1版本,它还用于更高效地批量获取设备上的节点值。fetch bulk collect into的格式是:fetch some cursor collect into col1,col2 limit xxx。col1和col2是声明的集合类型变量。XXX是每次获取的数据块(记录数)的大小,相当于缓冲区的大小。不能指定限制XXX的大小。下面是一个实例来说明它的用法,并将其与逐个获取记录的获取执行效率进行比较。测试环境为Oracle 10g 10.2.1.0,查询contact表SR,contacts中有1802983条记录,返回的记录数受游标rownum限制。
etl oracle distinct用法 sql语句中fetch的用法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。