oracle for循环中if判断,Oracle语法温故(for循环、while循环、if else 、方法声明、调用,过程方法声明、调用)...

从下面这个例子中可以看出PL/SQL语法的一般规则:

 1. PL/SQL中语句以分号(;)结尾;

 2. 开始程序块的PL/SQL语句(如IF…或BEGIN语句)没有分句;

 3. 文本值括在单引号(‘ ‘)内,而不是(“ “);

 4. 过程只允许最后有一个出口;

 5. PL/SQL程序可以分为三个部分;

 6. DECLARE部分用于变量、常量、函数、过程、Cursor;

 7. BEGIN部分包含PL/SQL块中要执行的代码 用于程序处理,其中可以调用函数、过程;

 8. Exception 部分用于出错处理。

例1:

declare

i number:=0; /*声明变量井给初值*/

t number:=1;

-- 另一种方式初始化赋值

-- i2 number default 0;

-- t2 number default 1;

-- 初始化常量

-- i3 constant number := 0;

-- i4 constant number := 1;

error_message exception; /*声明一个出错处理*/

begin

for t in 1..100 loop

i:=i+t;

DBMS_OUTPUT.PUT_LINE(i);

end loop;

if i>5050 then

--raise error_message; /*引发错误处理*/

DBMS_OUTPUT.PUT_LINE('i变量大于'||i);

elsif i<5050 then

DBMS_OUTPUT.PUT_LINE('i变量小于'||i);

else

DBMS_OUTPUT.PUT_LINE('i变量等于'||i);

end if;

exception

when error_message then

DBMS_OUTPUT.PUT_LINE('exception块');

end;

从下面这个例子中可以看出方法的声明和调用

-- 方法声明的语法

function function_name(parameter type)return type is -- 方法声明头部 指定返回类型

…declare variant -- 变量定义处

begin

… --方法逻辑处理处

end function_name; -- 方法结束例2:

declare

i number :=1;

p number :=1;

function testOne(j number)return number is /* 声明方法testOne,并且指明返回值为number类型 */

t_num number := 0;

begin

t_num:=t_num+j;

return t_num;

end testOne; /* 声明方法testOne 结束 */

begin

while i<=10 loop

i:=i+1;

p:=testOne(i); /* 调用方法testOne,将返回值传递到变量P */

DBMS_OUTPUT.put_line('p输出'||p);

end loop;

end;

从下面的例子可以看出过程的声明和调用

声明方法的语法:

procedure procedure_name(parameter IN type) is

…declare variant --变量声明

begin -- 方法核心内容

exception --异常处理

end procedure_name;

例3:

declare

i number:=1; /*声明一个循环初始值*/

procedure pro_fun(j number) is /*定义一个过程*/

y number := 0; /*声明一个局部变量*/

begin

y:=j; /*将方法参数赋值y*/

DBMS_OUTPUT.put_line(y);

end pro_fun; /*过程声明结束*/

begin

for i in 1..100 loop

pro_fun(i); /*循环调用过程方法*/

end loop;

end;

建立内嵌函数

语法如下:

CREATE [OR REPLACE] FUNCTION function_name

[(argment [ { IN| IN OUT }] type,

argment [ { IN | OUT | IN OUT } ] type]

RETURN return_type

{ IS | AS }

BEGIN

FUNCTION_body

EXCEPTION

其它语句

END;

创建过程语法:

CREATE [OR REPLACE] PROCEDURE Procedure_name

[ (argment [ { IN | IN OUT }] Type,

argment [ { IN | OUT | IN OUT } ] Type ]

{ IS | AS }

BEGIN

EXCEPTION

END;

调用过程:

EXEC[UTE] Procedure_name( parameter1, parameter2…);

创建触发器语法:

CREATE [OR REPLACE] TRIGGER trigger_name

{BEFORE | AFTER | INSTEAD OF}

{INSERT | DELETE | UPDATE [OF column [, column …]]}

ON {[schema.] table_name | [schema.] view_name}

[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]

[FOR EACH ROW ]

[WHEN condition]

trigger_body;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值