PLSQL程序设计(基础篇)
- 格式:doc
- 大小:224.50 KB
- 文档页数:49
PLSQL编程基础--PL/SQL PROCEDURAL LANGUAGE /SQL/*块结构变量和类型条件循环游标过程函数包*/--块结构/*pl/sql程序的基本单元是语句块。
所有pl/sql程序都是由语句块组成的:顺序或嵌套。
语句块的两种类型:匿名的和命名的。
匿名语句块:通常是动态⽣成的,它只能执⾏⼀次。
命名语句块:是指具有名字的语句块。
声明部分:变量声明 delcare执⾏部分:begin异常处理部分:exceptionend命名语句块包括:1)标号语句块,⼀种带有标号的匿名语句块,该标号为该语句块指定了⼀个名字。
动态⽣成,只能执⾏⼀次。
2)⼦程序,包括过程和函数。
3)触发器。
*/--匿名语句块DECLAREv_print INT := 1;BEGINdbms_output.put_line('v_print = '||v_print); 打印END lbl_1;/--带有标号的命名语句块,放在DELARE前⾯<>DECLAREv_print INT := 1;BEGINdbms_output.put_line('v_print = '||v_print);END lbl_1;/--存储过程CREATE OR REPLACE PROCEDURE p_1 ASv_print INT := 1;BEGINdbms_output.put_line('v_print = '||v_print);END p_1;/--基本块结构/*三个基本的部分:声明部分、执⾏部分和异常处理部分。
执⾏部分是必须的,其他部分可选。
declare_statements包含在声明块中,它负责该声明块其他部分将会使⽤的变量。
executable_statements是块中实际可以执⾏的语句,包括条件、循环等语句exception_handle_statements 负责处理可执⾏语句中可能发⽣的任何错误。
实验5PL/SQL编程基础【实验目的与要求】⏹掌握PL/SQL基本语法⏹掌握PL/SQL流程控制方法及相关语句的编写【实验内容与步骤】5.0.实验准备工作1.测试用表的创建与数据添加(1).创建测试表Create Table TESTTABLE(RECORDNUMBER number(4)Not Null,CURRENTDATE Date Not Null)Tablespace"USER";--这里的表空间其实可以省去,这样它就会在当前用户的表空间中创建一个表(2).使用for语句在测试表中加入测试数据Declaremaxrecords Constant Int:=20;i Int:=1;BeginFor i In1..maxrecords LoopInsert Into scott.TESTTABLE(recordnumber,currentdate)--scott 为模式名,应根据实际改动Values(i,Sysdate);dbms_output.put_line('现在输入的内容是:'||i||''||Sysdate);Commit;--这里要commit否则将不会将数据提交到表中End Loop;dbms_output.put_line('记录已经按照计划全部插入,请查看!');End;//注:scott为登录用户名,需根据情况改动.(3).查询表中数据,给出查询结果截图:5.1.最简单的PL/SQL程序1.输出"Hello,World"/***************************************第一个例子:输出"Hello,World"***************************************/set serverout on--设置SQL*Plus将服务器所返回的写出来begin--块开始DBMS_OUTPUT.put_line('Hello,World');--在控制台输出信息,类似C语言的Printf或者java语言中的System.out.print end;--块结束运行结果为:2.接收数据并输出/***************************************在此基础上,完成Hello,某某,某某从客户端得到***************************************/declarev_name varchar2(20);begin--块开始v_name:='&v_name';--与“客户端”交互,类似C语言的scanf语句DBMS_OUTPUT.put_line('测试结果为:Hello,'||v_name);end;--块结束运行结果为:5.2.简单变量的使用1.变量的声明与引用set serveroutput on;--PL/SQL变量之简单类型declarev_dept_id number(5):=1111;v_age binary_integer:=12;v_dept_name varchar2(20):='人事部';v_rate constant number(4,2):=22.12;v_valid boolean not null:=TRUE;v_hire_date date not null:=sysdate+7;beginv_dept_id:=2222;dbms_output.put_line(v_dept_id);end;/运行结果为:2.Into子句赋值的使用:declarev_deptno number(2);v_loc varchar2(15);beginselect deptno,locinto v_deptno,v_locfrom deptwhere dname='SALES';--这要求结果有且仅有一条记录DBMS_OUTPUT.PUT_LINE(V_deptno||'and'||v_loc);--输出end;运行结果为:实验练习:编写一PL/SQL程序,实现依次从客户端(键盘)接收各字段的值,并放于变量中,输完一条记录的所有字段值后,将值写到数据库表Emp中。
PL/SQL程序设计目录第一章PL/SQL 程序设计简介 (4)§1.2SQL与PL/SQL (4)§1.2.1 什么是PL/SQL? (4)§1.2.1 PL/SQL的好处 (4)§1.2.2 PL/SQL 可用的SQL语句 (5)§1.3运行PL/SQL程序 (5)第二章PL/SQL块结构和组成元素 (6)§2.1PL/SQL块 (6)§2.2PL/SQL结构 (6)§2.3标识符 (6)§2.4PL/SQL变量类型 (7)§2.4.1 变量类型 (7)§2.4.2 复合类型 (9)§2.4.3 使用%ROWTYPE (11)§2.4.4 LOB类型* (11)§2.4.5 Bind 变量 (12)§2.4.6 INDEX BY TABLES (12)§2.4.7 数据类型的转换* (14)§2.5运算符和表达式(数据定义) (14)§2.5.1 关系运算符 (14)§2.5.2 一般运算符 (14)§2.5.3 逻辑运算符 (14)§2.6变量赋值 (15)§2.6.1 字符及数字运算特点 (15)§2.6.2 BOOLEAN 赋值 (15)§2.6.3 数据库赋值 (15)§2.6.4 可转换的类型赋值 (16)§2.7变量作用范围及可见性 (16)§2.8注释 (17)§2.9简单例子 (18)§2.9.1 简单数据插入例子 (18)§2.9.2 简单数据删除例子 (18)第三章PL/SQL流程控制语句 (19)§3.1条件语句 (19)§3.2CASE表达式 (20)§3.3循环 (20)§3.3标号和GOTO (22)§3.4NULL语句 (23)第四章游标的使用 (24)§4.1游标概念 (24)§4.1.1 处理显式游标 (24)§4.1.2 处理隐式游标 (27)§4.1.3 游标修改和删除操作 (28)第五章异常错误处理 (30)§5.1异常处理概念 (30)§5.1.1 预定义的异常处理 (30)§5.1.2 非预定义的异常处理 (31)§5.1.3 用户自定义的异常处理 (32)§5.1.4 用户定义的异常处理 (33)§5.2异常错误传播 (35)§5.2.1 在执行部分引发异常错误 (35)§5.2.2 在声明部分引发异常错误 (35)§5.3异常错误处理编程 (36)§5.4在PL/SQL中使用SQLCODE,SQLERRM (36)第六章存储函数和过程 (38)§6.1引言 (38)§6.2创建函数 (38)§6.3存储过程 (41)§6.3.1 创建过程 (41)§6.3.2 调用存储过程 (42)§6.3.3 开发存储过程步骤 (44)§6.3.4 与过程相关数据字典 (45)第七章包的创建和应用 (46)§7.1引言 (46)§7.2包的定义 (46)§7.3包的开发步骤 (47)§7.4包定义的说明 (47)§7.5子程序重载 (50)§7.6删除过程、函数和包 (52)§7.7包的管理 (52)第八章触发器 (53)§8.1触发器类型 (53)§8.1.1 DML触发器 (53)§8.1.2 替代触发器 (53)§8.1.3 系统触发器 (53)§8.2创建触发器 (53)§8.2.1 触发器触发次序 (55)§8.2.2 创建DML触发器 (55)§8.2.3 创建替代(Instead_of)触发器 (56)§8.2.3 创建系统事件触发器 (57)§8.2.4 系统触发器事件属性 (57)§8.2.5 使用触发器谓词 (58)§8.2.6 重新编译触发器 (59)§8.3删除和使能触发器 (59)§8.4触发器和数据字典 (59)§8.5数据库触发器的应用举例 (60)第一章PL/SQL 程序设计简介PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。
第二章PL/SQL基础第二章PL/SQL基础一、字符集在PL/SQL程序中,允许出现的字符集包括:1.大小写字母(A-Z和a-z)2.数字(0-9)3.符号( ) + - * / < > = ! ~ ^ ; : . ’ @ % , " # $ & _ | { } ? [ ]4.制表符、空格和回车符PL/SQL对大小写不敏感,所以,除了在字符串和字符中,小写字母和它对应的大写字母是等价的。
二、词法单元PL/SQL 包含很多词法单元(lexical unit),大致可以分为以下几类:1. 分隔符(简单符号和复合符号)2. 标识符,其中包括关键字3. 文字4. 注释为改善可读性,我们可以用空格将词法单元分隔开。
实际上,我们必须将相邻的两个标识符用空格或标点符号隔开。
下面这样的写法是不允许的,因为关键字END 和IF 连到一起了:IF x > y tdEN high := x; ENDIF; -- not allowed还有,除了字符串和注释以外,我们不可以在词法单元中嵌入空格。
例如,像下面的赋值符号中间就不用被分开: count : = count + 1; -- not allowed为了让层次结构清楚,我们可以用回车符来换行,空格或制表符来进行缩进。
比较一下下面两段IF 语句的可读性:IF x>y tdEN max:=x;ELSE max:=y;END IF ; IF x > y tdENMAX := x;ELSEMAX := y;END IF ;1、分隔符分隔符是对PL/SQL 有着特殊意义的简单或复合的符号。
例如,我们使用加号和减号这样的分隔符来表现数学运算。
简单分隔符只有一个字符。
符号含义 + 加法操作符% 属性指示符’字符串分隔符 .组件选择器 /触法操作符 (表达式或列表分隔符 )表达式或列表分隔符 :主变量指示符 ,分隔符 * 多应用程序操作符" 引用标识符分隔符= 关系操作符< 关系操作符> 关系操作符@ 远程访问指示符; 语句终结符- 减号/负号操作符复合分割符由两个字符组成。