欢迎来到天天文库
浏览记录
ID:48095617
大小:207.03 KB
页数:33页
时间:2020-01-14
《Oracle编程结构.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle课程实训编程结构内容PL/SQL的结构、流程控制PL/SQL程序关键字编写匿名PL/SQL程序块PL/SQL程序的语法结构PL/SQL属于第三代语言,所以PL/SQL程序通常是以传统的程序块的方式存在的(这点可参照C、Java程序的编写方式来理解)。从语法结构上,一个PL/SQL程序通常分为以下几步:(1)程序块署名的声明(2)程序变量的声名(3)程序体书写(4)异常处理匿名程序语法格式DECLARE程序变量声明部分BEGIN程序体部分EXCEPTION异常处理部分END;由于匿名程
2、序是不需要署名的,所以在语法结构上跟通常的PL/SQL程序比较,匿名程序是不需要署名声明部分的。另外,在以上的程序结构中,除了BEGIN和END两个关键字之外,其他关键字都是可省略的。PL/SQL程序编写编写一个简单的程序,实现经典的HELLOWORLD程序。setserveroutputonsize2000;begindbms_output.put_line('HelloWorld');end;SETSERVEROUTPUTON语句来设置输出缓冲区。这条语句默认的缓冲区是2000字节。如果20
3、00字节的缓冲区不够,可以使用SETSERVEROUTPUTONSIZEVALUES语句来设置更大的缓冲区。VALUES的值为2000~1000000。该语句是个会话级别的设置,也就是说,在不断开与数据库连接的情况下,只要设置一次,在以后的程序中就不需要再进行同样的设置。输出注意:每条语句都必须以分号结尾。PUT_LINE是DBMS_OUTPUT包中的一个过程,它的参数是一个字符串。它的作用就是将一个字符串数据打印到屏幕上并且换行。如果不希望进行换行操作,可以使用PUT过程。这个过程与PUT_L
4、INE一样,都可以将字符串数据打印到屏幕上,但它没有换行的作用。另外,需要注意的问题是,使用PUT过程进行数据的输出应该使用NEW_LINE过程来刷新缓冲区,否则无法看到我们期望的数据(DBMS_OUTPUT.NEW_LINE;)。变量变量的作用:程序中的变量主要是为了存放临时性的数据。声明变量的语法格式:V_NAME变量数据类型初始化语句;PL/SQL程序中使用的所有变量必须声明到DECLARE与BEGIN之间。变量的命名规则变量名称必须是由字符开头的。变量的名称应该是由字母、数字、下划线、%
5、、#组成,不能包含其他的特殊符号。变量在使用的时候不区分大小写。变量名称的长度应该控制在30个字符以下,并尽量做到见名见意。不可使用关键字或是数据库对象的名字做变量名以避免引起二意性。变量的数据类型变量可用的数据类型有OracleSQL中定义的数据类型和PL/SQL中定义的数据类型。PL/SQL中定义的数据类型如下页所示。PL/SQL的数据类型数据类型范围子类型描述BINARY_INTEGER存储整型数据所有子类型在存放小数时都会自动四舍五入2147483648~2147483647NATUR
6、AL存放非负整数和NULLNATURALN存放非负数,声明时必须初始化POSITIVE存放正数和NULLPOSITIVEN存放正数,声明变量时必须初始化SIGNTYPE存放的值只有1、0、1PLS_INTEGER2147483648~2147483647与BINARY_INTEGER基本相同。但从数据的内部运算上和数据占用空间的角度上来看,具有更好特性BOOLEANTRUE/FALSE存储逻辑值TRUE或FALSE,无参数%TYPE基本数据类型之一用来获取表中某一字段或程序中某一个变量的类型
7、%ROWTYPE行类型数据可以用来存放表或游标的一行数据,如v_empnoemp.empno%rowtypeRECORD复合类型在使用前必须定义,类似C语言的结构体类型typerecode_type_nameisrecord(field_declaration[,field_declaration]…);TABLEOF复合类型在使用前必须定义,类似C语言的数组typetable_type_nameistableofscalar_typeindexbybinary_integer定义和使用变量DE
8、CLAREv_numberNUMBER(3):=10;v_boolBOOLEAN;v_charCHAR(20);v_varcharVARCHAR2(20):=‘iloveoracle’;BEGINv_bool:=true;v_char:=‘iloveoracle’;DBMS_OUTPUT.PUT_LINE(v_number);--DBMS_OUTPUT.PUT_LINE(v_bool);DBMS_OUTPUT.PUT_LINE(v_char);DBMS_OUTPUT.PUT_LINE(v_var
此文档下载收益归作者所有