设为首页 加入收藏

TOP

PL/SQL编程基础简介及实践(一)
2018-03-18 16:21:36 】 浏览:197
Tags:PL/SQL 编程 基础 简介 实践

PL/SQL编程基础简介及实践


1、开始(p1~p2)
2、背景介绍(p3)
3、特性优点(p4~p5)
4、使用说明(p6)
5、语法结构(p7)
6、命名参考(p8~p9)
7、复合类型(p10~p16)
8、运算符(p17)
9、流程控制语句(p18~p28)
10、异常和错误处理(p29~32)
11、函数与存储过程(p33~p41)
12、结束(p42)


3、特性优点
1、提高运行效率
 可以将大量数据的处理放在服务端,减少数据在网络上的传输时间。
2、客户端
 可以在客服端执行本地的PL/SQL,或通过向服务器发送SQL命令或激活服务器端来运行PL/SQL程序。
3、支持过程化
 可嵌入SQL语句,及使用各种类型的条件分支语句和循环语句。
4、支持模块化
 可通过使用程序包、过程、函数、触发器等将各类处理逻辑分开,方便管理。
5、支持处理异常
 可通过使用自定义异常或使用内置的异常,来处理代码中可能发生的异常,提高代码的健壮性。
6、提供大量内置程序包
 可使用Oralce内置程序包,从而更加方便的处理数据及业务流程。
7、其他:更好的性能、可移植性和兼容性、可维护性、易用性等。


4、使用说明
1、允许的语句:
 可使用INSERT、UPDATE、DELETE、SELECT INTO、COMMIT、ROLLBACK、SAVEPOINT语句,在PL/SQL中需要以动态的方式使用DDL(CREATE、ALTER、DROP、TRUNCATE)语句。
2、 运行的方式:
PL/SQL可在SQL*PLUS、高级语言、 ORACLE开发工具中使用(如:SQL Developer或Procedure Builder等。
3、运行的过程:
PL/SQL程序的运行是通过Oracle中的一个引擎来进行的。这个引擎可能在Oracle服务器端,也可能在 Oracle 客户端。引擎执行PL/SQL中的过程性语句,然后将SQL语句发送给数据库服务器来执行,再将结果返回给执行端。


5、语法结构
1、PL/SQL组成:由3部分组成:声明部分、执行部分、异常处理部分。
2、结构说明:
--声明部分:声明用到的常量、类型、游标、局部的存储过程、函数
declare

--执行部分:具体的SQL语句,包含处理的流程。
begin

--异常部分:针对异常处理的SQL语句。
exception

end;


6、命名参考
1)标识符:
 不区分大小写、不能包含减号(-)、首字符必须为字母,不能是SQL保留字、不能超过30个字符。
2)命名参考:
程序变量:v_name v_orderId 程序常量:c_name c_cityId 游标变量:cursor_name cursor_storeId 异常标示符:e_name e_agentId 记录类型:name_record test_city_record 绑定变量:g_name g_userId 错误:e_error
3)数据类型:(5大类)
1字符类型(CHAR、NCHAR 、VARCHAR、 VARCHAR2、 NVARCHAR2)、2数字类型(NUMBER 、INTEGER 、BINARY_FLOAT 、BINARY_DOUBLE)、3时间类型(DATE 、TIMESTAMP 、INTERVAL YEAR 、INTERVAL DAY)、4大对象类型(BLOB 、CLOB 、BFILE 、NCLOB)、5其他类型(LONG 、RAW LONG RAW 、ROWID 、UROWID) 。


bfile(moive):存放大的二进制数据对象,表中只存放文件的目录。大小<=4GB
blob(photo):存放大的二进制数据对象的位置,位置指向二进制对象的数据块。大小<=4GB
clob(book):存放大的字符数据对象的位置,位置指向字符的数据块。大小<=4GB
nclob(ncahr字符数据):存放大的nchar字符数据对象的位置,位置指向nchar字符的数据块。大小<=4GB
4)变量声明
v_flag boolean not null default false;
identifier [constant] datetype [not null] [:=value|default value |expression]
identifier:变量名称
datetype:变量类型
:=value 变量或常量的初始值
default value:默认值
expression 为函数 其他变量、文本值等
5)注释
--单行注释/*多行注释*/


7、复合类型介绍
1、复合类型:(记录类型、数组类型、一维表类型、二维表类型)
1)记录类型:记录类型类似于c语言中的结构数据类型,它把逻辑相关的、分离的、基本数据类型的变量组成一个整体存储起来,它必须包括至少一个标量型或record 数据类型的成员,称作pl/sql record 的域(field),其作用是存放互不相同但逻辑相关的信息。在使用记录数据类型变量时,需要先在声明部分先定义记录的组成、记录的变量,然后在执行部分引用该记录变量本身或其中的成员。
type record_name is record(
 v1 data_type1 [not null] [:= default_value ],
 ...
 vn data_typen [not null] [:= default_value ] );
2)说明:%type:表示变量的数据类型与表对应的列的类型一致
%rowtype:表示变量的数据类型与表对应的所有列的类型一致
可以不用知道列的数据类型、当列的数据类型改变后,修改pl/sql代码
被赋值的变量与select中的列名要一一对应。


declare
 id varchar2(32); --证件号码
province varchar2(10); -省份编号
city varchar2(10); --城市编号
district varchar2(10); --区域编号


--定义省份、城市、区域编号记录表对象
type base_info_type is record(
 province base_info.province%type,
 city base_info.city%type,
 district base_info.district%type);


sp_record base_info_type;


begin
 id := sys_guid();
--查询出关联的省份编号、城市编号、区域编号信息
select province, city, district
 into sp_record
 from base_info bi
 where bi.store_id = 'storeId ′ ;??更新省份编号、城市编号、区域编号信息updatetest h ousefohsetfoh.province=sp r ecord.province,foh.city=sp r ecord.city,foh.region=sp r ecord.district,foh.address= ′ 商务路 ′ ||lpad(abs(dbms r andom.random),4,dbms r andom.string( ′ x ′ ,2))wherefoh.order i d= ′  storeId′;??更新省份编号、城市编号、区域编

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle 18C 建库提示 ORA-12754 .. 下一篇MySQL中的DDL(Data Definition La..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目