oracle中in和out用法

oracle中in和out究竟在什么时候用啊?有点理不清头绪,请指点!还有:createorreplaceprocedurechange_sal(v_enameinvar... oracle中in和out究竟在什么时候用啊?有点理不清头绪,请指点!

还有:
create or replace procedure change_sal(
v_ename in varchar2,
v_sal in number,
v_job out varchar2,
v_dname out varchar2
)
is
v_empno emp.empno%type;
begin
... ...
end;
变量为什么要分开在头部和is部分两个地方声明呢?有什么本质的区别吗?
展开
 我来答
badkano
2009-05-02 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
前边几个是变量,就是in out那一堆
相当于你输入和输出的参数,而且输入和输出的参数只能每次调用一个
一个输入参数你不可能一下输入两个
下边is后边那个
%TYPE属性
在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。
例:
v_empno SCOTT.EMP.EMPNO%TYPE;
v_salary EMP.SALARY%TYPE;
不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。

其实说白了,就是后边is定义的那个已经不是常规的变量了,相当于一个数组或者游标
奔驰M888
2009-05-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2707万
展开全部
开头部分声明的是这个存储过程的参数,is部分声明的是存储过程内部使用的变量。相当于程序中函数的参数和函数的内部变量的关系。

---
以上,希望对你有所帮助。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜爷1号
2015-07-08 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
  oracle 过程中定义了in、out、in out三种参数模式,每个参数可以选择其一。
  in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变;
  out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程;
  in out 表示高参数可以向该过程中传递值,也可以将某个值传出去 。
  举个例子
  create or replace procedure update_price(
  p_product_id in NUMBER,
  p_factor in NUMBER)
  AS
  .....
  你在引用这个过程的时候给参数传入值
  exexute update_price(2,2.5);
  这是定义的2个参数就得到了值,in模式下值不能变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式