PL/SQL Developer的编程基础知识
1. 程序结构 PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。
如下所示为一段完整的PL/SQL块:
/*声明部分,以declare开头*/
declare v_id integer;v_namevarchar(20);
cursor c_emp is select * from employee where emp_id=3;
/*执行部分,以begin开头*/
begin open c_emp; //打开游标
loopfetch c_emp into v_id,v_name; //从游标取数据
exit when c_emp%notfound ;
end loop ;close c_emp; //关闭游标
dbms_output.PUT_LINE(v_name);
/*异常处理部分,以exception开始*/
exceptionwhen no_data_found thendbms_output.PUT_LINE('没有数据');
end ;
2. 控制结构 PL/SQL程序段中有三种程序结构:条件结构、循环结构和顺序结构。
1) 条件结构 与其它语言完全类似,语法结构如下: if condition thenstatement1elsestatement2end if ;
2)循环结构这一结构与其他语言不太一样,在PL/SQL程序中有三种循环结构: a. loop … end loop;b. while condition loop … end loop;c. for variable in low_bound . .upper_boundloop … end loop;其中的“…”代表循环体。
3)顺序结构实际就是goto的运用,不过从程序控制的角度来看,尽量少用goto可以使得程序结构更加的清晰。
3. 变量声明与赋值 PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。
number 用来存储整数和浮点数。范围为1e130~10e125,其使用语法为: number[(precision, scale)] 其中(precision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。
varchar2 用来存储变长的字符串,其使用语法为: varchar2[(size)] 其中size为可选,表示该字符串所能存储的最大长度。 在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为: v_id number; 如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为: v_id :=5;
4. SQL基本命令 PL/SQL使用的数据库操作语言还是基于SQL的,所以熟悉SQL是进行PL/SQL编程的基础。SQL语言的分类情况大致如下:
1)数据定义语言(DDL):Create,Drop,Grant,Revoke,…
2)数据操纵语言(DML):Update,Insert,Delete,…
3)数据控制语言(DCL):Commit,Rollback,Savapoint,…
4) 其他:AlterSystem,Connect,Allocate, …
具体的语法结构可以参阅其他关于SQL语言的资料,这里不再赘述。