Oracle存储过程(小白理解)

Oracle存储过程(小白理解)

1.简单的存储过程(无参数)

create or replace procedure p_aa

as

begin

dbms_output.put_line('aaa');

end;

create or replace procedure :这一串都是关键字

p_aa : 存储过程的名称

as:关键字。begin:关键字。

dbms_output.put_line(‘aaa’); 输出内容,dbms_output.put_line() Oracle控制台输出方式。

end;关键字。

1.1无参存储过程调用,(3种方式,建议写好declare)

########### 使用declare调用

declare

begin

p_aa;

end;

############ 也可直接使用begin配合end调用

begin

p_aa; --在此处也可使用myDemo01();完成存储过程的调用

end;

############ 使用call调用

call p_aa();--call 存储过程名可完成调用,注意括号不能少

2.带有参数的存储过程(OUT[输出],IN[输入])

CREATE OR REPLACE PROCEDURE

"PROC_DEMO1"(name1 OUT VARCHAR,age IN NUMBER) AS --使用OUT/IN来决定参数使用方式

BEGIN

dbms_output.put_line('age='||age); -- || 表示分割字符串,等于做字符串拼接

SELECT '涨工资' INTO name1 FROM dual;

END;

name1 OUT VARCHAR:定义参数name1为OUT输出使用Oracle VARCHAR 类型

age IN NUMBER :定义参数age为IN输入使用Oracle NUMBER类型

INTO:表示把 SELECT 后的字符串赋入给 name1

dual:Oracle中的dual表是一个单行单列的虚拟表。

2.1带参存储过程的调用

DECLARE

name VARCHAR(10);--对应 name1 的同类型接收参数

BEGIN

PROC_DEMO1(name,23); --把定义好类型的name传入去接收name1

dbms_output.put_line('name='||name);

END;

3.while循环的存储过程

create or replace procedure p_aa

as

n_count number := 0; --无论创建还是调用,变量都建与AS关键字后

begin

while n_count < 5 loop

dbms_output.put_line(n_count);

n_count := n_count + 1;

end loop;

end;

n_count number := 0; 给n_count 赋值,存储过程参数赋值写法就是 :=

loop,end loop: 标明循环代码块

3.1while循环的调用

CALL p_aa();

4.for循环

CREATE OR REPLACE PROCEDURE

"PROC_DEMO1"

AS

str VARCHAR(10):='i=';

BEGIN

FOR ab IN 0..9 LOOP

dbms_output.put_line(str||ab);

END LOOP;

END;

FOR ab:ab 定义的变量,实替每次循环的对象结果

IN 0..9:定义循环范围,也可放入如: select * from student 等结果集进行筛选判断等

举例如下:

create or replace procedure p_aa

as

begin

FOR ab in (select * from student) loop

if (ab.id<3) then

dbms_output.put_line(ab.stuName);

end if;

end loop;

end;

ab.id<3:这里ab就代表每次循环出的student表每行数据,可以根据其某些数据做筛选判断都可以的

if(条件) then 内容 end if;就是if判断

4.1 for循环调用

########### 第一种as后定义了变量的调用

DECLARE

BEGIN

PROC_DEMO1();

END;

########### 第二种对某查询结果集做了处理的调用

CALL p_aa();

结尾:

虽然存储过程创建时就预编译sql,但是请合理使用,不是所有场景都适合

相关数据

在 iPhone 上将“语音备忘录”录音导出到“文件”
office365输入账号

在 iPhone 上将“语音备忘录”录音导出到“文件”

📅 07-17 👁️ 9908
BLE抗干扰的几种解决方案
365bet即时比分

BLE抗干扰的几种解决方案

📅 07-02 👁️ 2220
苹果辅助按钮怎么开 苹果主控制按钮怎么调出来
365bet正版网址

苹果辅助按钮怎么开 苹果主控制按钮怎么调出来

📅 07-03 👁️ 5756