收藏 分销(赏)

Oracle SQL&PLSQL课件:第16章 可执行部分.ppt

上传人:可**** 文档编号:10290649 上传时间:2025-05-17 格式:PPT 页数:23 大小:235KB
下载 相关 举报
Oracle SQL&PLSQL课件:第16章 可执行部分.ppt_第1页
第1页 / 共23页
Oracle SQL&PLSQL课件:第16章 可执行部分.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle SQL&PL/SQL,第,16,章,可执行部分,如何在,PL/SQL,块中编写可执行的代码,嵌套块应遵循的规则,如何执行和测试其中的,PL/SQL,代码,本章要点,PL/SQL,块的语法和原则,一个完整的语句可以占若干行.,词法单元分为:,分隔符,标识符,字面值,注解,PL/SQL,块的语法和原则,标识符,至多有30个字符,不能是保留字,但若保留字在双引号里则可,必须以字母开头,不允许与数据库中表的列名相同,PL/SQL,块的语法和原则,字面值,字符或日期型文字必须用单引号标识。,数字可以是简单的值,也可是用科学计数法表示的数值。,v_,ename,:=Henderson;,注释,在单行注释前加前缀双短线,(-)。,多行注释放在,/*,和,*/,之间。,举例:,.,v_,sal,NUMBER(9,2);,BEGIN,/*Compute the annual salary based on the,monthly salary input from the user*/,v_,sal,:=&p_monthly_,sal,*12;,END;-This is the end of the block,PL/SQL,中的,SQL,函数,过程语句中的有效函数,:,单行数字,单行字符,数据类型转换,日期,过程语句中的无效函数,:,DECODE,分组函数,分组函数仅在,PL/SQL,块中的,SQL,语句中适用,与,SQL,中同,PL/SQL,函数,例:,给一个公司创建一个通信地址.,把员工名转换成小写形式.,v_mailing_address:=v_name|CHR(10)|,v_address|CHR(10)|v_state|,CHR(10)|v_zip;,v_,ename,:=LOWER(v_,ename,);,数据类型转换,把数据转换成可比较的数据类型。,混合的数据类型可能会出现错误,影响性能,转换函数,:,TO_CHAR,TO_DATE,TO_NUMBER,DECLARE,v_date VARCHAR2(15);,BEGIN,SELECT TO_CHAR(,hiredate,MON.DD,YYYY),INTO v_date,FROM,emp,WHERE,empno,=7839;,END;,数据类型转换,如果,variable v_date,被声明为,DATE,型,该语句就会产生一个编译错误。,v_date:=January 13,1998;,v_date:=TO_DATE(January 13,1998,Month DD,YYYY);,使用,TO_DATE,转换函数可改正错误。,嵌套块和变量的作用域,只要可执行的语句能运行,其所在的块就能被嵌套。,一个嵌套块可看作是一个语句。,异常处理部分可以包含若干嵌套块。,一个对象的作用域是指所涉及到该对象的程序的区域。,嵌套块和变量的作用域,一个标识符只有在它的作用域中用一个不限定的名字来引用时才是可见的,:,块可以由内向外查找标识符。,块不可以由外向内查找标识符。,嵌套块和变量的作用域,.,x BINARY_INTEGER;,BEGIN,.,DECLARE,y NUMBER;,BEGIN,.,END;,.,END;,x,的范围,Y,的范围,举例,决定变量的作用域,本课习题,.,DECLARE,V_SALNUMBER(7,2):=60000;,V_COMMNUMBER(7,2):=V_SAL*.20;,V_MESSAGEVARCHAR2(255):=eligible for commission;,BEGIN.,DECLARE,V_SALNUMBER(7,2):=50000;,V_COMM NUMBER(7,2):=0;,V_TOTAL_COMPNUMBER(7,2):=V_SAL+V_COMM;,BEGIN.,V_MESSAGE:=CLERK not|V_MESSAGE;,END;,V_MESSAGE:=SALESMAN|V_MESSAGE;,END;,PL/SQL,中的运算符,逻辑运算符,算术运算符,连接运算符,控制运算符次序的括号,求幂运算符(*),与,SQL,中同,举例,为循环增量计数,.,设定一个布尔标志.,确认非空的员工号.,PL/SQL,中的运算符,v_count:=v_count+1;,v_equal:=(v_n1=v_n2);,v_valid:=(v_,empno,IS NOT NULL);,应用,NULL,时,注意以下规则:,和包含,NULL,的值进行比较时,常产生结果是,NULL,对,NULL,值使用逻辑运算符,NOT,时,结果为,NULL,在一个条件控制语句中,如果条件为,NULL,,则和它关联的语句不会被执行,PL/SQL,中的运算符,绑定变量的使用,要在,PL/SQL,中引用绑定变量,需在该变量名前加上一个冒号,(:)。,举例,VARIABLE g_salary NUMBER,DECLARE,v_,sal,emp,.,sal,%TYPE;,BEGIN,SELECT,sal,INTOv_,sal,FROM,emp,WHERE,empno,=7369;,:g_salary :=v_,sal,;,END;,/,编程准则,为了易于维护,可按照以下准则编程:,使用注释,按照惯例编写代码,按照惯例为变量或其它对象命名,缩进排版以提高可读性,习惯性命名,同名时的优先级:,本地变量名和形式参数名要优于数据库表名(同名时当作变量或参数来引用)。,列名优于本地变量名(同名时当作列名来引用)。,标识符,惯例,例子,Variable,v_name,v_,sal,Constant,C_name,c_company_name,Cursor,name_curse,emp,_cursor,Exception,e_name,e_too_many,Table Type,name_table_type,amount_table_type,Table,name_table,order_total_table,Record Type,name_record_type,emp,_record_type,Record,name_record,customer_record,SQL*Plus substitution parameter,p_name,p_,sal,SQL*Plus global variable,g_name,g_year_,sal,缩进代码,为了清晰易懂,缩进每一行的代码。,例如:,BEGIN,IF x=0 THEN,y:=1;,END IF;,END;,DECLARE,v_,deptno,NUMBER(2);,v_locationVARCHAR2(13);,BEGIN,SELECT,deptno,loc,INTOv_,deptno,v_location,FROMdept,WHERE,dname,=SALES;,.,END;,小结,PL/SQL,块结构:嵌套块和作用域规则,PL/SQL,设计:,函数,数据类型转换,运算符,绑定变量,惯例和准则,DECLARE,BEGIN,EXCEPTION,END;,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服