1. PL/SQL 程序由三个块组成,即声明部分、执行部分、异常处理部分。
PL/SQL 块的结构如下:
DECLARE /声明部分:在此声明 PL/SQL 用到的变量,类型及游标,以及局部的存储过程和函数/
BEGIN /执行部分:过程及 SQL 语句,即程序的主要部分/
EXCEPTION /执行异常部分:错误处理/
END;
2.
---------------------------- 取出表中某些字段的值,取得是其中的某条记录-----------
declare
lx_name varchar2(48);
lx_age number;
lx_register date;
lx_id varchar2(48);
begin
select id,name,register_time,age into lx_id,lx_name,lx_register,lx_age from person where id=1;
--查询表中某条数据
dbms_output.put_line('id '||'name '||'register '||'age');
dbms_output.put_line(lx_id||' '||lx_name||' '||lx_register||' '||lx_age);
--输出变量的数据
end;
---------------------------- 使用循环while--------------------------------------
DECLARE
x number;
BEGIN
X:=0;
WHILE x<=3 LOOP
X:=x+1;
DBMS_OUTPUT.PUT_LINE('内: x='||x);
END LOOP;
DBMS_OUTPUT.PUT_LINE('外: x='||x);
END;
----------------使用if ..else--------------------------------------------------
DECLARE
a number;
b varchar2(10);
begin
a:=3; --赋值
IF a=2 THEN
b:='A';
elsif a=3 then
b:='B';
ELSE
b:='C';
END IF;
DBMS_OUTPUT.PUT_LINE('b的值是: '||b);
end;
---- -------------if ...elsif ...else 的练习--------------------------
declare
a number;
begin
a:=2;
if a=1 then
DBMS_OUTPUT.PUT_LINE('a==1');
elsif a=2 then
DBMS_OUTPUT.PUT_LINE('a==2');
else
DBMS_OUTPUT.PUT_LINE('a!=1');
end if;
end;
---------------loop语句--------------------------------------------------
DECLARE
x number;
BEGIN
x:=0;
LOOP
x:=x+1;
IF x>=3 THEN
EXIT;
END IF;
DBMS_OUTPUT.PUT_LINE('内: x='||x);
END LOOP;
DBMS_OUTPUT.PUT_LINE('外: x='||x);
END;
-------------使用for 循环,reverse 放到in 前面,就是降序-------------------------
declare
x number;
begin
for x in 1..5 loop
DBMS_OUTPUT.PUT_LINE('x='||x);
end loop;
end;
---------------------------------------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:='Others';
END CASE;
DBMS_OUTPUT.PUT_LINE('b的值是: '||b);
END;
-------------------------------记录类型------------------------------------
相当于C语言里面的结构体。就是一种类型,类似于oracle 里面的number ,String 等数据类型一样。
DECLARE
----声明
TYPE myrecord IS RECORD
(
id varchar2(10),
name varchar2(10)
);
--- 使用该声明类型
real_record myrecord;
begin
--- 给变量real_record赋值
SELECT id, name INTO real_record FROM person WHERE id='1';
---- 打印real_record 里面的数据
DBMS_OUTPUT.PUT_LINE(real_record.id||' '||real_record.name);
end;
-------------------------- 行类型,是拿出整行的数据,是所有的字段数据 --------
declare
a person%rowtype; -- 格式: 变量名 表名%rowtype
begin
SELECT * INTO a FROM person where id=1;
DBMS_OUTPUT.PUT_LINE(a.id||' '||a.name);
end;
--------------------------游标--------------------------------------------------
1. 什么是游标?
游标是一种PL/SQL控制结构,可以对SQL语句的处理进行显示控制,便于对表的行数据一行一行进行处理。
2. 游标分类?
显式游标: 以声明的方式显式使用。
隐式游标: 对一条的SQL语句自动创建一个隐式游标。
declare
--CURSOR mycursor IS SELECT * FROM person; 声明游标,指定游标指向的表,默认表的第一行.查询所有的数据出来,
CURSOR mycursor(lx_age number) IS SELECT * FROM person where age=lx_age; ----查询与参数匹配数据出来,
rowtest person%rowtype; ----声明行类型
begin
open mycursor(32); ---- 打开游标,在这里传参数。
fetch mycursor into rowtest;
while mycursor%found loop --当游标有下一行时进行循环
DBMS_OUTPUT.PUT_LINE(rowtest.id||' '||rowtest.name);
fetch mycursor into rowtest;
END LOOP;
close mycursor; ---关闭游标
end;
----------------------------游标的模糊查询--------------------------------------
declare
CURSOR mycursor(lx_name varchar2) IS SELECT * FROM person where name like lx_name;
----lx_name 不能指定该变量的大小
rowtest person%rowtype;
begin
open mycursor('%b%'); ---- 打开游标,在这里传参数,'%'就相当于一个通配符
fetch mycursor into rowtest;
while mycursor%found loop --当游标有下一行时进行循环
DBMS_OUTPUT.PUT_LINE(rowtest.id||' '||rowtest.name);
fetch mycursor into rowtest;
END LOOP;
close mycursor; ---关闭游标
end;
分享到:
相关推荐
**标题与描述**:本文档围绕“Oracle 9i PL/SQL程序设计笔记”这一核心主题,深入探讨了PL/SQL语言的基础知识及其在Oracle 9i数据库环境中的应用。 **关键词**:Oracle 9i、PL/SQL #### PL/SQL程序结构详解 **2.1...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计...通过实践和学习"Oracle PL/SQL实战(待续)"的相关内容,我们可以提升在Oracle环境中解决问题的能力,更好地管理和优化数据库系统。
"Oracle资料学习PL/SQL必备"这个主题涵盖了对Oracle数据库系统以及PL/SQL编程语言的学习资源,特别是针对那些希望深入理解并掌握PL/SQL的初学者或专业人士。PL/SQL的基础部分是了解和使用Oracle数据库的关键,它包括...
通过深入学习Oracle 10g PL/SQL,不仅可以掌握数据库编程的基本技能,还能了解如何利用这些技能来设计和实现复杂的业务逻辑,优化数据库性能,以及更好地维护和管理Oracle数据库系统。本教程涵盖了所有这些关键知识...
本书以Oracle的最新版本12c为基础,呈现的是最新的PL/SQL技术,这一点也优于已出版的同类书.全书以一个综合性的人力资源项目为驱动,不仅能将各个理论知识点很好地融入实践,而且还能让读者体验完整的项目实操过程...
Oracle中的PL/SQL是一种强大的编程语言,它是Oracle数据库与应用程序之间的桥梁,专为数据库操作而设计。PL代表“过程化语言”(Procedural Language),SQL则是“结构化查询语言”(Structured Query Language)。...
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括...这本书籍将为读者提供一个全面、系统的学习路径,帮助数据库管理员、开发人员深入理解并掌握ORACLE PL/SQL的强大功能和应用技巧。
Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...
oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料
以下是对"Oracle PL/SQL学习官方教材"中可能包含的主要知识点的详细解释: 1. **基础概念**:首先,教材会介绍PL/SQL的基本概念,包括块(Block)、变量(Variable)、常量(Constant)、数据类型(Data Types)和...
《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...
总结起来,"Oracle PL/SQL实例精解 数据库建立代码"涵盖了数据库设计、对象创建、索引优化以及数据插入等多个方面,是学习和提升Oracle数据库管理技能的宝贵资源。通过解析和执行这些示例,开发者可以更好地理解和...
### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 ...本书不仅覆盖了PL/SQL的基础知识,还包括了大量的实战经验和高级主题,对于想要深入了解和掌握Oracle数据库的读者来说是非常宝贵的资源。
《Oracle 8i PL/SQL高级程序设计》这本书很可能详细阐述了这些内容,不仅包含基础概念,还可能涉及到了更复杂的主题,如包(PACKAGE)、触发器(TRIGGER)、数据库链接(DBLINK)和分布式数据库操作等。通过深入阅读...
PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...
总的来说,"Oracle PL/SQL 实例精解(第4版)"是一本全面的教程,不仅介绍了PL/SQL的基础,还涵盖了高级主题和实践案例,对于希望提升Oracle数据库编程技能的开发者来说,是一本不可多得的参考书籍。配合源码脚本,...
总的来说,学习并熟练掌握Oracle Database 12c的PL/SQL开发不仅能够提升数据库管理能力,还能为构建高效、稳定且易于维护的企业级应用打下坚实的基础。而"Oracle Database 12c PL/SQL开发指南(第7版)"的源代码示例...
通过学习这些内容,开发者可以掌握Oracle PL/SQL的高级特性,从而设计和实现更高效、更稳定的数据库应用程序。无论你是数据库管理员、系统架构师还是开发人员,这本书都将为你提供宝贵的指导,助你在Oracle数据库...
本书是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验、范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性。作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度...