Oracle数据库(十五):参数

参数模式:

模式

说明

参数用途

IN

只读的

在模块内部可以使用实参的值,但是不能修改参数,这也是默认模式;

OUT

只写的

模块内部可以给参数赋值,但是参数值不能被使用;

IN OUT

可读写

模块即可以使用(读)也可以修改(写)参数的值;

IN参数类似一个常量;

OUT参数在程序成功之前是没有任何值的(除非使用了NOCOPY提示):

  • 不能把一个OUT参数赋值给另一个变量,甚至不能赋值给它自己;
  • 不能给OUT参数提供缺省值,只能在模块内部给OUT参数赋值;
  • 如果程序执行发生了异常,任何对于OUT参数的赋值操作都会回滚;

IN OUT参数:

  • 一个IN OUT模式的参数不能有缺省值;
  • 一个IN OUT模式的实参必须是一个变量,不能是一个常量、直接量或者表达式,一名为这些格式无法提供一个可以让PL/SQL存放传出数据的容器;

参数是不受约束的,也就是说在定义一个变量类型为varchar2时,要把大小写上,但是在参数中不需要写大小;

形参和实参匹配有两种方法:

  • 位置表示法:实参的位置和形参对应(和java一样);
  • 命名表示法:位置不对应,显示说明,例如:函数test(param1 varchar, param2 varchar),要将v1(对应param1)和v2(对应param2)传进去可以:test(v2=>param2, v1=>param1)

缺省值:可以给一个IN模式的参数提供缺省值。如果IN模式的参数有缺省值,在调用程序时就不必包含这个参数了。同样,如果调用程序时参数列表中没有包括这个参数,就会使用这个参数的缺省值。当然,必须给每个IN OUT参数都提供一个实参。

有两种方式提供缺省值:defualt:=;例如:

PROCEDURE test(sing_in varchar2 := 'tttt', born_in DATE DEFAULT SYSDATE)

说明:像上面这个例子,如果想跳过第一个参数,只指定第二个参数,这个时候命名表示法就有排上用场了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值