Oracle总结2
来源:互联网 发布:为什么淘宝商品不见了 编辑:程序博客网 时间:2024/06/06 07:14
——使用复合数据类型
1.PL/SQL记录(Record)以及%ROWTYPE属性
declare type x is record( ename emp.ename%type, salary emp.sal%type, dno emp.deptno%type); xx x;begin select ename,sal,deptno into xx from emp where empno=&no; dbms_output.put_line(xx.ename);end;
--------rowtype 完全匹配表中的列declare a dept%rowtype;begin a.deptno:=11; a.dname:='UUUUUUU'; a.loc:='BEIJING'; insert into dept values (a.deptno,a.dname,a.loc);end;
2.索引表(INDEX)、嵌套表、和变长数组(VARRAY)
--------索引表type type_name is table of element_type[not null] index by key_type;identifier type_name;--------嵌套表type type_name is table of element_type;identifier type_name;--------变长数组type type_name is varray(size_limit) of element_type[not null];identifier type_name;
3.使用记录表可以有效的处理多行多列的数据declare type x is table of emp%rowtype index by binary_integer; xx x;begin select * into xx(2) from emp where empno=&no; dbms_output.put_line('雇员姓名:'||xx(2).ename); dbms_output.put_line('雇员工资:'||xx(2).sal);end;
4.集合方法- EXISTS
- COUNT
- LIMIT
- FIRST/LAST
- PRIOR/NEXT
- EXTEND
- TRIM
- DELETE
- INDICES OF
- VALUE OF
- BULK COLLECT
————使用游标
1.使用显示游标以及游标属性
declare cursor emp_cursor is select ename,sal from emp where deptno=10; v_ename emp.ename%type; v_sal emp.sal%type;begin open emp_cursor; loop fetch emp_cursor into v_ename,v_sal; exit when emp_cursor%notfound; dbms_output.put_line(v_ename||':'||v_sal); end loop; close emp_cursor;end;
- %ISOPEN
- %FOUND
- %NOTFOUND
- %ROWCOUNT
2.参数游标
定义参数游标时,需要指定参数名及其数据类型
3.显示游标更新或删除数据
同过游标更新或删除数据,在定义游标时必须带有FOR UPDATE
4.for循环
----FOR循环中直接使用子查询begin for emp_record in (select ename,sal from emp)loop dbms_output.put_line(emp_record.ename); end loop;end;
5.游标变量
必须首先定义REF CURSOR类型,才能定义游标变量。return 子句可以不定义
6.FETCH..BULK COLLECT INTO 语句和CURSOR表达式
————开发子程序
1.建立和调用过程
- CREATE PROCEDURE [IN OUT IN OUT]
- EXECUTE/CALL
位置传递 名称传递 组合传递
2.建立和调用函数
必须使用RETURN 子句。其他跟过程类似
3.管理PL/SQL子程序
- USER_OBJECTS
- USER_SOURCE
- SHOW ERRORS
————开发包
1.建立包规范和包体
关键字PACKAGE/ PACKAGE BODY
2.在包内定义公用组件和私有组件
- 公用组件在包头定义私有的在包体定义
- 不同作用域可以重复赋值
- 公有变量不能重复定义,私有在过程中可以重复定义
- 包的内部可以定游标类型,但不能定义游标变量。可以定义静态游标
---当使用其他用户身份调用公用组件时,必须在组件名前加用户名和包名作为前缀----SCOTT.EMP_PACKAGE.。。。。----当调用远程数据库包的公用组件是,在组件名前加包名作为前缀在组件名后需要带有数据库链名作为后缀----EMP_PACKAGE.ADD_EMPLOYEE@TENDER(1111,'SCOTT',1233,10)
3.使用重载
多个具有相同名称的子程序。以java中重载相似但是返回类型必须相同
4.建立构造过程
初始化包的全局变量
5.纯度级别
-----纯度级别 ---WNDS用于限制函数不能修改数据库数据 --- WNPS 用于限制函数不能修改包变量 --- RNDS 用于限制函数不能读取数据库数据 --- RNPS 用于限制函数不能读取包变量
- Oracle总结2
- oracle相关总结2
- Oracle知识点总结2
- oracle总结2
- oracle概述与总结2
- chapter1 Oracle基础---2总结
- chapter2 Oracle应用---2总结
- Oracle进阶总结(2)
- Oracle总结
- Oracle 总结
- Oracle总结
- oracle总结
- oracle总结
- Oracle 总结
- Oracle 总结
- oracle总结
- Oracle-总结
- Oracle总结
- 【悬线法】糖果盒
- 如何参与LINUX内核开发
- 关于音频数据求DB值的问题
- VC中使用ADO操作数据库的方法(比较详细)
- 让你的Outlook邮件五彩缤纷
- Oracle总结2
- 修复DZX2.5的分类信息字符字串不显示等问题
- 背包九讲 P03: 多重背包问题
- gridview、datalist、repeater、FormView、DetailsView的区别详解
- V4L2驱动程序架构
- 《算法导论》第15章 动态规划 (1)装配线调度
- sql简单总结
- Android 4.0开发环境搭建和测试
- 2012年奇虎360校园招聘实习生笔试编程题