- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 PL/SQ的L程序设计
PL/SQL程序设计 讲师:张浒滨;主要内容;认识PL/SQL
PL/SQL(procedure language /sql)是oracle在标准的sql语言上的扩展 ,PL/SQL不仅允许嵌入SQL语言,还可以定义变量和常量,允许使用条件控制语句和循环语句,允许使用例外处理语句处理各种异常,这样使得它的功能强大; 3.1 PL/SQL的优点;3.3 PL/SQL块结构;其中 执行部分是必须的。而END则是PL/SQL 块的结束标记。
需要注意的是DECLARE,BEGIN,EXCEPTION后面没有分号(;),而END后则必须要带有分号。
PL/SQL标识符的命名规则: 标识符的最大长度是30个字符,包括字母、数字、$、_、# ;不可包含保留字;要以字来打头;不能和同一块中的表中的字段名一样,标识符不区分大小写,TYPE与type是完全一样的;【案例】:编写一个程序块,从emp表中显示名为“SMITH”的雇员的薪水和职位。
declare
v_emp emp%rowtype;emp表中所有字段的类型
begin
select * into v_emp from emp where ename=SMITH;
dbms_output.put_line(v_emp.job||--||v_emp.sal);
//(‘员工的工作是:’||v_emp.job)
end;
执行用‘/’;【例3-1】只包含执行部分的PL/SQL块
SQL set serveroutput on 每次打开服务器都要打开
SQL begin
2 dbms_output.put_line(Welcome!);
3 end;
4 /
Welcome!
PL/SQL 过程已成功完成。
注意:当使用dbms_output.包输出数据或消息时,必须要将SQL*Plus的环境变量serveroutput 设置为on.;【例3-2】包含定义部分和执行部分的PL/SQL块
程序案例:请编写一段pl/sql程序,用于查询指定用户的薪水,要求员工编号从键盘输入,显示员工名称和对应薪水
declare
v_ename varchar2(10);
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno = aa;
dbms_output.put_line(雇员名字为:||v_ename||;其薪水为:||v_sal||。);
exception
when no_data_found
then
dbms_output.put_line(您输入的数据有误,请从新输入:);
end;
/;输入 no 的值: 7788
PL/SQL 过程已成功完成。
注意:该例中当执行该PL/SQL时,会根据输
入的学号显示雇员名字和薪水。为了临时存放
雇员编号,就必须先定义变量。 aa为PL/SQL中的替代变量。;3.4 PL/SQL基本语法;3.4.1 常量与变量;【例3-4】常量定义
declare
a constant number(10):=123;
begin
dbms_output.put_line(a);
end;
/
PL/SQL 过程已成功完成,执行结果为:;3.4.2 基本数据类型变量;3.4.3 基本数据类型变量的定义方法;3.4.4 复合数据类型变量;【案例】该程序定义了两个变量,其类型和 emp表中的 字段类型是一致的。
declare
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_ename,v_sal from emp where empno=aaa;
dbms_output.put_line(员工名称为: ||v_ename|| 他的薪水是:||v_sal);
exception
when
no_data_found then
dbms_output.put_line(您输入的员工编号找不到,请确定后从新输入,谢谢);
end;;自定义记录类型变量
很多结构化程序设计语言都提供了记录类型的数据类型,在PL/SQL中,也支持将多个基本数据类型捆绑在一起的记录数据类型。
;记录类型定义的一般格式:
定义一个记录类型的数据(类似C语言中的结构体,也类似JAVA中的类,用于存放多个变量):
declare
type emp_r
文档评论(0)