二十七、oracle 例外
摘要:一、例外分类oracle将例外分为预定义例外、非预定义例外和自定义例外三种。1)、预定义例外用于处理常见的oracle错误。2)、非预定义例外用于处理预定义例外不能处理的例外。3)、自定义例外用于处理与oracle错误无关的其它情况。下面通过一个小案例演示如果不处理例外看会出现什么情况?编写一个存储过程,可接收雇员的编号,并显示该雇员的姓名。sql代码如下:SET SERVEROUTPUT ON;DECLARE V_ENAME EMP.ENAME%TYPE;BEGIN SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO = &GNO; DBMS
阅读全文
posted @
2012-02-29 18:59
Ruthless
阅读(4193)
推荐(1) 编辑
二十六、oracle pl/sql 分页
摘要:一、无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解。首先是掌握最简单的存储过程,无返回值的存储过程。 案例:现有一张表book,表结构如下:书号、书名、出版社。CREATE TABLE book( ID NUMBER(4), book_name VARCHAR2(30), publishing VARCHAR2(30));请写一个过程,可以向book表添加书,要求通过java程序调用该过程。--注意:in->表示这是一个输入参数,默认为in --out->表示一个输出参数CREATE OR REPLACE PR
阅读全文
posted @
2012-02-28 19:20
Ruthless
阅读(6390)
推荐(5) 编辑
二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
摘要:一、pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构。在本部分学习完成后,希望大家达到:1.使用各种if语句2.使用循环语句3.使用控制语句——goto和null(goto语句不推荐使用);二、条件分支语句pl/sql中提供了三种条件分支语句if—then,if–then–else,if–then–else if–then。这里我们可以和java语句进行一个比较。1)、简单的条件判断if–then问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该
阅读全文
posted @
2012-02-28 10:53
Ruthless
阅读(4852)
推荐(1) 编辑
二十四、oracle pl/sql 变量
摘要:一、变量介绍在编写pl/sql程序时,可以定义变量和常量;在pl/sql程序中包括有:1)、标量类型(scalar)2)、复合类型(composite) --用于操作单条记录3)、参照类型(reference) --用于操作多条记录4)、lob(large object)二、标量(scalar)——常用类型1)、在编写pl/sql块时,如果要使用变量,需在定义部分定义变量。pl/sql中定义变量和常量的语法如下:identifier [constant] datatype [not null] [:=| default expr]identifier: 名称constant:指定常量。需要指定
阅读全文
posted @
2012-02-27 16:26
Ruthless
阅读(6188)
推荐(2) 编辑
二十三、oracle pl/sql分类三 包
摘要:包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。1)、我们可以使用create package命令来创建包,如:i、创建一个包sp_packageii、声明该包有一个过程update_saliii、声明该包有一个函数annual_income--声明该包有一个存储过程和一个函数create package sp_package is procedure update_sal(name varchar2, newsal number); function annual_income(name varchar2) return number;end;2)、建立包体可以使用crea...
阅读全文
posted @
2012-02-24 20:32
Ruthless
阅读(3910)
推荐(2) 编辑
二十二、oracle pl/sql分类二 函数
摘要:函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。而在函数体内必须包含return语句返回的数据。我们可以使用create function来建立函数。1)、接下来通过一个案例来模拟函数的用法--输入雇员的姓名,返回该雇员的年薪CREATE FUNCTION annual_incomec(uname VARCHAR2)RETURN NUMBER IS annual_salazy NUMBER(7,2);BEGIN SELECT a.sal*13 INTO annual_salazy FROM emp a WHERE a.ename=uname; RETURN ...
阅读全文
posted @
2012-02-24 20:05
Ruthless
阅读(4871)
推荐(2) 编辑
二十一、oracle pl/sql分类一 存储过程
摘要:存储过程用于执行特定的操作,当建立存储过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分的数据传递到应用环境。在sqlplus中可以使用create procedure命令来建立过程。实例如下:1.请考虑编写一个存储过程,可以输入雇员名,新工资,用来修改雇员的工资--根据雇员名去修改工资CREATE PROCEDURE sp_update(uname VARCHAR2, newsal NUMBER) ISBEGIN update emp set sal=newsal where ename=..
阅读全文
posted @
2012-02-23 20:24
Ruthless
阅读(6373)
推荐(2) 编辑
二十、oracle pl/sql基础
摘要:一、pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品。二、pl/sql介绍开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块。而且如果使用pl/sql编程,我们可以轻松地完成非常复杂的查询要求。三、pl/sql可以做什么可以用来编写存储过程、函数、触发器、包等四、编写规范五、p
阅读全文
posted @
2012-02-22 21:48
Ruthless
阅读(6356)
推荐(3) 编辑
十九、oracle pl/sql简介
摘要:一、pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。二、为什么要学pl/sql1.提高应用程序的运行性能2.模块化的设计思想(分页的过程,订单的过程,转账的过程。。)3.减少网络传输量4.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会)三、Oracle为什么在PL/SQL developer执行很快,用c# oracleclient执行就慢因
阅读全文
posted @
2012-02-22 20:38
Ruthless
阅读(4754)
推荐(2) 编辑
Java中ASC码与字符互相转化
摘要:package com.ljq.test;/** * Java中ASC码与字符互相转化 * * @author jiqinlin * */public class ASCTest { private static int ascNum; private static char strChar; public static void main(String[] args) { System.out.println(getAsc("a")); System.out.println(backchar(98)); } /** * 字...
阅读全文
posted @
2012-02-22 15:32
Ruthless
阅读(30649)
推荐(1) 编辑
xStream框架操作XML、JSON
摘要:xStream框架可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,并且也支持json的转换;它们都完美支持JSON,但是对xml的支持还不是很好。一定程度上限制了对Java对象的描述,不能让xml完全体现到对Java对象的描述。这里将会介绍xStream对JSON、XML的完美支持。xStream不仅对XML的转换非常友好,而且提供annotation注解,可以在JavaBean中完成对xml节点、属性的描述。以及对JSON也支持,只需要提供相关的JSONDriver就可以完成转换。以下通过一个案例来演示xStream框架怎么操作xml、json的步骤一:添
阅读全文
posted @
2012-02-22 11:01
Ruthless
阅读(4376)
推荐(1) 编辑
十八、oracle 角色
摘要:一、介绍角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理。假定有用户a,b,c为了让他们都拥有如下权限1. 连接数据库2. 在scott.emp表上select,insert,update。如果采用直接授权操作,则需要进行12次授权。因为要进行12次授权操作,所以比较麻烦喔!怎么办?如果我们采用角色就可以简化:首先将creat session,select on scott.emp, insert on scott.emp, update on scott.emp 授予角色,然后将该角色授予a,b,c 用户,这样就可以三次授权搞定。二、角色分为预定义和自定义角色两类三、预定
阅读全文
posted @
2012-02-20 18:17
Ruthless
阅读(3996)
推荐(2) 编辑
十七、oracle 权限
摘要:一、介绍这一部分我们主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里。当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限;如果用户要访问其它方案的对象,则必须为其授予对象的权限。为了简化权限的管理,可以使用角色。这里我们会详细的介绍。二、权限权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限两种。三、系统权限1)、系统权限是指执行特定类型sql命令的权利。它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其方案中建表,当用户具有creat
阅读全文
posted @
2012-02-18 11:07
Ruthless
阅读(4129)
推荐(1) 编辑
十六、oracle 索引
摘要:一、管理索引-原理介绍索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种:为什么添加了索引后,会加快查询速度呢?二、创建索引1)、单列索引单列索引是基于单个列所建立的索引语法:create index 索引名 on 表名(列名);eg、create index nameIndex on custor(name);2)、复合索引复合索引是基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同,比如:create index emp_idx1 on emp(ename, job);create in
阅读全文
posted @
2012-02-17 21:14
Ruthless
阅读(5004)
推荐(1) 编辑
十五、oracle 约束
摘要:一、维护数据的完整性数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则,在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。二、约束约束用于确保数据库数据满足特定的商业规则。在oracle中,约束包括:not null、 unique, primary key, foreign key和check 五种。1)、not null(非空)如果在列上定义了not null,那么当插入数据时,必须为列提供数据。2)、unique(唯一)当定义了唯一约束后,该列值是不能重复的,但是
阅读全文
posted @
2012-02-16 15:27
Ruthless
阅读(4732)
推荐(1) 编辑
十四、oracle 数据库管理--管理表空间和数据文件
摘要:一、概念表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成。二、数据库的逻辑结构oracle中逻辑结构包括表空间、段、区和块。说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。三、表空间1、概念表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以达到以下作用:1)、控制数据库占用的磁盘空间2)、dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时利于备份和恢复
阅读全文
posted @
2012-02-16 15:02
Ruthless
阅读(5211)
推荐(2) 编辑
通过HttpURLConnection模拟post表单提交
摘要:package junit;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;import com.hrtx.util.StreamTool;public class EsmTest { /** * 通过HttpURLConnection模拟post表单提交 * @throws Exception */ @Test public void sendEms() throws Exception { ...
阅读全文
posted @
2012-02-16 09:41
Ruthless
阅读(85773)
推荐(5) 编辑
十三、oracle 数据字典和动态性能视图
摘要:一、概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。动态性能视图记载了例程启动后的相关信息。二、数据字典1)、数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。2)、用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。3)、这里我们谈谈数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括user_xxx,all_
阅读全文
posted @
2012-02-14 15:39
Ruthless
阅读(6872)
推荐(2) 编辑
十二、oracle 数据库(表)的逻辑备份与恢复
摘要:一、介绍逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。二、备份(导出)导出分为导出表、导出方案、导出数据库三种方式。导出使用exp命令来完成的,该命令常用的选项有:userid:用于指定执行导出操作的用户名,口令,连接字符串tables:用于指定执行导出操作的表owner:用于指定执行导出操作的方案full=y:用于指定执行导出操作的数据库inctype:用
阅读全文
posted @
2012-02-13 20:21
Ruthless
阅读(7610)
推荐(3) 编辑
十一、oracle 数据库管理员
摘要:一、数据库管理员每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责。那么一个数据库管理员的主要工作是什么呢:1.安装和升级oracle 数据库2.建库,表空间,表,视图,索引…3.制定并实施备份和恢复计划4.数据库权限管理,调优,故障排除5.对于高级dba,要求能参与项目开发,会编写sql 语句、存储过程、触发器、规则、约束、包二、管理数据库的用户主要是sys和system(sys好像是董事长,system好像是总经理,董事长比总经理大,但是通常是总经理干事)在前面我们已经提到这两个用户,
阅读全文
posted @
2012-02-12 21:47
Ruthless
阅读(6527)
推荐(3) 编辑
十、oracle 常用函数
摘要:一、字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式。upper(char):将字符串转化为大写的格式。length(char):返回字符串的长度。substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, search_string, replace_string)instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串
阅读全文
posted @
2012-02-07 20:56
Ruthless
阅读(22974)
推荐(2) 编辑
九、oracle 事务
摘要:一、什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml(数据操作语言,增删改,没有查询)语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事务来处理,用于保证数据的一致性。二、事务和锁当执行事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户修改表的结构。这里对我们的用户来讲是非常重要的。三、提交事务当用commit语句执行时可以提交事务。当执行了commit语句之后,会确认事务的变化、结束事务。删除保存点、释放锁,当使用commit语句结束事务之后,其它会话将可以查看到事务变化后的新数据。保存点就是为回滚做的。保存点的个数没有限制。四、
阅读全文
posted @
2012-02-06 22:27
Ruthless
阅读(8302)
推荐(2) 编辑
八、oracle 分页
摘要:oracle的分页一共有三种方式方法一 根据rowid来分SELECT * FROM EMP WHERE ROWID IN (SELECT RID FROM (SELECT ROWNUM RN, RID FROM (SELECT ROWID RID, EMPNO FROM EMP ORDER BY EMPNO DESC) WHERE ROWNUM <= ( (currentPage-1) * pageSize + pageSize )) --每页显示几条 WHERE RN > ((...
阅读全文
posted @
2012-02-03 11:05
Ruthless
阅读(10034)
推荐(4) 编辑
七、oracle 表查询二
摘要:1、使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or job = 'MANAGER') and ename like 'J%';2、使用order by字句 默认asc问题:如何按照工资从低到高的顺序显示雇员的信息?select * from emp order by sal;问题:按照部门号升序而雇员的工资降序排列select * from emp order by deptno, sal desc;3、使用列的别名
阅读全文
posted @
2012-02-03 10:46
Ruthless
阅读(12602)
推荐(3) 编辑
六、表查询一
摘要:通过scott用户下的表来演示如何使用select语句,接下来对emp、dept、salgrade表结构进行解说。 emp 雇员表字段名称 数据类型 是否为空 备注-------- ----------- -------- --------EMPNO NUMBER(4) 员工编号 ENAME VARCHAR2(10) Y 员工名称 JOB VARCHAR2(9) Y 职位 MGR NUMBER(4) Y 上级的编号 HIREDATE DATE Y 入职日期 SAL NUMBER(7,2) Y 月工资 COMM NUMBER(7,2) Y 奖金 DEPTNONUMBER(2) Y 所属部门---
阅读全文
posted @
2012-02-02 09:30
Ruthless
阅读(12811)
推荐(3) 编辑
五、oracle 表的管理
摘要:一、表名和列名的命名规则1)、必须以字母开头2)、长度不能超过30个字符3)、不能使用oracle的保留字4)、只能使用如下字符 a-z,a-z,0-9,$,#等二、数据类型1)、字符类char 长度固定,最多容纳2000个字符。例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全,如‘小韩 ’varchar2(20) 长度可变,最多容纳4000个字符。例子:varchar2(10) ‘小韩’ oracle分配四个字符。这样可以节省空间。clob(character large object) 字符型大对象,最多容纳4gchar 查询的速度极快浪费空间,适合查询比较频繁的数据
阅读全文
posted @
2012-02-01 19:38
Ruthless
阅读(14411)
推荐(4) 编辑