
Oracle学习笔记第七天
s1124117571
这个作者很懒,什么都没留下…
展开
-
Oracle中的判断结构
介绍在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句、循环语句、顺序控制结构...)在pl/sql中也存在这样的控制结构。1.条件分支语句pl/sql中提供了三种条件分支语句:if-then,if-then-else,if-then-elsif-else简单的条件判断if-then?编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该雇员工资增加10%...原创 2016-03-30 15:38:19 · 171 阅读 · 0 评论 -
21.创建修改视图
创建/修改视图1.创建视图create view 视图名 as select语句 [with read only]//加上with read only表示新建的视图只可读不可改实例SQL> create view myview as select * from emp where sal<1000;View createdSQL> select * from myview;EMP...2016-04-06 16:06:21 · 140 阅读 · 0 评论 -
19.处理自定义例外
处理自定义例外预定义例外和自定义例外都是与oracle错误相关的,并且出现的oracle错误会隐含的触发相应的例外;而自定义例外与oracle错误没有任何关联,它是由开发人员为特定情况所定义的例外?请编写一个pl/sql块,接收一个雇员的编号,并给该雇员工资增加1000元,如果该雇员不存在,请提示--自定义例外create or replace procedure ex_test(sunNo nu...2016-04-06 16:05:58 · 121 阅读 · 0 评论 -
18.其它预定义例外
其它预定义例外1.login_denied当用户非法登陆时,会触发该例外2.not_logged_on如果用户没有登陆就执行dml操作,就会触发该例外3.storage_error如果超过了内存空间或是内存被损坏,就触发该例外4.timeout_on_resource如果oracle在等待资源时,出现了超时就触发该例外非预定义例外非预定义例外用于处理与预定义例外无关的oracle...2016-04-06 16:03:14 · 102 阅读 · 0 评论 -
17.预定义例外3
7.too_many_rows当执行select into 语句时,如果返回超过了一行,则会触发该例外declarev_ename emp.ename%type;beginselect ename into v_ename from emp;exceptionwhen too_many_rows thendbms_output.put_line('返回了多行');end;8.zero_divid...2016-04-06 16:02:23 · 92 阅读 · 0 评论 -
15.预定义例外1
处理预定义例外预定义例外是由pl/sql所提供的系统例外。当pl/sql应用程序违反了oracle规定的限制时,则会隐含的触发一个内部例外。pl/sql为开发人员提供了二十多个预定义例外常用的例外:1.case_not_found:在开发pl/sql块中编写case语句时,如果在when子句中没有包含必须的条件分支,就会触发case_not_found的例外。实例:create or rep...2016-04-05 16:45:24 · 126 阅读 · 0 评论 -
16.预定义例外2
3.dup_val_on_index在唯一索引所对应的列上插入重复的值时,会隐含的触发例外dup_val_on_indexbegininsert into dept values(10,'公关部','北京');exceptionwhen dup_val_on_index thendbms_output.put_line('在deptno列上不能出现重复值!');end;4.invalid_curs...2016-04-05 16:44:57 · 120 阅读 · 0 评论 -
14.例外处理
例外的分类oracle将例外分为预定义例外,非预定义例外和自定义例外三种。预定义例外用于处理常见的oracle错误。非预定义例外用于处理预定义例外不能处理的例外。自定义例外用户处理与oracle错误无关的其它情况。例外处理如果不处理例外,我们看看会出现什么情况:案例:编写一个过程,可接收雇员的编号,并显示该雇员的姓名。问题是,如果输入的雇员编号不存在,怎么样去处理?实例:SQL> decla...2016-04-05 16:42:28 · 105 阅读 · 0 评论 -
Oracle视频中的作业
编写分页过程要求:编写一个存储过程,要求可以输入表名、每页显示记录数、当前页。返回总记录数、总页数和返回的结果集。需要注意:pl/sql中没有取余符号%,只有通过取余函数mod(a,b)来取a取余b--将每个数据都进行编号select t1.*,rownum rn from (select * from emp) t1;--按条件的将符合编号条件的数据输出select t1.*,rownum rn...2016-04-05 16:41:29 · 107 阅读 · 0 评论 -
12.有一个返回值的存储过程-列表形式(结果集)
有返回值的存储过程(列表[结果集]) 最常用由于oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用package了。案例:编写一个过程,输入部门号,返回该部门所有雇员信息1)建一个包。如下:SQL> create or replace package testpackage as 2 type test...2016-04-05 16:40:54 · 232 阅读 · 0 评论 -
有一个返回值的存储过程-非列表形式
2.有返回值的存储过程(非列表)如何处理有返回值的存储过程?案例:编写一个过程,可以输入雇员的编号,返回该雇员的姓名。pl/sql代码--有输入和输出的存储过程(返回一个值)create or replace procedure sun_pro11(sunNo in number,sunName out varchar2) isbegin select ename into sunName fr...2016-03-31 19:14:46 · 155 阅读 · 0 评论 -
有多个返回值的存储过程-非列表形式
案例扩张:编写一个过程,可以输入雇员的编号,返回该雇员的姓名、工资和岗位。plsql代码--有输入和输出的存储过程(返回多个值)create or replace procedure sun_pro12(sunNo in number,sunName out varchar2,sunSal out number,sunJob out varchar) isbegin select ename,s...2016-03-31 19:14:06 · 187 阅读 · 0 评论 -
无返回值的存储过程
介绍分页是任何一个网站(bbs、网上商城、blog)都会使用到的技术,因此学习pl/sql编程开发就一定要掌握该技术。1.无返回值的存储过程编写一个过程,可以向book表添加书,要求通过java程序调用该过程。pl/sql代码:--编写过程--过程中的参数中的in 和 out--in 表示这是一个输入参数 默认为in--out 表示这是一个输出参数create procedure sun_pro1...2016-03-31 19:13:54 · 886 阅读 · 0 评论 -
顺序结构-goto和null
顺序控制语句---goto,null1.goto语句goto语句用于跳转到特定标号去执行语句。注意由于使用goto语句会增加程序的复杂性,并使得应用程序可读性变差,所以在做一般应用开发时,建议大家不要使用goto语句。基本语法如下 goto lable,其中lable是已经定义好的标号名。SQL> --goto案例SQL> declare 2 i int :=1; 3 begi...2016-03-31 19:12:42 · 169 阅读 · 0 评论 -
6.循环结构3-for
循环语句---for循环基本for循环的基本结构如下beginfor i in reverse 1..10 loopinsert into users values(i,'BlACK');end loop;end;/我们可以看到控制变量i,在隐含中就在不停的增加。...原创 2016-03-31 19:10:33 · 126 阅读 · 0 评论 -
4.循环结构1-loop
循环结构---loop是pl/sql中最简单的循环结构,这种循环结构以loop开头,以end loop结尾,这种循环至少会被执行一次。?编写一个过程,可输入用户名,并循环添加10个用户到users表中,用户编号从1开始增加。SQL> --输入用户名,并循环添加10个用户到users表中,用户编号从1开始增加。SQL> create or replace procedure sun_pr...2016-03-30 15:40:46 · 274 阅读 · 0 评论 -
5.循环结构2-while
循环语句---while循环基本循环至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环体语句,while循环以while...loop开始,以end loop结束?编写一个过程,可输入用户名,并循环添加10个用户到users表,用户编号从11开始循环。--循环2 while--输入用户名,并循环添加10个用户到users表,用户编号从11开始循环。create or...2016-03-30 15:40:13 · 149 阅读 · 0 评论 -
20.oracle视图
介绍视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带名称的列和行数据,但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。问题:1.如果要显示各个雇员的名字和他所在部门的名称,必须用两张表,如何才能不需要两张表?将雇员的名字和部门的名称放到视图中,查询视图即可SQL> create view myview ...2016-04-06 16:06:50 · 104 阅读 · 0 评论