问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

plsql中怎么调用带输出参数的存储过程

发布网友 发布时间:2022-04-22 09:46

我来回答

5个回答

懂视网 时间:2022-04-08 03:53

************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************

1.1 过程procedure

语法:    

         create or replace procedure proc_name

[(arg_name{in | out | in out} type, …)

]

{is | as }

          <local variable declareation>

         begin

                   <executable statements>

         exception

                   <exception handlers>

         end;

        

创建存储过程样例:

         create or replace procedure account_number

         ls

          v_cnt binary_interger;

         begin

          select count(id) into v_cnt from account;

          dbms_output.put_line(‘account number is’ || v_cnt);

         end;

1.1.1  调用存储过程

在sql工作表中直接调用:

         exec account_number;

1.1.2  存储过程的參数

比如:

         create or replace procedure proc1

         (p_c1 varchar2,p_c2 out varchar2,p_c3 in out varchar2)

         ls

          v_c1 varchar(10);

         begin

      --p_c1 :=p_c1 || ‘d’; --不能做复制的目标

                   v_c1:=P_c1;

                   p_c2 :=p_c1 || ‘d’;

                   p_c3”=p_c3||’d’;

         end;

调用为:

         exec  proc1 (‘abc’,’abc’,’abc’);保存

调用:

         declare

                   v_c2 varchar2(10) :=’abc’

                   v_c33 varchar2(20) :=’abc’;

         begin

                   proc1(‘abc’,v_c2,v_c3);

                   dbms_output.put_line(v_c2);

                   dbms_outpurt.put_line(v_c3);

         end;

        

1.1.3  形參和实參

创建存储过程中的參数为形參:

         create or replace procedure proc1

         (p_c1 varchar2,p_c2 out varchar2,p_c3 in out varchar2)

         ls

          v_c1 varchar(10);

         v_c1为过程中的局部变量

调用时候括号内的參数为实參

         proc1(‘abc’,v_c2,v_c3);

形參的种类:

         in: 缺省模式。在过程的内部形參是仅仅读的;

         out;过程内部,形參能够读能够写入;调用过程中。不论什么的实參将被忽略,即值不会赋给形參;过程运行完毕后,当前值赋给相应的实參;

         in out:调用过程中。实參的值赋给相应的形參,过程内部,能够读,能够写。过程运行结束后。控制返回给控制环境。形參内存赋给调用时候的实參。

对实參的要求:

         模式为In的形參相应的实參。能够是常量和变量

         某省为IN out或OUT的形參相应的实际參数必须是变量;用于存储返回的值;

形參的限制:

形參不能声明长度。可是能够使用%TYPE来进行限制

3.1.4 带參数的过程调用

位置表示法:

         --调用的加入全部參数,实參和形參依照顺序一一相应

名字表示法:

         --调用时给出形參名字。并给出实參。比如

         procname(12,p_outparm +> v_var1,p_inout =) 10);

两种方法能够混合用:

         混用的时候,第一个參数必须依照位置类指定。

         当參数非常多的时候。提供程序可读性,用名字表示法;

3.1.5使用缺省參数

形參能够指明缺省值

         parm_name [mode] type {:=|default} int_value;

位置指示法是,全部缺省的值都放在最后面;

声明时,假设有缺省值,尽量将缺省值放在參数表的末尾;

3.1.6 存储过程的DDL语句

在过程中运行DDL操作,所需的权限必须通过直接授予的方式,不能通过角色授予;

调用过程时候。全部角色都是disable的。即角色所包括的全部权限都不能生效。

调用其它用户的过程,必须有过程的属主赋予运行权限

         grant execut on procname to userame;

         create procedure proc1

         ls

         begin

          execute immediate ‘create table test100(c1 number)’;

end;

************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮柱 ************************************************************************

【PLSQL】过程procedure形参和参数

标签:

热心网友 时间:2022-04-08 01:01

1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。

2、然后在打开的工具下拉菜单中,点击首选项,如下图所示。

3、接着在打开的窗口中,点击左侧中的输出选项,如下图所示。

4、进入到了输出界面中,在缓冲区大小中输入大小。

5、大小输入完成之后,点击确定,如下图所示就完成了。

热心网友 时间:2022-04-08 02:19

外面调用,就直接简单的
DECLARE
v_city varchar;
v_name varchar;
BEGIN
my_1102(v_city, v_name, 'test');
END

就好了。

Oracle 存储过程简单的例子如下:
http://hi.baidu.com/wangqing999/blog/item/0991d3124070854420a4e9b4.html

热心网友 时间:2022-04-08 03:54

设置一个变量,比如 strcity varchar2(100);然后将这个变量放在输出参数的位置上,输出参数的意思是,存储过程中会给这个输出参数赋值,这样你就能通过这个变量strcity或得存储过程中产生的值。在这个例子中,strcity会取到temp这个值。

热心网友 时间:2022-04-08 06:02

my1102(temp); 是什么东西?

输入参数只要是字符型的你随便输入
最后就是两个赋值,

输出的是city=你输入的参数
name是“world”
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...时候鞋触碰到蟑螂碰过的地板。有必要鞋子地板洗一下吗? win10电脑屏幕出现黑色方框微星笔记本WIN10桌面有黑框残影请问怎么去除... win10系统左上角出现一个黑色的音量调节框怎么关闭啊? 求年上父子,兄弟强攻什么受都行(标明属性)宠文!谢谢各位啦 ​耽美父子文、兄弟文、只要文名、谢谢... 不思议迷宫 不思议迷宫低语之森1201怎么刷? 不思议迷宫 不思议迷宫低语之森dp怎么玩? 学跆拳道专业的体育生以后的事业怎么样 学习跆拳道以后有出路吗 上体校学跆拳道有什么前途 初中英语语法考试必考考点:名词详细讲解,建议收藏 深圳有哪些投资机构或天使投资人? 古代政府最小的官就是县长,为何没有镇长呢? plsql中如何执行存储过程? 初中英语所有考点 plsql怎么把库导出到其他数据库 古代管理一个城池的官叫什么? pl/sql中怎么批量导出数据库数据 知县、县令、县尉、县丞分别是什么官名? 初中英语语法知识点的归纳方法? 古时京城衙门的官职叫什麼?知州、太守、刺史、县令有什麼分别? plsql导出建表语句,用PLsql如何导出表数据 谁知道初中英语一共有多少个知识点? 三国时期镇长在三国叫什么官 plsql怎么把存储过程导出来 初中英语知识点总结 在清朝镇长这样及别的官叫什么 英语知识点初中? 宋朝时期镇长的职务怎么称呼? 初中英语所有知识点 中国什么时候有镇长这个称谓?是古代开始的嘛? 在深圳有哪些私募投资机构 初中英语的几个重大考点,拜托啦 如何用plsql查看存储过程的源码!!! 深圳有哪些投行? 古代的村官都有啥,帮忙列举几个 oracle如何导出存储过程 深圳有哪些好的风险投资公司 镇长在古代有品级吗 Oracle批量导出存储过程(保持每个存储过程独立) 深圳的私募股权投资机构有哪几间 梅艳芳是因为什么原因去世的? 深圳有哪些好的风险投资公司 镇长是什么职务 如何用plsql导出oracle的表 九品芝麻官是什么官 PLSQL如何调试存储过程 深创投有多厉害 镇长在清朝相当于多大的官 PLSQL的存储过程