plsql语法以及程序编写介绍

上传人:小** 文档编号:91695957 上传时间:2019-07-01 格式:PPT 页数:52 大小:1.60MB
返回 下载 相关 举报
plsql语法以及程序编写介绍_第1页
第1页 / 共52页
plsql语法以及程序编写介绍_第2页
第2页 / 共52页
plsql语法以及程序编写介绍_第3页
第3页 / 共52页
plsql语法以及程序编写介绍_第4页
第4页 / 共52页
plsql语法以及程序编写介绍_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《plsql语法以及程序编写介绍》由会员分享,可在线阅读,更多相关《plsql语法以及程序编写介绍(52页珍藏版)》请在金锄头文库上搜索。

1、PL/SQL语法以及程序编写介绍,一、PL/SQL介绍 PL/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问。 PL/SQL语言实现了将过程结构与Oracle SQL的无缝集成,从而为用户提供了一种功能强大的结构化程序设计语言。,二、引入PL/SQL的原因 PL/SQL语言可以将第四代语言的强大功能和灵活性与第三代语言的过程结构的优势融为一体。,三、PL/SQL内容 PL/SQL是在SQL语言中扩充了面向过程语言中使用的程序结构,如: 变量和类型(即可以予定义也可以由用户定义) 控制语句(如IF-THEN-ELSE)和循环 过程和函数 对象类型和方法

2、(PL/SQL8.0版本以上),四、变量的声明 在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明 。 C语言声明变量方式:int v_id; PL/SQL声明变量方式:v_id number; 五、变量的赋值 不能用”=”应该用”:=”, 即形式为 v_id := 5;,六、数据类型 PL/SQL主要用于数据库编程,所以其所有数据类型跟oracle数据库里的字段类型是一一对应的,常用的数据类型大体上有数字型、布尔型、字符型和日期型。 数字型 用来存储整型或者浮点型数值。范围为E-130 10E125,其声明方式为:number (precision, scale) 其中(p

3、recision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。,实际数据 定义 在oralce中的数据,7456123.89 NUMBER 7456123.89 NUMBER(9) 7456123.89 NUMBER(9,2) 7456123.89 NUMBER(9,1) 7456123.89 NUMBER(6) 7456123.89 NUMBER(7,-2) 7456123.89 NUMBER(7,2),7456123.89,7456124,7456123.89,7456123.9,溢出,7456100,溢出,布尔型 布尔型BOOLEAN

4、,用于逻辑判断,只有TRUE,FALSE两种值。 字符型 主要说明字符类型的存储格式。主要包括 char、varchar2和long等几种类型。 CHAR:用于描述定长的字符型数据,长度= 2000 字节。如果实际值不够定义的长度,系统 将以空格填充。,v_char char(10):=abcde; Length(v_char)=,10,VARCHAR2:用于描述变长的字符型数据,长度= 4000 字节。它的声明方式如下VARCHAR2(L),L为字符串长度,没有缺省值。,v_char varchar2(10):=abcde; Length(v_char)=,5,NCHAR:来存储Unicod

5、e字符集的定长字符型数据,长度= 1000 字节。它的声明方式与CHAR相同。 NVARCHAR2:用来存储Unicode字符集的变长字符型数据,长度= 1000 字节。它的声明方式与VARCHAR2相同。 LONG:用来存储最大长度为2GB的变长字符数据。,日期型 DATE:用于存储日期与时间信息。虽然日期信息也可以用字符型变量或者数字型变量来表示,但是DATE型变量有它特有的属性。每一个DATE型的数据都存储了以下信息:年、月、日、小时、分钟以秒。,TO_DATE函数 TO_DATE函数可以将一个字符型变量按照程序员的要求转换成日期型变量。,假设有一DATE类型变量v_date,现在用to

6、_date 函数将v_date赋值为2006年4月6日,V_date := to_date(2006-04-06,yyyy-mm-dd);,V_date := to_date(2006-04-06 10:10:10,yyyy-mm-dd hh24:mi:ss);,V_date := to_date(20060406,yyyymmdd);,V_date := to_date(2006/04/06,yyyy/mm/dd);,V_date := to_date(20060406101010,yyyymmddhh24miss);,V_date := to_date(2006/04/06 10,10,1

7、0,yyyy/mm/dd hh24,mi,ss);,七、条件逻辑 在PL/SQL中,可以使用命令if,else和elsif来控制可执行命令段的命令流。下面列出了可用的条件逻辑命令的格式(循环条件除外) 格式1: if then elsif then else end if;,格式2: if then if then end if; else end if; 总的说来除了格式上与C略有区别,其它都 是一样的,例:判断通过映射关系,将邮编信息填入到i_addr_zipcode字段中去 if i_area_id = 1 then i_addr_zipcode := 325200; elsif i_a

8、rea_id =2 then i_addr_zipcode := 325400; elsif i_area_id = 3 then i_addr_zipcode := 325800; elsif i_area_id = 4 then i_addr_zipcode := 325100; elsif i_area_id = 5 then i_addr_zipcode := 325600; elsif i_area_id = 6 then i_addr_zipcode := 325700; elsif i_area_id = 7 then i_addr_zipcode := 325300; elsi

9、f i_area_id = 8 then i_addr_zipcode := 325500; else i_addr_zipcode := 325000; end if;,八、循环 在一个单独的PL/SQL代码块中可以使用循环处理多个记录。PL/SQL支持三种类型的循环。,简单循环,一个重复运动的循环,直到碰到循环中的exit或者exit when语句时才结束循环,WHILE循环,一个重复运行的循环,直到满足条件才退出,FOR循环,一个重复运行指定遍数的循环,例:一个简单循环举例 i_variable := 10; i_sum := 0; loop i_sum := i_sum + i_var

10、iable; i_variable := i_variable 1; exit when i_variable0; end loop;,例:用while循环来完成上例 i_variable := 10; i_sum := 0; while i_variable 0 loop i_sum := i_sum + i_variable; i_variable := i_variable 1; end loop; ,例:用for循环来完成简单循环 i_variable := 10; i_sum := 0; for i_variable in 010 loop i_sum := i_sum + i_va

11、riable; i_variable := i_variable 1; end loop; ,九、游标 当查询返回结果超过一行时,就需要一个显式游标,也就是我们常说的游标。 常用的游标 要在程序中使用游标,大致需要以下几个步骤: 1)定义游标 2)打开游标 3)从游标中提取数据 4)关闭游标,例: i_cust_name varchar2(20); i_cust_id number(13); cursor cur_cust_info is select name,cust_id from cust where sts=A; -a begin open cur_cust_info; -b loo

12、p fetch cur_cust_info into i_cust_name,i_cust_id; -c exit when cur_cust_info%notfound; end loop; close cur_cust_info; -d end;,带参数的游标 与存储过程和函数相似,可以将参数传递给游标并在查询中使用。这对于处理在某种条件下打开游标的情况非常有用,例: i_cust_name varchar2(20); i_cust_id number(13); i_sts varchar2(10):=A; cursor cur_cust_info(p_sts varchar2) is s

13、elect name,cust_id from cust where sts= p_sts; -a begin open cur_cust_info(i_sts); -b loop fetch cur_cust_info into i_cust_name,i_cust_id; -c exit when cur_cust_info%notfound; end loop; close cur_cust_info; -d end;,REF CURSOR i_cust_name varchar2(20); i_cust_id number(13); type cur_ref is ref cursor

14、; cur_cust_info cur_ref; -a begin open cur_cust_info for select name,cust_id from cust where sts = A; -b loop fetch cur_cust_info into i_cust_name,i_cust_id; -c exit when cur_cust_info%notfound; end loop; close cur_cust_info; -d end;,十、PL/SQL程序编写 块的介绍 PL/SQL程序基本结构是块(BLOCK)所有的PL/SQL程序都是由块组成的,这些块之间还可以

15、相互嵌套。通常,程序中的每一块都实现一个逻辑操作,从而把不同的任务进行分割,由不同的块来实现 。,块的结构 DECLARE /* Declarative section - PL/SQL variables, types, cursors,and local subprograms go here. */ -声明部分 BEGIN /* Executable section - procedural and SQL statements go here.This is the main section of the block and the only one that is required. */ -执行部分 EXCEPTION /* Exception-handling section - error-handling statements go here. */

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号