PLSQL语法
概念
百底百科:PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。
语法
PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。
--开启打印
set serveroutput on ;
declare
--变量,常量 ,光标(游标),例外(自定义异常)
begin
-- exception 异常处理
end;
定义普通变量
--开启打印
set serveroutput on ;
declare
--变量,常量 ,光标(游标),例外(自定义异常)
psex char(3) := '男';
--pname varchar2(10) ;
pname emp.ename%type;--引用型它的类型和emp.ename保持一致,推荐使用
begin
select ename into pname from emp where empno = 7499;
dbms_output.put_line('hell world'||psex||pname);--oracle用||拼接
end;
引用型变量
-
引用型变量:推荐使用
-
记录型变量:java对象,可以用于同时保存多个变量值
Person per = new Person(1,"zs",28,11.......)
declare --变量,常量 ,光标(游标),例外(自定义异常) emp_info emp%rowtype; begin select * into emp_info from emp where empno =7788; dbms_output.put_line(emp_info.empno||'======='||emp_info.ename||'======='||emp_info.job);--oracle用||拼接 end;
选择结构
-
语法: if 条件 then end if;
-
语法:if 条件 then else end if
-
语法:if 条件 then elsif 条件 then else end if
declare pnum number :=2; begin if pnum =1 then dbms_output.put_line('一'); elsif pnum =2 then dbms_output.put_line('二'); else dbms_output.put_line('其他'); end if; end;
循环结构
-
语法:while 条件 loop … end loop;
-
loop…exit when i>5;end loop;
-
for i in 1…10;end loop;
--for循环 set serveroutput on; declare begin for x in 1 .. 5 loop dbms_output.put_line(x); end loop; end; --do while /* java例 int sum = 0; int i =1; do{ sum +=i; i++; }while(i<=5) */ set serveroutput on; declare pnum number :=1; psum number :=0; begin loop exit when pnum>5; psum := psum +pnum;--sum+=i pnum := pnum+1;--i++ end loop; dbms_output.put_line(psum); end;
-