- 浏览: 1252314 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
ORACLE的PLSQL编程,异常处理主要分为3大块
AORACLE系统预定义异常 ,比如NO_DATA_FOUND;
B非预定义异常 ,用PRAGMA定义
C自定义异常
下面是主要的测试脚本
--除数为零的异常处理(预定义异常) set serveroutput on; declare v_dividend number:=50; v_divisor number:=0; v_quotient number; begin v_quotient:=v_dividend/v_divisor; exception when ZERO_DIVIDE THEN dbms_output.put_line('除数为零'); end; / --no_data_foud异常(预定义异常) select * from students; declare v_id students.student_id%type; v_sname students.name%type; begin v_id:=&student_id; select name into v_sname from students where student_id=v_id; dbms_output.put_line('学生姓名'||v_sname); exception when no_data_found then dbms_output.put_line('输入的学号不存在'); end; --too_many_rows 异常(预定义异常) declare v_SPECIALTY students.SPECIALTY%type; v_sname students.name%type; begin v_SPECIALTY:='&specialty'; select name into v_sname from students where SPECIALTY=v_SPECIALTY; dbms_output.put_line('学生姓名'||v_sname); exception when too_many_rows then dbms_output.put_line('返回的学生记录多于一行'); end; --考虑两种系统预定义异常 too_many_rows 和no_data_found异常(预定义异常) declare v_SPECIALTY students.SPECIALTY%type; v_sname students.name%type; begin v_SPECIALTY:='&specialty'; --这里的加引号和上面的不加引号有什么不一样? select name into v_sname from students where SPECIALTY=v_SPECIALTY; dbms_output.put_line('学生姓名'||v_sname); exception when too_many_rows then dbms_output.put_line('返回的学生记录多于一行'); when no_data_found then dbms_output.put_line('没有记录'); end; --非预定义异常 e_deptid EXCEPTION;(删除有主外键约束的表的异常处理) -- pragma EXCEPTION_INIT(e_deptid ,-2292); select * from departments; set serveroutput on; declare e_deptid EXCEPTION; pragma EXCEPTION_INIT(e_deptid ,-2292); begin delete from departments where department_id=101; exception when e_deptid then dbms_output.put_line('在教师表中存在子记录'); --参照完整性异常,看似不会产生异常,但是假如于其他表有主外键关联则会出异常 end; --插入有主外键约束的表的处理 select * from teachers; set serveroutput on; declare e_deptid EXCEPTION; pragma EXCEPTION_INIT(e_deptid ,-2292); begin insert into teachers values (11101,'王彤','教授','01-9月-1990',1000,3000,999); exception when e_deptid then dbms_output.put_line('插入记录的部门号在父表中不存在'); --参照完整性异常,看似不会产生异常,但是假如于其他表有主外键关联则会出异常 end; ---插入的记录已经存在异常 select * from students; set serveroutput on; declare e_studentid EXCEPTION; pragma EXCEPTION_INIT(e_studentid ,-0001); begin insert into students values (10205,null,'王三','男','26-12月-1989','自动化'); exception when e_studentid then dbms_output.put_line('插入记录已经存在---'||SQLCODE||'错误描述---'||SQLERRM); --参照完整性异常,看似不会产生异常,但是假如于其他表有主外键关联则会出异常 end; --自定义异常 declare e_wage EXCEPTION; v_wage teachers.wage%type; begin v_wage:=&wage; insert into teachers values (10111,'王彤','教授','01-9月-1990',1000,v_wage,101); if v_wage <0 then raise e_wage; end if; exception when e_wage then dbms_output.put_line('教师工资不能为负'); rollback; when others then dbms_output.put_line('未知异常'); end; /
发表评论
-
存储过程的授权和删除
2012-04-12 17:05 2230当建立一个存储过程或函数后,默认情况下只有创建者和DBA才 ... -
ORACLE 中的SQLPLUS 的SHOW ERRORS
2012-04-05 15:54 2663在sqlplus 中 sql> show ... -
sqlplus的spool命令
2012-04-05 15:06 1519有时候我们想把SQLPLUS的会话输出保存到文件中 ... -
sqlplus 的@符号
2012-04-05 14:16 1891通常我们把ORACLE开发的PLSQL保存成文件,比如. ... -
oracle 的exp和imp命令
2012-03-31 15:23 2077我们通常要对ORACLE的数据进行导入,导出,在没有expdb ... -
oracle的sqlnet.ora,tnsnames.ora,listener.ora的理解
2012-03-31 14:45 20781 oracle中3个比较常用的配置文件 tnsna ... -
oracle 统计一个表格有多少列
2011-12-19 16:48 3161ResultSetMetaData rsMetaData ... -
TNS-12535: TNS: 操作超时
2011-09-02 12:37 2531新安装的linux虚拟机,上面装了ORACLE10G,装好后在 ... -
oracle killsession
2011-08-31 10:09 1228一条语句结束oracle的多个会话 select 'a ... -
oracle建立database link
2011-04-24 08:33 1064建立oracle database link 的命令 实 ... -
plsql编程学习之游标一
2011-04-12 20:39 2907oralce plsql编程的游标 游标分类 1显示游 ... -
PLSQL开发基础--结构控制
2011-04-07 19:24 1504--匿名块 set serveroutput on; be ... -
oracle10g 的sqlplus的新特性
2011-03-21 09:58 1219在使用oracle9i的sqlplus时候我们不知道当前登录的 ... -
oracle10g下的OEM的异常
2011-03-08 14:45 1470重新安装了oracle10g在笔记本上,当网络环境发生变化时容 ... -
oracle glogin.sql和login.sql
2011-03-01 16:52 3337oracle数据库安装好之后,默认在oracle_home下面 ... -
aix下面oracle用户的环境变量
2011-03-01 15:47 10239在AIX上安装oracle11g,需要oracle账号,修改. ... -
oracle 基础知识:两个number列相加
2011-01-13 10:07 135461查看表结构 SQL> desc teachers; ... -
windows7下的oracle10.2.0.1
2011-01-12 14:58 1463近日oracle网站推 ... -
oracle substr,instr用法
2011-01-07 11:36 2743Oracle中INSTR的用法: INSTR方法的格式为 ... -
oracle中用户的权限
2011-01-07 11:18 11401.查看所有用户: select * from dba_ ...
相关推荐
一个块由声明部分(声明变量、常量和子程序)、执行部分(执行SQL语句和流程控制)和异常处理部分组成。声明部分只在块内部有效,且不可在声明部分内嵌套子块,但可以在声明部分定义本地子程序。 3. 变量与常量 - ...
总的来说,“PLSQL用户完全手册(整理版)”可能包含了上述所有内容,以及更多的细节和示例,是学习和精通PL/SQL的宝贵资源。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅,提升自己的数据库编程能力。
3. 异常处理部分(EXCEPTION):错误处理。 PL/SQL 中的特殊符号 1. `||`:字符串连接符,相当于 Java 中的 `+`。 复合类型 1. 记录类型(Record Type):是一种把逻辑相关的数据作为一个单元存储起来的类型,...
PLSQL代码由三部分组成:声明部分(DECLARATION)、执行部分(EXECUTION)和异常处理部分(EXCEPTION HANDLING)。声明部分用于定义变量和游标;执行部分包含业务逻辑,如SQL语句和流程控制结构;异常处理部分则...
- PL/SQL的基本结构:PL/SQL由声明部分、执行部分和异常处理部分组成,用于定义变量、常量、游标、过程、函数等。 - 数据类型:了解PL/SQL中的内置数据类型,如NUMBER、VARCHAR2、DATE等,并学习如何声明变量。 -...
- 异常处理:通过EXCEPTION部分捕获并处理运行时错误。 2. Oracle数据库启动命令: "oracle启动命令.txt"可能包含了关于启动、关闭和管理Oracle数据库实例的信息: - STARTUP:启动数据库实例,连接到控制文件并...
- 异常处理:学习异常的概念、异常的捕获和抛出等。 - 集合框架:介绍Java集合框架的基本概念,包括List、Set、Map等接口及其实现类。 #### 尚硅谷Java基础实战——Bank项目 - **Bank项目概述**: - 项目背景:...
PLSQL美化通常指的是将原始的、可能未经格式化的PL/SQL代码进行整理,使其更符合编码规范,增加注释,提高代码的可读性和可维护性。这对于团队协作尤其重要,因为整洁的代码能帮助开发者更快地理解和修改代码,减少...
- 异常处理:```plsql declare v_num number := 0; begin v_num := 2 / v_num; dbms_output.put_line(v_num); exception when others then dbms_output.put_line('Error'); end; ``` 以上是根据提供的...