欢迎来到天天文库
浏览记录
ID:45331656
大小:86.00 KB
页数:19页
时间:2019-11-12
《oracle+SQL语句中匿名块的基本讲解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一节 程序块结构语言PL/SQL的组成PL/SQL块的组成PL/SQL语言以块为单位,块中可以嵌套子块。一个基本的PL/SQL块由3部分组成:定义部分(DECLARE),可执行部分(BEGIN),异常处理部分(EXCEPTION)。第二节代码块的基本结构PL/SQL代码块的最小结构是由一个begin和一个end,以及这二者之间的一条可执行的命令组成DeclareBeginNull;End;DeclareBegin--Null;End;Declare--定义变量begin--sql语句--pl/sql块exception--异常处理end;DECLAREV_VARIABLEVARC
2、HAR2(10);BEGINSELECTAAA100INTOV_VARIABLEFROMAA10WHEREAAA102=‘02’;DBMS_OUTPUT.PUT_LINE(‘V_VARIABLE的值为:’
3、
4、V_VARIABLE);EXCEPTIONWHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(‘查询表AA10出错,出错原因为:'
5、
6、SQLERRM);END;在PL/SQL中处理变量在定义部分定义和初始化变量在执行部分给变量赋新值通过参数在PL/SQL块之间传递值通过输出变量查看结果定义PL/SQL变量语法:identifier[CONSTANT
7、]datatype[NOTNULL][:=
8、DEFAULTexpr];例子:Declarev_hiredateDATE;v_deptnoNUMBER(2)NOTNULL:=10;v_locationVARCHAR2(13):=‘shanghai';c_commCONSTANTNUMBER:=1400;定义变量指导方针在PL/SQL中使用的变量、常量、游标和异常处理的名字都必须先定义后使用。定义部分是包括在关键字DECLARE和BEGIN之间的部分,每条语句后用‘;’结束。指定NOTNULL强制初始化变量使用:=或DEFAULT可以初始化变量每行只能定义一个变量如果加上关键字CONST
9、ANT,则表示所定义的标识符为一个常量,必须为它赋初值。变量的命名规则与SQL的规则基本相同,即每个标识符必须以字母开头,而且不分大小写。如果定义的标识符不能为空,则必须加上关键字NOTNULL,并赋初值。命名规则不同块的变量可以同名变量名不应该与表列同名给变量赋值语法:Identifier:=expr;例子:V_hiredate:=‘2007-03-26’;V_name:=‘TOM’;常用数据类型:VARCHAR2(maximum_length)NUMBER[(precision,scale)]DATECHAR[(maximum_length)]LONGBOOLEANBINARY_
10、INTEGERPLS_INTEGER例子:v_jobVARCHAR2(9);v_countBINARY_INTEGER:=0;v_total_salNUMBER(9,2):=0;v_orderdateDATE:=SYSDATE+7;c_tax_rateCONSTANTNUMBER(3,2):=8.25;v_validBOOLEANNOTNULL:=TRUE;%TYPE属性按照表列或先前变量定义新变量%TYPE前需要带有前缀:表和列先前定义的变量名例:DECLAREteacher_namechar(5);student_nameteacher_name%TYPE;BEGIN……ENDD
11、ECLAREnoEMP.EMPNO%TYPE;BEGIN……End;声明一个记录型变量,使它的类型与某个基本表的数据结构一致,可以使用%ROWTYPE的形式定义。DECLAREEMP_VALUEEMP%ROWTYPE;BEGIN……引用方式:EMP_VALUE.empnoEMP_VALUE.ename定义BOOLEAN变量只能将TRUE、FALSE和NULL赋给布尔变量布尔变量用逻辑操作符AND、OR和NOT连接算术、字符和日期表达式可用于返回布尔值例子:DECLAREV_BBBBOOLEAN;BEGINV_BBB:=TRUE;IFV_BBB=TRUETHENDBMS_OU
12、TPUT.PUT_LINE('aaaa');ENDIF;END;小结PL/SQL块由以下三部分组成:定义部分(可选)执行部分(必须)异常处理部分(可选)PL/SQL块的匿名块的编写:PL/SQL块中常用变量的定义及附值:替代变量以&开头,&号后面可以根数字或字符例子:DECLAREV_AVGSALVARCHAR(20);BEGINV_AVGSAL:='&4566';DBMS_OUTPUT.PUT_LINE(‘yourenteris:'
13、
14、V_AV
此文档下载收益归作者所有