资源描述:
《Oracle数据库原理与应用 姚世军 第13章 PLSQL程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章PL/SQL程序设计基础7/14/20211PL/SQL语言基础一、例子DECLARENCHAR(8);SALNUMBER(5);INUMBER(2);BEGINSELECTSALARYINTOSALFROMEMPLOYEESWHEREEMPLOYEE_ID='201';IFSAL<10000THENDBMS_OUTPUT.PUT_LINE(TO_CHAR(SAL)
2、
3、'太少');ELSEDBMS_OUTPUT.PUT_LINE(TO_CHAR(SAL)
4、
5、'还可以');ENDIF;END;7/14/20212二、PL/SQL简述
6、1.PL/SQL块及程序用PL/SQL定义块可将多个SQL编制成程序。程序是由若干块组成。2.PL/SQL块结构与用途PL/SQL块由三部分组成:定义部分:定义所处理的变量、常量、游标等。可执行部分:SQL语句及控制结构的PL/SQL语句异常处理部分:对执行过程中的错误进行处理。块可以嵌套。7/14/20213块结构:[DECLARE说明部分]BEGIN语句(SQL或PL/SQL语句)[EXCEPTION错误处理程序]END3.PL/SQL程序分类由基本PL/SQL块组成PL/SQL程序。程序有:无名块:它嵌入在某个应用中的PL/SQL块
7、。存储过程或函数:命名了的PL/SQL块,可以带7/14/20214参数,并重复调用,是数据库对象。包:是命名PL/SQL块,由一组相关的过程、函数和标识符组成。是数据库对象。触发器:与表相关联的存储过程。一表最多12个。4.PL/SQL程序运行环境可以有多个:SQLPlusWorksheet,SQLPLUS等。在SQLPLUS环境中,第一句是DECLARE或BEGIN就识别为是PL/SQL程序。它只能以“/”表示程序结束。7/14/20215三、PL/SQL基础标识符标识符是用户定义的符号串,用来命名变量、常量、过程等。标识符以字母开头
8、,后跟数字(0-9)或特殊字符$、#和_。长度不超过30,不能是PL/SQL的保留字,不能有空格。例1:合法标识符:A34、BB#,D_123DF不合法标识符:5A$、#ABC、END。2.变量及变量说明变量是表示要处理数据项的名称。变量名用标识符来表示。变量在使用之前必须用DECLARE进行说明。7/14/20216变量说明:变量名[CONSTANT]类型[NOTNULL][:=值][DEFAULTSQL表达式];例1:DECLAREaachar(5)notnull:=‘TEST’;bbnumber(3)default5;ccchar(
9、4):='THIS';ddconstantchar(4):=‘SWJ’;--不能赋值beginDBMS_OUTPUT.PUT_LINE(aa
10、
11、''
12、
13、to_char(bb)
14、
15、''
16、
17、cc
18、
19、''
20、
21、DD);end;说明:非空时要有初始值,NOTNULL在前,缺省值在后;每个变量说明占一行,且以分号“;”结束。变量说明要在DECLARE以后,BEGIN之前。7/14/20217变量或常量类型数值型:NUMBER(p,s),INTEGER,FLOAT,DEC字符型:CHAR(n),VARCHAR2(n),RAW(n)日期型:DATE布尔型
22、:BOOLEAN(TRUE或FALSE)大数据类型:BFILE,BLOB,CLOB,NCLOB4.数据类型转换显示转换:TO_CHAR(),TO_NUMBER(),RAWTOHEX(),,HEXTORAW(),ROWIDTOCHAR(),TO_DATE()7/14/202185.函数7/14/202196.表达式表达式是由变量、常量、列名、函数和运算符结合的有意义式子。数值表达式:数值运算符、变量、常量、函数等数值运算符:+、-、*、/、**、()例2:DECLAREAINT:=4;BFLOAT:=4.324;XFLOAT;BEGINX:
23、=SIN(3)*10+2**8-A*10*(10-B**2);DBMS_OUTPUT.PUT_LINE(TO_CHAR(X));END;7/14/202110字符表达式:字符运算符:
24、
25、(合并)关系表达式:关系表达式的结果是TRUE和FALSE关系运算符:<>!=<><=>==LIKEINBETWEEN…AND…<表达式><关系运算符><表达式>例3:ABC>‘123’123<>345‘THIS’LIKE‘T%’XBETWEEN10AND20‘A’IN(‘SS’,’DD’,’AD’)FALSESIN(X)+10>A**2+B7/14/20
26、2111逻辑表达式逻辑运算符:NOTANDOR<关系表达式><逻辑表达式><关系表达式>例4:NOT(A>10ANDB<10)A+10>100ANDCCCLIKE‘C%’例5:DECLAREA