Oracle数据库的存储过程怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库的存储过程怎么写?相关的知识,希望对你有一定的参考价值。

Oracle存储过程基本语法:

CREATE OR REPLACE PROCEDURE 存储过程名 
IS 
BEGIN 
NULL; 
END;

解释:

行1: 
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 
行2: 
IS关键词表明后面将跟随一个PL/SQL体。 
行3: 
BEGIN关键词表明PL/SQL体的开始。 
行4: 
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 
行5: 
END关键词表明PL/SQL体的结束。


参考技术A 1 CREATE OR REPLACE PROCEDURE 存储过程名
  2 IS
  3 BEGIN
  4 NULL;
  5 END;
  
行1:
  CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
  IS关键词表明后面将跟随一个PL/SQL体。
行3:
  BEGIN关键词表明PL/SQL体的开始。
行4:
  NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
  END关键词表明PL/SQL体的结束.
存储过程创建语法:
create or replace procedure 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围); --vs_msgVARCHAR2(4000);
变量2 类型(值范围);
Begin
Select count(*) into 变量1 from 表A where列名=param1;

If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output。Put_line(‘打印信息’);
Elsif (判断条件) then
Dbms_output。Put_line(‘打印信息’);
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;本回答被提问者采纳
参考技术B CREATE OR REPLACE PROCEDURE 名称 (入参名1 in 类型1.....入参名n in 类型n) as 或者 is
begin
过程体

EXCEPTION
WHEN OTHERS THEN
异常处理,可以省略
end
参考技术C create or replace procedure (xxx)
is
xx
begin
xxx
end;
/
这个问题有人问过了,你可以搜一下的
参考技术D create [or replace] pro_name [(parameter1[,parameter2]...)]is|as
begin
plsql_sentences;
[exception]
[dowith_sentences;]
end [pro_name];
pro_name:存储过程的名称;
parameter1:存储过程的参数,若是输入参数,则需要在其后指定‘in’关键字;
plsql_sentences:PL/SQL语句,它是存储过程功能实现的主体;
dowith_sentences:异常处理语句,也是PL/DQL语句,这是一个可选项;

Oracle 的存储过程怎么写。?

oracle 存储过程的基本语法

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...

3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;

4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;

5.变量赋值
V_TEST := 123;

6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;

7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;

8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
参考技术A create produce(
SQL语句

);

就这么简单,或者你可以用可视化工具,如PLSQL,找到左边树的“存储过程”右键点击创建即可。

以上是关于Oracle数据库的存储过程怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

oracle中的存储过程怎么写

Oracle 的存储过程怎么写。?

oracle存储过程怎么写循环

oracle怎么写存储过程?

Oracle数据库的存储过程怎么写?

oracle怎么写存储过程