如果存储过程的名字是issuccess
可以这样定义入参 issuccess(PRM_I in varchar2)
调用的时候就可以:
issuccess('123456789');
作为传入的值来处理。
如果需要把存储过程中处理的结果返回出来,那么可以定以OUT 参数:
issuccess(PRM_I in varchar2,PRM_O OUT VARCHAR)
调用之前准备一个变量
VS_OUT varchar2(20);
调用时:
issuccess('123456789',VS_OUT)
过程里面修改PRM_O的值,过程执行完成后可以通过VS_OUT捕获。
declare
bb table1a%rowtype;
begin
select a into bb from table1 where b='1';
--dbms_outputput_line(bb);
你的查询语句where条件里面有b字段,赋值最好换个变量名,要不要出问题
oracle的存储过程,不允许直接在变量里赋值是因为oracle存储过程定义时并不会初始化变量的内存大小,只有使用的时候才会去分配。
oracle的存储过程的基本语法:
一:存储过程分部解析:
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_msg VARCHAR2(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;
以上就是关于Oracle 如何给存储过程赋值全部的内容,包括:Oracle 如何给存储过程赋值、问个oracle数据库赋值语句、oracle的存储过程,为什么不允许直接在变量里赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)