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