- 浏览: 1984393 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (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 17471.当期时间前一分钟 select sysdate,s ... -
mysql 时间列自动插入当前日期时间
2012-05-09 13:46 3161用current_timestamp,不过这个默认值 ... -
oracle一些有用sql+精华
2011-11-10 16:08 1974查找数据库中所有字段 以对应的表 select C.col ... -
insert into (select from)表复制+select into from表复制
2011-10-18 17:20 12115Insert INTO table(field1,field2 ... -
***我的Oracle SQL总结!!!
2011-09-16 16:04 1517###SQL就是:1)增、删、改、查,2)排序用order b ... -
PL/SQL绿色版,不能导出表
2011-09-07 15:21 3294由于Oracle非常大,我使用Oracle绿色版的PL/SQL ... -
Oracle总结+备忘录
2011-08-30 17:52 3124#网上找到一些资料,当做我的Oracle备忘录吧! 一 ... -
Oracle的trunc()函数用法
2011-08-30 17:37 3762TRUNC()函数分两种 ... -
oracle的decode()+nvl()的使用
2011-08-26 15:33 22331.decode()函数,decode(t1.state ... -
Oracle ROLLUP和CUBE 用法
2011-07-02 14:55 1835转自wzy0623前辈:http://blog.csdn.ne ... -
order by 与 group by的区别--通俗易懂
2011-07-02 13:57 6444order by : order by 从英 ... -
oracle批量添加修改,传List方式
2011-06-15 16:52 1581insert into test1 (select id ... -
oracle中的DECODE()函数
2011-06-15 16:50 1824http://baike.baidu.com/view/113 ... -
###order by根据多个字段排序
2011-05-27 16:39 2838order by tc.productType.areaCod ... -
Oracle通配符分两种 % _ ,只要用js限制不让输入_
2011-05-26 11:53 1543在做公告查询时,用户输入 %%、 _两种都可以查询出全部数据来 ... -
Oracle中一些sql效率问题!
2011-05-23 18:14 1617转自:http://liyuntao.iteye.com/ ... -
oracle--随机查询
2011-05-14 16:59 3141转自:http://1985wanggang.blog.163 ... -
Oracle DBA 日常管理
2011-05-07 14:58 1661Oracle DBA 日常管理 =============== ... -
oracle日期函数集锦--转载
2011-04-17 17:35 42转自:http://www.iteye.com/topic/1 ... -
Oracle函数大全--转载
2011-04-17 17:33 1821转自:http://www.iteye.com/topic/6 ...
相关推荐
从给定的Oracle PL-SQL学习笔记中,我们可以提炼出一系列关键的知识点,涉及PL-SQL的基本语法、变量声明与赋值、数据类型、表操作、记录与集合处理等核心概念。下面将对这些知识点进行详细阐述: ### 1. 变量声明与...
Oracle笔记(PL-SQL)是关于数据库管理和编程的一个重要主题,主要聚焦于Oracle数据库系统中的结构化查询语言(SQL)的扩展——PL/SQL。PL/SQL是一种过程化语言,结合了SQL的功能,使得开发者能够编写复杂的数据库应用...
根据提供的文件信息,我们可以将其中的关键知识点归纳如下: ### 1. 创建无参数的Procedure(过程) 在Oracle PL/SQL中,创建一个无参数的过程(Procedure)是...这些内容为深入学习Oracle PL/SQL打下了坚实的基础。
此文本文件可能包含了从"Pudn"网站下载资源的记录或者关于Oracle知识的笔记,可能涵盖了一些实用的SQL脚本、问题解决方案或者是数据库设计的思路。 综上所述,"oracle_commond.rar"这个压缩包文件提供了Oracle...
### ORACLE_PlSql-甲骨文学习笔记 #### 一、创建表 ##### 创建表一 ```sql CREATE TABLE TABLE_NAME ( AAA INTEGER CONSTRAINT PK_TABLE_NAME PRIMARY KEY, BBB VARCHAR2(10) NOT NULL, DOB DATE, CCC VARCHAR...
这篇笔记主要聚焦于"玩转Oracle学习笔记(四)",作者通过文档分享了他在数据库管理、查询优化、数据处理等方面的经验。以下是对这些知识点的详细解析: 1. 数据库创建与连接: - Oracle数据库的安装与配置:学习...
本文主要探讨Oracle数据库的入门基础知识,特别是与索引相关的概念。 首先,我们要理解ROWID的概念。ROWID是Oracle用于标识表中每一行的一个特殊数据类型,它是一个64位的编码,包含了数据对象编号、文件号、块号...
"ORACLE笔记笔记_ZCY"很可能是某位名为ZCY的学习者在观看浪曦视频教程后整理的Oracle数据库学习笔记。浪曦可能是一个提供IT在线教育的平台,专注于数据库或相关技术的教学。 Oracle数据库系统的核心特性包括: 1. ...
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括...这本书籍将为读者提供一个全面、系统的学习路径,帮助数据库管理员、开发人员深入理解并掌握ORACLE PL/SQL的强大功能和应用技巧。
以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...
这篇笔记主要涵盖了Oracle SQL的基础知识、高级特性和实际应用技巧。 一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM...
Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...
根据提供的文件信息,我们可以归纳出以下关于Oracle PL/SQL编程的重要知识点: ...通过以上知识点的学习与实践,可以有效地掌握Oracle数据库中PL/SQL编程的核心概念和技术,从而更高效地进行数据库应用程序开发。
3. **PL/SQL**:Oracle特有的过程化语言,用于编写存储过程、函数和触发器,增强数据库的业务逻辑。 4. **数据仓库与OLAP**:Oracle提供强大的数据仓库功能和在线分析处理(OLAP)工具,支持复杂的数据分析。 5. **...
### Oracle SQL 学习笔记关键知识点详解 #### 一、SQL 并行查询 并行查询是 Oracle 提供的一种提高查询性能的技术,特别是在处理大型数据集时尤其有效。通过利用多处理器或多核 CPU 的能力,并行查询能够显著加快...
根据给定的文件信息,以下是对“PL_SQL个人学习笔记”的详细解读与扩展知识点: ### PL_SQL基础概念 PL/SQL(程序化SQL)是一种强大的过程化编程语言,用于增强Oracle数据库的功能。它将SQL命令与传统的编程语言...
PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行代码。PL/SQL可以处理复杂的数据操作和业务逻辑,支持编程结构如循环、...
### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...
- Oracle Application Express (Apex):基于Web的Oracle数据库开发工具,使用PL/SQL和Java可快速构建应用。 - JDBC驱动类型:了解 Thin 和 Thick 驱动的区别,选择合适的驱动方式连接Oracle数据库。 5. **Oracle...