oracle if函数变量,Oracle数据库——PL/SQL编程

PL/SQL块基本结构

declare

-- 声明部分

begin

-- 执行部分

exception

-- 异常处理部分

end;

声明部分:包含变量、常量定义,由 declare 关键字开始,如果不声明变量,可以省略这部分

执行部分:所有可执行 PL/SQL 语句放在这部分,由 begin 关键词开始, end 关键词结束,这部分不可省略,注意 end 后的分号

异常处理部分:用 exception 关键词把可执行部分分成两个小部分,之前程序正常执行,一旦出现异常就跳转到异常部分执行

PL/SQL标识符

变量声明

变量名 数据类型 [ not null ] [ := 初始值 ] | [ defacult 初始值 ]

常量声明

----常量声明后不可再次赋值

变量名 constant 数据类型 [ not null ] [ := 初始值 ] | [ defacult 初始值 ]

PL/SQL IF-THEN语句

if 条件 then

----条件成立执行语句

end if;

PL/SQL IF-THEN-ELSE语句

if 条件 then

----条件成立执行语句

else

----条件不成立执行语句

end if;

PL/SQL IF-THEN-ELSE语句

if 条件1 then

----条件1成立执行语句

elseif 条件2 then

----条件2成立执行语句

elseif 条件3 then

----条件3成立执行语句

else

----条件1、2、3都不成立执行语句

end if;

PL/SQL CASE语句

(如果选择器和表达式匹配就执行对应的执行语句,如果选择器与所有表达式都不匹配,就执行else后面执行语句)

case 选择器

when 表达式1 then 执行语句1;

when 表达式2 then 执行语句2;

when 表达式3 then 执行语句3;

when 表达式4 then 执行语句4;

...

else 执行语句;

end case;

PL/SQL LOOP语句

(无限循环语句,如果不添加 exit where 语句 或者 exit 语句就是无限循环,exit 类似于 break)

loop

----循环体

----[ exit where 退出循环条件 ]

----[ if ... then

exit;

end if ]

end loop;

PL/SQL WHILE语句

where 条件 loop

----循环体

end loop;

PL/SQL FOR语句

(reverse表示从循环上限到下限循环)

for 循环变量 in [ reverse ] 循环下限..循环上限 loop

----循环体

end loop;

存储过程

创建存储过程:

create [ or replace ] procedure 过程名称 [ ( 参数列表) ]  { is | as }

----声明变量

begin

----执行代码

end [过程名称];

例如:

create or replace procedure p_hello is

begin

dbms_output.put_line('hello world');

end p_hello;

调用存储过程:

exec 存储过程名称 [ (参数) ]

或者:

execute 存储过程名称 [ (参数) ]

或者:

begin

----存储过程名称 [ (参数) ]

end

删除过程:

drop procedure 过程名称

函数

创建函数:

create [ or replace ] function 函数名称 [ (参数列表) ] return 返回值类型

{ is | as }

----声明变量

begin

----执行代码

end [函数名称];

调用函数:

declare

----创建变量存储函数调用返回值

begin

----调用函数赋值给变量

end;

删除函数:

drop function 函数名称

包和包体

创建包

create [ or replace ] package 包名称 is | as

----定义公用常量、变量、过程、函数等(不能有具体实现)

end [ 包名称 ];

创建包体

create [ or replace ] package body 包名称 is | as

----定义公用常量、变量、过程、函数等

----实现公用过程和函数

end [ 包名称 ];

调用包

declare

----定义变量

begin

----包名.元素名称(参数)

end

删除包或者包体

drop package [ body ] [ user. ] 包名

触发器

创建触发器

create [or replace] tigger 触发器名 { before | after } { insert | update | delete }

on 表名  ---- 数据库触发器所在的表。

[for each row] ---- 对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

begin

----pl/sql语句

end

删除触发器

drop tigger 触发器名称

触发器功能允许/限制对表的修改

自动生成派生列,比如自增字段

强制数据一致性

提供审计和日志记录

防止无效的事务处理

启用复杂的业务逻辑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值