- 浏览: 16074 次
- 性别:
- 来自: 成都
最新评论
1.今天花了点时间看了下plsql的关联数组,可谓是几经波折啊,这个类型的格式要求非常的严格
我今天大半天的时间就花在这个格式的调整上,最后还是使用了plsql的美化器搞定.
Hints:
从oracle 9i release2开始,支持的数据的索引类型为
binary_integer,pls_integer,positive,natural,varchar2.
2.Bulk collect优点
1>.单个读取操作中检索数据库多条疾苦可以减少网络之间的通信次数,以改善性能
2>.bulk collect想集合中加载数据,可以极大的减少上下文切换的次数
3.forall同bulk collect
4.动态SQL
使用using(绑定变量),into,returning的地方都跟在sql语句的字符串之后,并且不包含在引号之中
5.可变数组的例子
http://sqcwfiu.iteye.com/blog/622065
我今天大半天的时间就花在这个格式的调整上,最后还是使用了plsql的美化器搞定.
SQL> set serveroutput on; SQL> SQL> declare 2 type emparr is table of scott.emp.job%type index by pls_integer; 3 arrname emparr; 4 l_currow pls_integer; 5 begin 6 for currow in (select job, empno from scott.emp) loop 7 arrname(currow.empno) := currow.job; 8 end loop; 9 l_currow := arrname.first; 10 loop 11 exit when l_currow is null; 12 dbms_output.put_line('empno:=' || l_currow || ' job:=' || 13 arrname(l_currow)); 14 l_currow := arrname.next(l_currow); 15 end loop; 16 end; 17 / empno:=7369 job:=CLERK empno:=7499 job:=SALESMAN empno:=7521 job:=SALESMAN empno:=7566 job:=MANAGER empno:=7654 job:=SALESMAN empno:=7698 job:=MANAGER empno:=7782 job:=MANAGER empno:=7788 job:=ANALYST empno:=7839 job:=PRESIDENT empno:=7844 job:=SALESMAN empno:=7876 job:=CLERK empno:=7900 job:=CLERK empno:=7902 job:=ANALYST empno:=7934 job:=CLERK PL/SQL procedure successfully completed SQL>
Hints:
从oracle 9i release2开始,支持的数据的索引类型为
binary_integer,pls_integer,positive,natural,varchar2.
2.Bulk collect优点
1>.单个读取操作中检索数据库多条疾苦可以减少网络之间的通信次数,以改善性能
2>.bulk collect想集合中加载数据,可以极大的减少上下文切换的次数
begin open cselectjob; fetch cselectjob bulk collect into jh_table_array; close cselectjob; end;
3.forall同bulk collect
forall i in number_collection.first .. number_collection.last save exceptions insert into his_dept values number_collection(i);
4.动态SQL
使用using(绑定变量),into,returning的地方都跟在sql语句的字符串之后,并且不包含在引号之中
5.可变数组的例子
创建可变数组的例子: create or replace type mingxitype as object ( goodsid varchar(15), incount int, providerid varchar(15) ); create or replace type arrmingxitype as varray(100) of mingxitype; / create table instock ( orderid int primary key, indate date, mingxi arrmingxitype ) / insert into instock values(1001,to_date('2005-10-19','yyyy-mm-dd'), arrmingxitype(mingxitype('101',10,'so1'), mingxitype('193',30,'j02'), mingxitype('104',32,'i92') ) ) / -----table函数可以把可变数组转换为关系表的形式显示出来; select * from table(select s.mingxi from instock s where orderid=1001)
http://sqcwfiu.iteye.com/blog/622065
发表评论
-
Orale Auditing
2010-12-26 12:12 6141. 记录方式session/access 2. 标准审计 s ... -
管理权限
2010-12-26 10:49 6291.显示当前用户拥有的权限 select * from ses ... -
Management password & resource
2010-12-18 08:43 7041.profile 1>.failed_login_ ... -
Oracle logBuffer
2010-12-16 18:05 686各地现场的log_buffer都不一样,有的现场设置为200M ... -
Index Management
2010-12-12 11:11 7521.classification of indexex ... -
Table Management
2010-12-12 08:34 6771.temporay table语法 a>:基于事 ... -
Undo Management
2010-12-11 10:53 6731.undo 表空间大小的确定 ... -
基于时间点的不完全恢复
2010-12-08 18:43 1535Hints: The requirements for dat ... -
oracle 热备份
2010-12-08 17:29 629SQL> set time on; 17:25 ... -
Oracle 冷备份
2010-12-07 11:34 534SQL> select count(*) fro ... -
Storage structure & Relationship
2010-12-05 09:35 7241.目标 a.描述数据库的逻辑结构 b.列出segment的类 ... -
Oracle 维护小技巧
2010-12-04 11:55 6021.重新编译有错误的函数,存储过程,包 select 'A ... -
oracle 性能监控常用SQL
2010-12-03 18:44 727监控数据库性能的SQL 查看tablespace的空間 ... -
Oracle正则表达式
2010-12-03 18:07 830Oracle 10g数据库内建了符合IEEE POSIX (P ... -
oracle 记录,嵌套表,集合
2010-12-03 11:39 16081.exists 检查集合中是否存在某个元素,collecti ... -
手动创建数据库
2010-12-02 09:12 674[b]1.操作指南(摘自oracle在线帮助文档) Step ... -
Tablespaces&Datafiles
2010-12-01 21:32 659a.目标 1.定义表空间和数据文件,熟悉相关的脚本参数 2.创 ... -
Redo Log File
2010-11-30 21:00 799a.日志文件概要 1.Record all changes m ...
相关推荐
记录 集合 BULK COLLECT FORALL 执行计划
Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
详细介绍了使用 BULK COLLECT 进行批量操作 提高sql的执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询
采用bulk collect可以将查询结果一次性地加载到collections中。而不是通过cursor一条一条地处理。可以在select into,fetch into,returning into语句使用bulk collect。注意在使用bulk collect时,所有的into变量都...
本篇文章小编为大家介绍一下,浅谈PL/SQL批处理语句:BULK COLLECT与FORALL对优化做出的贡献。有需要的朋友可以参考一下
bulk collect bulk collect bulk collect例子特殊应用
结合一个存储过程的实例,介绍了 bulk collect 的使用
在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。 代码如下:declare cursor c1 is select * from t_depart; v_depart t_depart%...
4.用%BULK_ROWCOUNT 属性计算FORALL迭代影响行数 ,用%BULK_ROWCOUNT 属性计算FORALL迭代影响行数 5.用BULK COLLECT子句取回查询结果至集合中 6.用LIMIT 子句限制批取出操作行 7.用RETURNING INTO子句取回DML结果至...
sal,ename BULK COLLECT INTO sal,ename BULK COLLECT INTO sal,ename BULK COLLECT INTO vsal,ename BULK COLLECT INTO sal,ename BULK COLLECT INTO sal,ename BULK COLLECT INTO sal,ename BULK COLLECT ...
bulk collect函数的使用,可以可以提高数据的访问效率
oracle学习--动态数组测试,创建一个数组类型FORALL && BULK COLLECT
Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition by Stelios Charalambides English | 8 May 2017 | ISBN: 1484224353 | 408 Pages | PDF | 24.39 MB Learn through this practical guide ...
Oracle 遍历游标的四种方式(for、fetch、while、bulk collect+forall) 2.问题分析 我们可以把游标想象成一张表,想要遍历游标,就要取到游标的每行数据,所以问题的关键就成了:如何取到行数据? 3.解决方案 ...
BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记。对oracle批量查询 删除 更新使用bulk collect提高效果的相关知识感兴趣的朋友通过本文一起学习吧
代码如下: — Created on 2010/11/04 by WANGNAN declare — Local variables here i integer; TYPE t_table IS TABLE OF VARCHAR2(10 ) INDEX BY VARCHAR2 (2); v_t_table t_table; TYPE t_pg3 IS TABLE OF asis.PG...
关于Oracle FORALL用法的小结