- 浏览: 1783231 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (528)
- java基础 (35)
- oracle (23)
- 项目管理 (10)
- 代码架构 (27)
- java线程与进程 (2)
- 盈利模式 (10)
- 性能测试 (1)
- Ophone (2)
- web (6)
- asp (0)
- php (1)
- c# (1)
- Ruby (0)
- jboss (4)
- java基础之面试篇 (7)
- 数据查询优化 (1)
- weblogic (3)
- EJB (1)
- EXT (6)
- jquery (8)
- struts2 (2)
- struts1 (1)
- css (1)
- javascript (4)
- SSI (9)
- linux (9)
- c++ (6)
- 网络安全 (3)
- swing (2)
- 嵌入式 (1)
- 图像处理(机器人智能技术) (1)
- vb (2)
- mysql (2)
- sqlserver (10)
- dephi (0)
- Android (4)
- hadoop (1)
- maven (4)
- mybatis (1)
- html5 (1)
- 算法 (0)
- 高并发架构总结 (1)
- 时事评论 (4)
- 有些话不能不说 (35)
- 琴棋书画 (0)
- 教育 (1)
- 创业需要的 (4)
- 产品经理需要的 (4)
- 小南那些青涩的文章 (9)
- 如何创新 (4)
- 历史借鉴之秦汉 (1)
- 历史借鉴之三国 (1)
- 历史借鉴之魏晋 (1)
- 历史借鉴之隋唐 (1)
- 历史借鉴之南北宋 (1)
- 历史借鉴之近现代史 (1)
- 好工具我来推荐 (4)
- 汇编 (14)
最新评论
-
bilimeng:
求教,ConcurrentHashMap不是线程安全的么,为啥 ...
架构师之jdk8-----------------ConcurrentHashMap快速构建本地缓存和单例模式 -
baiducctv5:
wtaisi 写道wtaisi 写道|||||||||
spring aop中的propagation的7种配置的意思 -
zhangdong92:
另外内存泄漏一般也不是指计算时溢出。而是指某些对象已经不再使用 ...
java基础之面试篇三---int,float,long,double取值范围,内存泄露 -
zhangdong92:
Long.MAX_VALUE应该是(2^63)-1,而不是64 ...
java基础之面试篇三---int,float,long,double取值范围,内存泄露 -
nannan408:
java-lxm 写道好湿好湿好湿谢谢: )。
游南巅之晚秋
1.假设有两个表,职员表emp(工号eno,姓名ename,工资esal)和津贴表comm(工号eno,津贴ecomm)
要求用游标完成操作:取出职员表中工资大于1000元的记录,将其工资的30%作为津贴插入
津贴表中.
declare
--定义游标;
cursor c is select eno,esal*0.3 from emp where esal>1000;
vno number;
vsal number;
begin
open c;
fetch c into vno,vsal;
while c%found
loop
insert into comm values(vno,vsal);
fetch c into vno,vsal;
end loop;
close c;
end;
2.职员表emp(工号eno,姓名ename,工资esal),用pl/sql匿名块实现输入三个员工的姓名,输出此
3人的平均工资,若平均工资低于800,则所有员工加10%工资,保证此3人平均工资不低于800
declare
vname1 varchar2(20);
vname2 varchar2(20);
vname3 varchar2(20);
vsal number;
begin
vname1:='&第1个员工姓名';
vname2:='&第2个员工姓名';
vname3:='&第3个员工姓名';
select avg(esal) into vsal from emp where ename=vname1 or ename=vname2 or ename=vname3;
dbms_output.put_line('此3人平均工资是'||vsal);
while vsal<800
loop
update emp set esal=esal*1.1;
select avg(esal) into vsal from emp where ename=vname1 or ename=vname2 or ename=vname3;
end loop;
end;
3.职员表emp(工号eno,姓名ename,出生日期birthday),创建一个函数,实现根据员工编号判断
某员工是否是童工(年龄<18岁)
create or replace function isTonggong(vno varchar2) return boolean
as
vage number;
begin
select sysdate-birthday into vage from emp where eno=vno;
if vage<18 then
return true;
else
return false;
end if;
end isTonggong;
4.假设有两个表,职员表emp(工号eno,姓名ename,工资esal)和津贴表comm(工号eno,津贴ecomm),要求
在删除职员表中记录时,自动实现津贴表中对应记录的删除
create or replace trigger delemp
after delete on emp
for each row
begin
delete from comm where eno=:old.eno;
end;
5.职员表emp(工号eno,姓名ename,出生日期birthday),
工号 varchar2(10) 主键 由入职年份和编号构成,如'2003000001'
姓名 varchar2(20)
出生日期 date
创建一个存储过程,实现插入一个新员工
create sequence empseq
start with 1
increment by 1
maxvalue 999999
cycle
cache 20;
create or replace procedure
addemp(vno out varchar2,vname varchar2,vbirth date,result out number)
as
begin
insert into emp
values(extract(year from sysdate)||lpad(empseq.nextval,6,0),vname,vbirth);
select eno into vno from emp where ename=vname;
result:=1;
exception
when others then
result:=0;
end addemp;
6.创建包,里面放入第3题的函数和第5题的存储过程,再添加一个存储过程,完成按员工姓名模糊
查询员工信息
type mycur is ref cursor;
create or replace procedure
selemp(vname varchar2,vcur out mycur,result out number)
as
vcount int;
begin
select count(*) into vcount from emp where ename like '%'||vname||'%';
if vcount>0 then
open vcur for select * from emp where ename like '%'||vname||'%';
result:=1;
else
result:=0;
end if;
exception
when others then
result:=0;
end selemp;
7.创建java项目或web项目,实现对6题包中的存储过程的调用
要求用游标完成操作:取出职员表中工资大于1000元的记录,将其工资的30%作为津贴插入
津贴表中.
declare
--定义游标;
cursor c is select eno,esal*0.3 from emp where esal>1000;
vno number;
vsal number;
begin
open c;
fetch c into vno,vsal;
while c%found
loop
insert into comm values(vno,vsal);
fetch c into vno,vsal;
end loop;
close c;
end;
2.职员表emp(工号eno,姓名ename,工资esal),用pl/sql匿名块实现输入三个员工的姓名,输出此
3人的平均工资,若平均工资低于800,则所有员工加10%工资,保证此3人平均工资不低于800
declare
vname1 varchar2(20);
vname2 varchar2(20);
vname3 varchar2(20);
vsal number;
begin
vname1:='&第1个员工姓名';
vname2:='&第2个员工姓名';
vname3:='&第3个员工姓名';
select avg(esal) into vsal from emp where ename=vname1 or ename=vname2 or ename=vname3;
dbms_output.put_line('此3人平均工资是'||vsal);
while vsal<800
loop
update emp set esal=esal*1.1;
select avg(esal) into vsal from emp where ename=vname1 or ename=vname2 or ename=vname3;
end loop;
end;
3.职员表emp(工号eno,姓名ename,出生日期birthday),创建一个函数,实现根据员工编号判断
某员工是否是童工(年龄<18岁)
create or replace function isTonggong(vno varchar2) return boolean
as
vage number;
begin
select sysdate-birthday into vage from emp where eno=vno;
if vage<18 then
return true;
else
return false;
end if;
end isTonggong;
4.假设有两个表,职员表emp(工号eno,姓名ename,工资esal)和津贴表comm(工号eno,津贴ecomm),要求
在删除职员表中记录时,自动实现津贴表中对应记录的删除
create or replace trigger delemp
after delete on emp
for each row
begin
delete from comm where eno=:old.eno;
end;
5.职员表emp(工号eno,姓名ename,出生日期birthday),
工号 varchar2(10) 主键 由入职年份和编号构成,如'2003000001'
姓名 varchar2(20)
出生日期 date
创建一个存储过程,实现插入一个新员工
create sequence empseq
start with 1
increment by 1
maxvalue 999999
cycle
cache 20;
create or replace procedure
addemp(vno out varchar2,vname varchar2,vbirth date,result out number)
as
begin
insert into emp
values(extract(year from sysdate)||lpad(empseq.nextval,6,0),vname,vbirth);
select eno into vno from emp where ename=vname;
result:=1;
exception
when others then
result:=0;
end addemp;
6.创建包,里面放入第3题的函数和第5题的存储过程,再添加一个存储过程,完成按员工姓名模糊
查询员工信息
type mycur is ref cursor;
create or replace procedure
selemp(vname varchar2,vcur out mycur,result out number)
as
vcount int;
begin
select count(*) into vcount from emp where ename like '%'||vname||'%';
if vcount>0 then
open vcur for select * from emp where ename like '%'||vname||'%';
result:=1;
else
result:=0;
end if;
exception
when others then
result:=0;
end selemp;
7.创建java项目或web项目,实现对6题包中的存储过程的调用
发表评论
-
oracle如何让表常驻内存?
2014-09-13 12:15 42031.前言。 如题。 2.如何常驻内存 摘自:http: ... -
oracle 的bug
2014-07-23 09:22 10801.前言。 后续的oracle10G以上版本的bug将集 ... -
oracle 如何查看运行的作业和关闭?
2014-01-26 18:13 74231.前言。 有很多命令的。但pl/sql10后面版本都有 ... -
oracle 绑定变量的用法
2014-01-06 15:05 12151.前言。 oracle10g后,使用绑定变量更能提高效率 ... -
oracle中聚合函数rank()使用方法
2013-01-04 12:30 1586Oracle对于rank和dense_rank已经支持合计功能 ... -
oracle连接查询(转),感觉说得比较好
2012-10-15 09:30 1066Sql 中左连接 右连接 内连接 全连接的区别 左连接是查询J ... -
oracle 如何按照in排序
2012-09-28 10:52 30381.前言 in排序有时候还是有必要的。 2.代码 select ... -
存储过程中的数组
2012-09-26 14:41 12461.存储过程中如何自定义一个数组,下面这个是最优的 1.1直接 ... -
Oracle时间计算备忘
2012-09-10 17:52 1210本文将持续更新,敬请期待 1.计算某月的某一天 select ... -
pl/sql导入导出数据问题
2012-06-20 16:00 1929pl/sql导出oracle的表数据,有三种:Or ... -
Oracle唯一索引的用处-提高并发查询效率(转)
2012-05-21 14:37 1ORACLE中主键约束跟唯一 ... -
sqlloader遇到的一些问题总结 。
2012-05-10 11:43 9298sqlloader的导入充分发挥了脚本的异步和快速的功能 ... -
oracle面试会问到的基础
2011-11-02 17:30 18851.请回答decode和sign是什么函数 deco ... -
Oracle查询优化
2010-05-29 15:35 1855尽量少用IN操作符,基 ... -
oracle复杂查询(转)
2010-05-29 15:10 1729使用 select语句和子查询 ... -
SQL查询语句大全
2010-05-29 14:30 1603一、 简单查询 简单的Tr ... -
销售管理系统全过程
2010-02-11 01:03 1562/**********************销售管理系统** ... -
如何在oracle中接收游标变量并得到值
2010-02-11 00:51 1497declare v_result number; ... -
oracle我以前的资料3.1(如何插入一条数据)
2010-02-11 00:40 1383package com.weixun.ljn; import ... -
oracle我以前的资料2.2
2010-02-11 00:38 1287/****************************** ...
相关推荐
Oracle自整理学习资料是针对数据库管理系统Oracle的一套全面学习资源,涵盖了从基础概念到高级特性的深入理解。Oracle是全球广泛使用的大型企业级关系型数据库系统,尤其在金融、电信等行业有着重要应用。本资料旨在...
学习基本的SQL语法,如SELECT、INSERT、UPDATE、DELETE语句,以及如何创建表、视图、索引、触发器和存储过程,是Oracle基础学习的重要部分。此外,PL/SQL是Oracle特有的过程编程语言,用于编写存储过程、函数和...
本资料"Oracle四大宝典之2:Oracle基本管理"将深入探讨Oracle数据库的基础知识,帮助你理解和实践数据库的日常维护。 首先,Oracle的安装与配置是基础管理的第一步。这包括选择合适的安装选项(如企业版或标准版)...
对于开发人员,理解PL/SQL编程语言也是必要的,它允许你在Oracle数据库中创建存储过程、函数和触发器。此外,理解Oracle的安全机制,如用户权限管理、角色和权限分配,也是使用Oracle客户端时必须掌握的知识。 总的...
Oracle知识库是一个全面涵盖Oracle数据库管理系统相关知识的资源集合,主要针对希望学习和掌握Oracle技术的用户。...无论你是要备考Oracle认证,还是在工作中需要提升Oracle技能,这个资源都将是一份宝贵的资料。
4. **PL/SQL编程**:Oracle的扩展SQL语言,允许编写存储过程、函数、触发器等,增强了数据库的处理能力。手册会详细介绍PL/SQL的语法、变量、流程控制结构以及异常处理。 5. **数据库对象管理**:讲解如何创建、...
Oracle导入导出工具,通常指的是Oracle Data Pump(以前称为EXPDP和IMPDP),它是Oracle 10g及更高版本中引入的一个高级数据传输机制。与传统的EXP和IMP相比,Data Pump提供了更快的速度、更大的灵活性和更丰富的...
PL/SQL 语言是 Oracle 的一种过程语言,用于编写存储过程和函数。 七、Oracle9i 数据库管理 Oracle9i 数据库管理包括数据库的建立、基本维护、性能优化、安全管理等。 八、结论 本文档提供了 Oracle 训练 ...
在Oracle数据库管理与维护过程中,正确理解并掌握`init.ora`文件的位置至关重要。该文件是Oracle实例启动时读取的重要配置文件之一,用于设置数据库运行所需的参数。本文将详细介绍如何定位`init.ora`文件的具体位置...
首先,我们要了解Oracle数据库的基本概念。Oracle数据库是一种关系型数据库管理系统(RDBMS),它以表格的形式存储数据,并通过SQL(结构化查询语言)进行数据的查询、更新和管理。Oracle9i引入了增强的SQL功能,...
4. **调度任务**:使用Oracle的DBMS_SCHEDULER或者以前的DBMS_JOB来定期运行这个脚本,确保每年或每月自动创建新分区。 5. **测试与验证**:确保脚本正确运行,新插入的数据自动进入正确的分区。 为了充分利用分区...
1. **Oracle Data Pump**:Oracle Data Pump是Oracle 10g引入的新特性,替代了以前的EXP和IMP工具,提供更高的速度和灵活性。它由两个主要组件组成:`expdp`(导出)和`impdp`(导入)。 2. **expdp命令**:`expdp`...
2. **PL/SQL**:PL/SQL是Oracle特有的过程式语言,用于编写存储过程、函数、触发器等。了解其基本语法和控制结构,如IF-THEN-ELSE、FOR循环、异常处理,以及如何在PL/SQL中调用SQL语句是基础。 3. **数据库概念**:...
- **作用**: 在早期的Oracle版本中,如Oracle 8i及以前,`svrmgrl`是一个常用的命令行工具,用于启动和停止数据库实例,以及执行其他管理任务。 - **更新**: 在Oracle 9i之后,`svrmgrl`已经被废弃,取而代之的是...
该资料是《Oracle SQL高级编程》的源代码 对应的书籍资料见: Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐) 基本信息 原书名: Pro Oracle SQL 原出版社: Apress 作者: (美)Karen Morton Kerry ...
13.2.1 Oracle9i以前版本中的外部连接的语法 13.2.2 现在的外部连接语法 13.2.3 用外部连接代替NOTIN 13.2.4 用NOTEXISTS代替NOTIN 13.3 自然连接和内部连接 13.4 UNION、INTERSECT和MINUS 13.4.1 IN子查询 13.4.2 ...
在Oracle 9i中,学习PL/SQL可以创建存储过程、函数、触发器和游标,以实现更复杂的数据管理和业务逻辑。 4. 数据库管理 学习如何创建和管理数据库对象,如表、索引、视图和存储过程,以及如何进行权限和角色管理。...
13.2.1 Oracle9i以前版本中的外部连接的语法 13.2.2 现在的外部连接语法 13.2.3 用外部连接代替NOTIN 13.2.4 用NOTEXISTS代替NOTIN 13.3 自然连接和内部连接 13.4 UNION、INTERSECT和MINUS 13.4.1 IN子查询 13.4.2 ...
在Oracle中,数据库由表、索引、视图、存储过程等组成,这些元素共同构成了数据存储和检索的框架。学习Oracle,你需要熟悉SQL的语法,包括DML(数据操纵语言)如INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如...
Oracle 9i教学资料可能是为了帮助用户理解和掌握这个系统的操作、管理和优化。 Oracle 9i的主要知识点包括: 1. **数据库安装与配置**:学习如何在不同的操作系统平台上安装Oracle 9i,包括Windows、Linux和Unix等...