Oracle_PL/SQL(9) 例外处理】的更多相关文章

例外处理1.例外分类:预定义例外,非预定义例外,自定义例外三种传递例外:如果在例外处理部分exception没有捕捉例外,oracle会将例外传递到调用环境.捕捉并处理例外:使用例外处理部分完成exceptionwhen exception1 thenstatement1;when exception2 thenstatement2;...when others then --必须是例外处理部分的最后一条子句statement_n;... 2.预定义例外2.1系统预定义例外有21个,如下:dup…
在pl/sql的执行过程中发生异常时系统所作的处理称为一个例外情况(exception).通常例外情况的种类有三种: 1.预定义的oracle例外情况oracle预定义的例外情况大约有24个,对于这种例外情况无需在程序中定义,由oracle自动地触发(重点) 2.非预定义的oracle例外情况由使用者增加定义例外情况,然后oracle自动将其触发执行. 3.自定义例外,这个用的较少. 自定义例外的基本语法: exception when <异常情况名> then <异常处理代码>…
0.检索单行数据0.1使用标量变量接受数据例1: 7788declare v_ename emp.ename%type; v_sal emp.sal%type;begin select ename,sal into v_ename,v_sal from emp where empno=&no; dbms_output.put_line('职员号:'||&no||' 职员名:'||v_ename);end; 0.2嵌入SELECT语句注意事项: 使用SELECT INTO语句时,必须要返回一…
在pl/sql的执行过程中发生异常时系统所作的处理称为一个例外情况(exception).通常例外情况的种类有三种: ①预定义的oracle例外情况,oracle预定义的例外情况大约有24个,对于这种例外情况无须再程序中定义,有oracle自动触发.(重点) ②非预定义的oracle例外情况由使用者增加定义例外情况,然后oracle自动将其触发. ③自定义例外,这个用的较少.     exception when  <异常情况明> then <异常处理代码> when <异常…
定时器job1.定义 定时器指在特定的时间执行特定的操作. 可以多次执行.说明:特定的操作:指一个完成特定功能的存储过程.多次执行:指可以每分钟.每小时.每天.每周.每月.每季度.每年等周期性的运行.2.准备工作源表:student,course,sccreate table student( sno number(6) not null primary key, sname varchar2(20), birth date);create table course( cno number(6)…
动态sql0.pl/sql块的限制 不能执行ddl操作(create.drop.alter): 不能执行部分dcl操作(grant.revoke). 1.语法动态sql:在执行时才能确定要执行的sql语句.在pl/sql块中编写动态sql语句时,需要将sql语句存放到字符串变量中,而且sql可以包含占位符.execute immediate dynamic_stringdynamic_string :是存放要被执行的sql语句的字符串变量. 2.用途可处理: ddl语句(create,alter…
pl/sql集合处理单行单列数据,可以使用标量变量:处理单行多列的数据,可以使用pl/sql记录(%rowtype,record):处理单列多行数据,可以使用pl/sql集合. pl/sql集合类型是类似于高级语言数组的一种复合数据类型.包括:嵌套表(table),数组(varray)两种. 一.嵌套表1.定义:嵌套表用于处理相同类型的多个数值,其中每个数值称为一个元素.元素的个数从1开始,元素个数的多少没有限制1.2 语法: type type_name is table of element…
序列1.创建序列create sequence seq_alog start with 1 increment by 1 maxvalue 999999999999999999999999999 minvalue 1 cache 20;说明:start with 1 --表示序列从1开始increment by 1 --表示序列每次自增1maxvalue --序列的最大值minvalue --序列的最小值cache 20 --缓存区大小 2.nextval和currval属性 select se…
包1.定义:包用于逻辑组合相关的PL/SQL类型,项和子程序,由包规范和包体组成 建立包规范:包规范是包与应用程序之间的接口,用于定义包的公用组件, 包括常量,变量,游标,过程,函数等 建立包体:用于实现包规范所定义的过程和函数2.语法:包规范只定义不实现create [or replace] package pkg_nameis 变量; 过程; 函数;end pkg_name;包体实现包规范中的定义create [or replace] package body pkg_nameis 过程;…
create table s_sc ( SNAME VARCHAR2(20) primary key, c_grade NUMBER(6), m_grade NUMBER(6), e_grade NUMBER(6) );declare begin for rs in (select sno,sname from student) loop insert into s_sc (sname) values (rs.sname); for rs2 in (select grade,cname from…
引言:PLSQL数据类型标量数据类型:数字类.字符类.日期类.布尔类(boolean).复合数据类型:记录(%rowtype).表.数组引用类型:REF CURSORLOB类型:BLOB.CLOB 1.系统定义的记录:%rowtype使用%rowtype属性定义记录变量:可以基于表或视图定义记录变量当使用%ROWTYPE属性定义记录变量时,记录成员个数,名称,类型与表或视图列的个数, 名称,类型完全相同. 1.1 在select语句中使用PL/SQL记录declare v_emp emp%row…
1. PL/SQL 简介PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库.为什么使用PL/SQL?Orade是一种关系型数据库, 用来访问关系型数据库的语言是 “结构化査询语言”SQL.SQL是一种第四代语言,只描述做什么,不描述如何做.一代语言:01二代语言:汇编三代语言:过程(条件判断.循环)四代语言:sql DELETE FROM emp where major='MANAGER';第四代语言相对简单,提供了较少的命令,它将用户与底层的基本数据结构和算法隔…
例外处理 例外的分类 oracle将例外分为预定义例外,非预定义例外和自定义例外三种. 预定义例外用于处理常见的oracle错误 非预定义例外用于处理预定义例外不能处理的例外 自定义例外用于处理与oracle错误无关的其它情况 例外传递 如果不处理例外我们看看会出现什么情况: 案例,编写一个过程,可接收雇员的编号,并显示该雇员的姓名. 问题是,如果输入的雇员编号不存在,怎样去处理呢? Sql代码 .--例外案例    .declare     .--定义    .v_ename emp.enam…
1.简介:pl/sql块由三个部分组成:定义部分.执行部分.例外处理部分,如下所示: declare: /*定义部分---定义常量.变量.游标.例外.复杂数据类型 begin /*执行部分---要执行的pl/sql语句---要执行的pl/sql语句和sql语句*/ exception /*例外处理部分---处理运行的错误 end; 2.下面通过实例了解pl/sql块 2.1.一个超级简单的pl/sql块 上图是一个简单的pl/sql块,输出hello world,红框内是打开系统的输出选项,绿框…
1.对字符串操作的函数? 答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值 CHR() –函数用于将ASCII 码转换为字符 –如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值 –应该是必须给chr()赋数字值 concat(str,str)连接两个字符串 LOWER() –函数把字符串全部转换为小写 UPPER() –函数把字符串全部转换为大写 LTRIM() –函数把字符串头部的空格去掉 RTRIM() –函数把字符串尾部的空格去掉 T…
PostgreSQL 服务器发出的所有消息都赋予了五个字符 的错误代码, 这些代码遵循 SQL 的 "SQLSTATE" 代码的习惯.需要知道发生了什么错误条件的应用通常应该测试错误代码, 而不是查看文本错误信息.这些错误 代码轻易不会随着 PostgreSQL 的版本更新而修改, 并且一般也不会随着错误信息的本地化而发生修改. 请注意有些,但不是全部,PostgreSQL 生成的错误代码是由 SQL 标准定义的: 有些标准没有定义的错误条件是我们发明的或者是从其它数据库借来的. 根据…
Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://download.csdn.net/detail/deathislikethewind/9832946本文地址: http://blog.csdn.net/deathislikethewind/article/details/71122647 一 MySQL数据建立部分 create table tea( ti…
PostgreSQL 服务器发出的所有消息都赋予了五个字符的错误代码, 这些代码遵循 SQL 的 "SQLSTATE" 代码的习惯.需要知道发生了什么错误条件的应用通常应该测试错误代码,而不是查看文本错误信息.这些错误 代码轻易不会随着 PostgreSQL 的版本更新而修改,并且一般也不会随着错误信息的本地化而发生修改. 请注意有些,但不是全部,PostgreSQL 生成的错误代码是由 SQL 标准定义的: 有些标准没有定义的错误条件是我们发明的或者是从其它数据库借来的. 根据标准,…
orcale 中的例外我们可以看作是其他编程语言中的异常,是为了增强语言的健壮性和容错性. 在orcale中常见的有以下几种: No_data_found 很容易理解就是没有数据返回. Too_many_rows 在我们使用 select ... into 的时候这种错误经常的会发生,就是因为其返回了多条内容. Zero_Divide 被零除. Value_error 算数或者转换错误,比如说我们想把一个字符串 “abc” 转换成一个整数类型的数据 Time_on_resource 等待资源的时…
1.例外分类:系统例外.自定义例外 (1)系统例外,参见相关API文档 (2)自定义例外 定义自己的例外:就像自定义变量一样,类型为exception 抛出例外:使用raise抛出自定义例外 set serveroutput on declare ; pename emp.ename%type; --self define exception self_no_data_found exception; begin open cemp; fetch cemp into pename; if cem…
select msi.segment1                    编码 ,msi.description                  描述 ,mr.old_order_quantity       数量 ,mipo.po_number            请购单 ,mipo.purch_line_num     订单栏 ,pv.vendor_name            供应商 ,ppf.last_name               采购员 from mrp.MRP_IT…
select msi.segment1                                    编码 ,msi.description                                   描述 ,mr.old_order_quantity                        数量 ,mr.old_schedule_date             订单需求日期 ,mipo.po_number                             订单号…
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnblogs.com/lyhabc/p/4682028.html第三篇http://www.cnblogs.com/lyhabc/p/4682986.html第四篇http://www.cnblogs.com/lyhabc/p/6136227.html AlwaysOn是SQL Server2012推出…
上次放出了一篇文章,针对磁盘卷簇大小默认4KB和自定义64KB进行了测试,测试内容为随机和顺序读写,大小为8KB和64KB,有人觉得这并没有照顾到SQL Server所有的IO使用情景.这篇测试文章,我们就来尽可能模拟一下SQL Server IO的行为,全方位对簇大小4KB.8KB和64KB做一次验证,注意:本次我们增加了簇为8KB的大小. 重点说明:本测试使用的是两块SSD组成的RAID1 首先,我们先来分析SQL Server的IO行为,参考网址:Choosing what SQLIO t…
1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的pl/sql的概念    2.掌握pl/sql编程技术(过程.函数.触发器)    pl/sql是标准sql语句的扩展    简介        1.过程.函数.触发器都是由pl/sql编写        2.过程.函数.触发器是在oracle中        3.pl/sql是非常强大的过程语言  …
在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等,都是一类非常喜欢内存的应用. 在Sql Server服务器中,最理想的情况是Sql Server把所有所需的数据全部缓存到内存中,但是这往往也是不现实的,因为数据往往总是大于可用的物理内存 可以说内存是否存在压力能够直接决定数据库能否高效运行, 同时,如果内存出现压力,同时也会影响到CPU的使用和存储性能,可以说是一损俱损,具有连带性. 那么,如何识别内存是…
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合…
更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlockingSession.execute()触发: public void execute(RouteResultset rrs, int type) { // clear prev execute resources clearHandlesResources(); if (LOGGER.isDe…
博主依然不想打字,又向你仍来了一堆代码... 13(续) 在SELECT中用COUNT()以及联合 mysql> SELECT customers.cust_id,COUNT(orders.order_num) AS num_ord -> FROM customers INNER JOIN orders -> ON customers.cust_id=orders.cust_id -> GROUP BY cust_id; +------------+---------+ | cus…
最近项目中需要用到嵌入式数据库,我们选用的数据开发框架是PDF.NET(http://www.pwmis.com/SqlMap/),之前的博文已经总结了让PDF.NET支持最新的SQLite,今天我们来总结一下如何让PDF.NET支持不同版本的SQL Server Compact数据库.PDF.NET支持大部分主流的数据库,SQL Server Compact也不例外,但是PDF.NET只支持SQL Server Compact 4.0,而SQL Server Compact又没有做到向下兼容,…