Oracle之PL/SQL

基础语法

[declare

  --定义部分]

begin

--执行部分

[exception

  --异常处理部分]

end;

其中,定义部分以declare开始,该部分是可选的;执行部分以begin开始,该部分是必须的

异常部分以exception开始,该部分是可选的.而end则是pl/sql块的结束标记.

注意我使用的Oracle安装时自带的 SQL Plus请注意第一行命令.否则控制台不输出内容.

当结束时,请输入 / 然后回车.

常用变量类型

char() varchar2() number() date;

运算符与表达式

if分支语句

if 条件 then

  执行语句;

elsif 条件 then

  执行语句;

else

  执行语句;

end if;

(这个写法去掉 then 和java中的 if else if  else 一样.看起来好恶心的语法 )记得最后end if; 结尾

切记 除了 else 分支其他分支都要带 then

case语句

case 条件

when 值 then 执行语句

when 值 then 执行语句

....

else 执行语句

end;

 case 是可以有返回值的.

 将 case 的执行结果赋值给 b; 但是,如果我们让case 有返回值,在case语句结束后就不能是 end case;而只能是end;

循环语句

基本循环

loop

执行体

exit when 条件;

end loop;

注意!这种写法,执行体肯定会执行一次.而 exit 中的条件满足是 停止循环.

 

 程序自上而下执行.

while循环

while 条件 loop

循环体

end loop;

 for循环

for  被循环结果赋值 in [reverse]  开始..结束 loop

循环体

end loop;

 可以看出for循环的 执行顺序是 判断开始和结束条件.满足赋值给 i.执行循环体,然后再次判断.

for循环中的 i 可以不被声明. 开始条件和结束条件也可以是变量,但是只能是number类型

但是如果被赋值的变量不存在.则无法在循环调用结束后使用该变量.

 reverse 的作用则是 ++ 变成 --

goto语句一个破坏力极强的语句

goto 将跳转到 定义好的 标记处.设置标记的 符号为 <<标记>>

null

null特殊的很.首先两个null不相等 null本身不等于null ,判断是否为null 只能使用 is null

复合变量

标准变量只可以保存单个数值,与之对应的就是复合变量.复合变量可以将不同数据类型的多个值

存储在同一个单元中.

%type变量

此变量为不确定类型的变量.变量的具体类型由赋值给他的表字段类型一致.

使用 select into 语句可以将查询出来的值赋值给变量;但是注意使用%type赋值

必须保证赋值的结果是单行单列.

 %rowtype变量

%rowtype声明表示一行记录的变量(一个对象),你将一个表中的数据结构赋值给变量x

原文地址:https://www.cnblogs.com/zumengjie/p/11450478.html