PLSQL中使用Java源对象获取随机数示例

Oracle8i数据库的一个重要特点是在数据库引擎中包含了JVM。该功能使得用户可以在数据库中以与PLSQL代码平等的地位运行Java代码。Java的简单性和可移植性不仅使Oracle可以很好的工作在网络上,而且也大大扩展了PLSQL语言的能力。

例如,在较早版本的Oracle的标准内置包中,还没有提供DBMS_RANDOM包。我们可以借助于Java,以简便的方法获得随机数:

首先,创建一个Java源对象,其中包含一个产生随机数的方法(注意Java语言对字母大小写是完全敏感的)

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED js_rand AS
  public class clsRand{
    public static double Rand(){
      return java.lang.Math.random();
    }
  };

把Java代码装入数据库后,还不能马上就执行这些代码。在PLSQL中执行一个Java成员方法之前,还必须创建一个对应的函数发布该成员方法的程序代码(编译源程序为字节码)

CREATE OR REPLACE FUNCTION js_rand RETURN NUMBER AS
  LANGUAGE JAVA NAME 'clsRand.Rand() return double';

现在,我们就可以在PLSQL中调用这个随机函数了

BEGIN
  --获得0~1之间的随机浮点数
  dbms_output.put_line(js_rand);
  --获得1~100之间的随机整数
  dbms_output.put_line(ceil(js_rand * 100));
END;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值