-
为什么要把数组叫做光标呢
查看全部 -
没有提示信息貌似也没有什么问题吧
查看全部 -
11行是很精华的一列,就是有点难以理解
查看全部 -
into语句的顺序要按照前面查询语句的顺序来写
查看全部 -
引用型变量,引用你的类型作为我的类型
查看全部 -
命令式的语言
查看全部 -
分支和循环就是过程处理能力吗
查看全部 -
要有一个结果集
查看全部 -
自定义例外:PL/SQL中可以把它当做变量来处理,所以需要declare语句后定义自定义例外,类型是exception,自定义例外需要使用raise抛出,捕获的方式就和系统方式一样。
举例:查询50号部门的员工姓名,但是这里没有部门号为50的部门,所以这里自定义一个例外。需要注意的地方有raise抛出异常。
注意:这里需要注意当自定义异常执行后,close cemp这行代码就不会执行了,直接跳转到exception这行代码执行了,这里这样写是没有问题的,oracle有一个机制,当异常退出时,会检查程序中有没有关闭的资源,它会自动启动一个进程,这个进程就会把系统遗留的垃圾和资源进行清理,所以close cemp最终会被这个pmon调用。
查看全部 -
value_error例外:当算数错误,例如负数开平方。或者类型转换错误,字符串赋值给数值型。会产生该例外。
举例:将一个字符赋值给数值型变量。
注意:如图,将字符类型的数字赋值给数值型变量不会报错。
查看全部 -
zero_divide例外:除零例外。
举例:如图。注意:这里的then后面相当于一个大括号,后面可以是多个语句。这里举例演示。
查看全部 -
Too_many_rows:该例外表示select语句查询后,将多个记录赋值给一个变量。
举例:如图,查询时匹配了多个行,捕获进行提示。
查看全部 -
No_data_found例外:表示一条select语句没有查询到数据时候就会产生这个例外。
举例:产生这个例外并进行捕获,输出提示。
例外的捕获:如果产生例外,就可以通过exception捕获例外。,至于何种例外,可以通过when来判断,then表示符合时执行的操作,如果有多个例外,可以定义多个when来进行捕获。如图
注意:在PL/SQL中要捕获所有的例外,不要往外抛,一旦往外抛,就意味着抛给了数据库,这样数据库可能会运行出错。所以这里可以通过在最后一个when后面使用others,表示除了上面的例外,其他的都会被该语句处理。
查看全部 -
例外定义:程序设计语言的一种功能,用来增强程序(PL/SQL程序)的健壮性和容错性。
可以通过查看oracle文档了解例外的使用。
PL/SQL中的例外可以分为两种:
1、Internally defined——》系统例外,这种例外是oracle事先定义好的。
举例:这里介绍如图所示几种系统例外。这里的资源等待超时的产生场景会在分布式数据库情况下发生。
分布式数据库:两个数据库物理上不是一个数据库,但是逻辑上是一个数据库,其中一个数据库访问另一个数据库,但是由于某些原因一直没有返回数据,此时就会有一个时间,超过这个时间,就会产生这个Timeout_on_resource这个例外。
2、user defined——》自定义例外,我们自己定义一个例外。
查看全部 -
带参数的光标语法:如图,如果多个参数,逗号进行分隔。
举例:查询某一部门的员工姓名。如图。它和不带光标的区别在于1、定义不同。2、打开不同(打开光标时,注意:需要传入一个参数)。这里传入的10代表部门号。
注意:光标%notfound的原理是判断是否从光标中fetch数据到变量中,如果fetch数据到变量中了,就返回false,如果没有fetch到数据到变量中,就返回true。
查看全部
举报