- 浏览: 1977418 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (188)
- java基础 (22)
- 经验+注意 (39)
- Oracle (34)
- javaScript (28)
- jquery (24)
- iBatIS (11)
- hibernate (8)
- struts1.x (1)
- spring (1)
- SVN (1)
- myeclipse (12)
- jbmp工作流 (1)
- 其他 (22)
- 杂谈 (4)
- struts2 (5)
- css (4)
- 正则表达式 (2)
- jstl标签 (4)
- Java Tree (2)
- Jboss (1)
- json (1)
- HttpURLConnection (1)
- Apache commons工具包 (1)
- groovy+grails (2)
最新评论
-
q2425533:
Java字符串倒序输出 + 数组的排序 -
变脸小伙:
今天也跟着学习了,用到了
struts2拦截器 获得请求方法名+获得请求参数 -
tuspark:
讲解的很不错。URLConnection类的内容也可以看这篇文 ...
HttpURLConnection详解 -
wolf746773350:
...
window.location.href/replace/reload()--页面跳转+替换+刷新 -
wolf746773350:
[/flash]
window.location.href/replace/reload()--页面跳转+替换+刷新
PL/SQL基础(oracle对sql语言的扩展,类似于java语言;前后端互动,后端想知道前端要查信息必须用参数方式捕捉,即用PL/SQL可解决)
1.PL/SQL块结构(类似java类)
DECLARE 声明
...
BEGIN 开始
...
EXCEPTION 异常
...
END; 结束
/ 执行
###dos下,设置服务器输出为打开: set SERVEROUTPUT ON SIZE 10000 (最大为100万)
###保存: save c:oracle\test1.txt
###执行: @ c:oracle\test1.txt
###编辑: deit c:oracle\test1.txt (不给路径默认执行缓冲区的)
###单字段赋值:select name INTO test from aaa where name='001';//其中INTO test是将查出来得结果集赋值于test变量,*只能一个字段数据。
###多字段赋值:select * INTO myrec from aaa where a='jun';//需要用多记录
1.1变量声明内容
* 赋予变量适当名称
* 赋予变量正确数据类型
* 定义变量(标准、记录)
* 控制变量范围
1.2命名规则
* 变量由字符开头
* 可以包括:数字、下划线、'$'、'#'等
* 变量长度范围:1-30
* 大小写不区分
* 变量名不能是系统关键字select if for等
/********************1.3PL/SQL小例子***********************/
declare
x varchar2(100):='abcd';
begin
x:='hello oracle';
dbms_output.put_line('x的值为: '||x);
--dbms_output.put_line('x的值为: '||x);
end;
/
set SERVEROUTPUT ON SIZE 10000 (最大为100万)
l
/
保存: save c:oracle\test1.txt
执行: @ c:oracle\test1.txt
编辑: deit c:oracle\test1.txt (不给路径默认执行缓冲区的)
###注意:不区分大小写、赋值用':=' 、判断用'=' 、连接字符用'||' 、dbms_output包、行注释用'--' 、块注释用'/*sssss*/' 、执行用'\' 、显示缓冲区用'l'
oracle也支持z integer:=230 和 str1 string(100):='hello' 和 num number:=25;
/********************1.3PL/SQL小例子***********************/
2.分支语句(if-then分支、case分支)
/********************2.1PL/SQL小例子--if-then分支***********************/
declare
a number;
b varchar2(10);
begin
a:=2;
if a=1 then
b:='aaaa';
elsif a=2 then
b:='bbbb';
else
b:='cccc';
end if;
dbms_output.put_line('b的值为:'||b);
end;
/
/********************2.1PL/SQL小例子--if-then分支***********************/
/********************2.2PL/SQL小例子--case分支***********************/
declare
a number;
b varchar2(10);
begin
a:=2;
case
when a=1 then b:='a';
when a=2 then b:='b';
when a=3 then b:='c';
else
b:='xxxx';
end case;
dbms_output.put_line('b的值为:'||b);
end;
/
/********************2.2PL/SQL小例子--case分支***********************/
3.循环语句(loop、while-loop、for-loop、GOTO实现)
/********************3.1PL/SQL小例子--loop循环***********************/
declare
x number;
begin
x:=0;
loop
x:=x+1;
if x>=3 then
exit;
end if;
dbms_output.put_line('内: '||x);
end loop;
dbms_output.put_line('外: '||x);
end;
/
/********************3.1PL/SQL小例子--loop循环***********************/
/********************3.2PL/SQL小例子--while-loop循环***********************/
declare
x number;
begin
x:=0;
while x<=3 loop
x:=x+1;
dbms_output.put_line('内: '||x);
end loop;
dbms_output.put_line('外: '||x);
end;
/
/********************3.2PL/SQL小例子--while-loop循环***********************/
/********************3.3PL/SQL小例子--for-loop循环***********************/
begin
for i in 1..5 loop
--for i in reverse 1..5 loop
dbms_output.put_line('i: '||i);
end loop;
dbms_output.put_line('for exit');
end;
/
###注意:oracle的for循环不能实现表达式的递增,只能每次增1或减1。
/********************3.3PL/SQL小例子--for-loop循环***********************/
/********************3.4PL/SQL小例子--GOTO实现循环***********************/
declare
x number;
begin
x:=0;
<<my_xunhuan>>
x:=x+1;
dbms_output.put_line(x);
if x<3 then
GOTO my_xunhuan;
end if;
end;
/
###注意:可以加一个标签<<my_xunhuan>>,用GOTO跳转
/********************3.4PL/SQL小例子--GOTO实现循环***********************/
4.异常处理
/**********************************4.1PL/SQL小例子--系统异常处理********************************************/
declare
test varchar2(20);
begin
select name INTO test from aaa where name='001';
dbms_output.put_line(test);
exception
when NO_DATA_FOUND then
dbms_output.put_line('没有数据,出异常了');
end;
/
###注意:select name INTO test from aaa where name='001';//其中INTO test是将查出来得结果集赋值于test变量,*只能一个字段数据。
NO_DATA_FOUND为系统异常
/**********************************4.1PL/SQL小例子--系统异常处理********************************************/
/*************************************4.2PL/SQL小例子--自定义异常处理*******************************/
declare
hello varchar2(20);
e exception;
begin
select a INTO hello from aaa where a='jun';
if hello<>'B部门' then
raise e;
end if;
dbms_output.put_line(hello);
exception
when e then
dbms_output.put_line('自定义异常好使,不是B部门');
end;
/
###注意:e exception;定义异常变量、raise抛出异常、exception-->when e then引用自己的异常
/*************************************4.2PL/SQL小例子--自定义异常处理*******************************/
5.记录的使用(即复合变量,类似java中list)
/********************5.1PL/SQL小例子--记录使用***********************/
declare
type myrecord is record(
id varchar2(10),
name varchar2(20)
);
junrecord myrecord;
begin
select a,b INTO junrecord from aaa where a='jun';
dbms_output.put_line(junrecord.id ||','|| junrecord.name);
end;
/
###注意:定义记录用type类型、 声明记录junrecord myrecord;//其中junrecord为真正引用时的名、 通过junrecord.id获得记录。*记录可以多个字段数据。
/********************5.1PL/SQL小例子--记录使用***********************/
/********************5.2PL/SQL小例子--记录使用--某一字段与表类型一致***********************/
declare
type myrecord is record(
id aaa.a%type,
name varchar2(20)
);
junrecord myrecord;
begin
select a,b INTO junrecord from aaa where a='jun';
dbms_output.put_line(junrecord.id ||','|| junrecord.name);
end;
/
###注意:让记录myrecord中id的类型与aaa表a字段类型一致。
/********************5.2PL/SQL小例子--记录使用--某一字段与表类型一致***********************/
/********************5.3PL/SQL小例子--记录使用--与表名称类型都一致***********************/
declare
myrec aaa%rowtype;
begin
select * INTO myrec from aaa where a='jun';
dbms_output.put_line(myrec.b ||','|| myrec.a);
end;
/
###注意:myrec aaa%rowtype;我定义的记录与aaa表名称类型都一致 、 myrec.a引用时必须与aaa表名一致
/********************5.3PL/SQL小例子--记录使用--与表名称类型都一致***********************/
发表评论
-
Oracle时间问题
2013-04-25 16:03 17191.当期时间前一分钟 select sysdate,s ... -
mysql 时间列自动插入当前日期时间
2012-05-09 13:46 3132用current_timestamp,不过这个默认值 ... -
oracle一些有用sql+精华
2011-11-10 16:08 1929查找数据库中所有字段 以对应的表 select C.col ... -
insert into (select from)表复制+select into from表复制
2011-10-18 17:20 12086Insert INTO table(field1,field2 ... -
***我的Oracle SQL总结!!!
2011-09-16 16:04 1487###SQL就是:1)增、删、改、查,2)排序用order b ... -
PL/SQL绿色版,不能导出表
2011-09-07 15:21 3266由于Oracle非常大,我使用Oracle绿色版的PL/SQL ... -
Oracle总结+备忘录
2011-08-30 17:52 3100#网上找到一些资料,当做我的Oracle备忘录吧! 一 ... -
Oracle的trunc()函数用法
2011-08-30 17:37 3691TRUNC()函数分两种 ... -
oracle的decode()+nvl()的使用
2011-08-26 15:33 21961.decode()函数,decode(t1.state ... -
Oracle ROLLUP和CUBE 用法
2011-07-02 14:55 1809转自wzy0623前辈:http://blog.csdn.ne ... -
order by 与 group by的区别--通俗易懂
2011-07-02 13:57 6410order by : order by 从英 ... -
oracle批量添加修改,传List方式
2011-06-15 16:52 1548insert into test1 (select id ... -
oracle中的DECODE()函数
2011-06-15 16:50 1780http://baike.baidu.com/view/113 ... -
###order by根据多个字段排序
2011-05-27 16:39 2805order by tc.productType.areaCod ... -
Oracle通配符分两种 % _ ,只要用js限制不让输入_
2011-05-26 11:53 1520在做公告查询时,用户输入 %%、 _两种都可以查询出全部数据来 ... -
Oracle中一些sql效率问题!
2011-05-23 18:14 1592转自:http://liyuntao.iteye.com/ ... -
oracle--随机查询
2011-05-14 16:59 3114转自:http://1985wanggang.blog.163 ... -
Oracle DBA 日常管理
2011-05-07 14:58 1630Oracle DBA 日常管理 =============== ... -
oracle日期函数集锦--转载
2011-04-17 17:35 42转自:http://www.iteye.com/topic/1 ... -
Oracle函数大全--转载
2011-04-17 17:33 1793转自:http://www.iteye.com/topic/6 ...
相关推荐
oracle PL-SQL 学习笔记 oracle PL-SQL 学习笔记
oracle PL-SQL 学习笔记 很好的总结
Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/SQL 游标的使用 Oracle笔记 十、PL/SQL存储过程 Oracle笔记 十一、...
四、ORACLE PL/SQL简介 5 1 块结构 5 2 变量和类型 6 3 条件逻辑 6 4 循环 7 5 游标 8 №1声明一些变量,用于保存select语句的返回的列值 8 №2声明游标,并指定select语句 8 №3打开游标 8 №4从游标中获取记录 9 ...
pl/sql数据库学习笔记,包含一些基础知识,和案例代码
学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。
在介绍Oracle系统管理的知识以后,将介绍与开发相关的内容(如PL/SQL基础知识、存储过程、函数、包等),并介绍数据库性能调整,《成功之路:Oracle 11g学习笔记》重点介绍SQL语句调优。SQL语句调优是《成功之路:Oracle...
精通oracle 10g plsql 编程-学习笔记
Oracle学习笔记 脚本运行环境PL/SQL Developer ·数据库的备份与恢复 ·存储过程精简实例
最近学习Oracle时写的笔记,对于Oracle中常用的数据库对象、函数,常用语句,PL/SQL都有涉及到,学习的时候是看的动力节点的视频,其中部分知识点摘自网络
PL/SQL有三种集合 联合数组 嵌套表 可变数组 联合数组详解: 什么是数组?数组有什么特点 数据是线性存放的,在内存中地址是连续的 可以用索引来访问 定义联合数组? 联合数组不需要定义长度,他能容纳的元素最大...
韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...
oracle 教程 是我的学习笔记。 关于 存储过程(procedure) , 函数(function) 游标(curser) , 任务(job) 等都有详细的说明了实例演示, 每个实例都是经过测试的。
此文档由个人总结快速学习pl/sql的案例及说明,也是快速查询pl、sql开发的精华文档,在此提供给大家学习与查阅
oracle 学习笔记 SQL 高级SQL PL/SQL的学习笔记
成功之路 Oracle 11g 中文学习笔记 专为开发人员编写,先引导开发新手熟悉Oracle环境,然后进入数据库开发,并要掌握项目开发的一些技巧。开发技巧展示是本书一大特色(这一点很值得资深的开发人员借鉴)! 本书共24...
Oracle的学习笔记,很有用的啊!里面有sqlplus,PL/SQL.对编程的朋友很有用
精通Oracle 10g PL.SQL编程电子书及学习笔记
超完整的oracle学习笔记! 包括3部分:1、sql语句2、pl/sql编程3、其他信息等
这是oracle学习的进阶部分,笔记很详细,相信对大家会有帮助的!