Oracle8i数据库的一个重要特点是在数据库引擎中包含了Java虚拟机(JVM)。该功能使得用户可以在数据库中以与PL/SQL代码平等的地位运行Java代码。Java的简单性和可移植性不仅使Oracle可以很好的工作在Internet上,而且也大大扩展了PL/SQL语言的能力。下面以一个简单的例子来说明这一点。
我们知道,在Oracle PL/SQL的标准内置包中没有提供产生随机数的函数或过程。我们当然可以根据生成伪随机数的数学算法自己编写这样一个随机数产生器,然而,借助于Java,我们却可以以更简便的方法做到这一点。
首先,创建一个Java源对象,其中包含一个产生随机数的方法:
create or replace JAVA SOURCE Named Js_Rand
As
public class clsRand{
public static double Rand(){
return java.lang.Math.random();
}
}
/
把Java代码装入数据库后,还不能马上就执行这些代码。在PL/SQL中执行一个JAVA成员方法之前,还必须用CREATE FUNCTION语句发布该成员方法的程序代码(编译源程序为字节码):
CREATE OR REPLACE function rand return number
as
language Java Name
'clsRand.Rand() return double';
/
现在,我们就可以在PL/SQL中调用这个随机函数了:
run
begin
dbms_output.put_line(rand);
End;
分享到:
相关推荐
除了使用 DBMS_RANDOM 包外,还有其他方法可以生成随机数,例如使用 Oracle 的内置函数、使用 PL/SQL 语言等。这些方法可以根据实际情况选择。 Oracle 提供了多种方法来生成随机数,每种方法都有其优缺点,选择合适...
Oracle系统包是数据库管理系统Oracle中一组预定义的PL/SQL包,它们提供了各种功能,用于数据库管理和维护。本文将详细讲解这些系统包的用途和使用方法。 首先,我们来看dbms_output包,它用于在PL/SQL程序中进行...
在实际操作中,这可能涉及到使用SQL语句、PL/SQL过程、内置函数,甚至是专门的测试数据生成工具。 标签“源码”和“工具”暗示了可能涉及到编写自定义脚本或者利用现有的开源工具来实现测试数据的创建。例如,`us_...
存储过程是PL/SQL中的一种对象,可以封装一组SQL命令或其他PL/SQL语句。以下是一个关于聚合字符串类型的存储过程示例: 1. **字符串聚合存储过程**: ```plsql CREATE OR REPLACE TYPE type_str_agg AS OBJECT ...
介绍了PL/SQL中常用的函数、异常处理等,还有对随机数生成、分析函数、多表合并、多表插入等问题的解决方法。第7章 子程序和触发器,包括函数、存储过程、包以及触发器等。对子程序的调用者权限、管道表函数、传递...
介绍了PL/SQL中常用的函数、异常处理等,还有对随机数生成、分析函数、多表合并、多表插入等问题的解决方法。第7章 子程序和触发器,包括函数、存储过程、包以及触发器等。对子程序的调用者权限、管道表函数、传递...
- **SQL语言,PL/SQL语言:** SQL是数据库查询的标准语言,PL/SQL则是Oracle特有的过程化SQL语言。 - **触发器、存储过程:** 介绍如何编写触发器和存储过程,以增强数据库的功能。 - **序列、索引、视图对象:** ...
4. **PL/SQL包或过程**:"ZLXA_GUID.fnc"可能是一个PL/SQL函数,它封装了上述策略之一,使得在SQL查询中调用时能方便地生成GUID。 在使用这个函数时,开发人员需要注意几个关键点: - **性能**:生成GUID的过程...
包是用来组织 PL/SQL 对象的一种方法,可以提高代码的可维护性和重用性。 ##### 9.5 在编写 PL/SQL 程序时,可以定义变量和常量 - **变量**:用于存储数据。 - **常量**:一旦赋值后不可改变。 ##### 9.6 控制...
根据提供的文件信息,我们可以深入探讨Oracle数据库中的两个关键概念——触发器和内置程序包。 ### 触发器 #### 定义与作用 触发器是一种特殊类型的存储过程,它会在某些特定事件(如数据修改)发生时自动执行。与...
在PL/SQL中,你可以创建一个过程或者存储过程来选取数据库表中的随机记录。例如,如果需要从一个用户表中随机选择一些邮箱或电话号码,你可以先创建一个序列号,然后将符合条件的记录放入临时表,再利用DBMS_RANDOM....
通过`DBMS_RANDOM`,开发者可以轻松地在PL/SQL代码中引入随机性,增强程序的灵活性和多样性。但同时,也要谨慎使用,避免因为过度依赖随机性导致的不可预测结果。在使用`DBMS_RANDOM`时,理解其工作原理和潜在的性能...
例如,下面的PL/SQL代码将生成100000个正态分布的随机数,并记录最大的值: ```sql DECLARE i NUMBER := 0; j NUMBER := -1; BEGIN FOR k IN 1..100000 LOOP i := DBMS_RANDOM.NORMAL; IF i > j THEN j :=...
- **使用规范的标识符为变量命名**:Java中变量名应遵循一定的规则,如只能以字母、下划线或美元符号开头,并且不能是关键字。 - **使用注释对代码进行解释说明**:注释有助于提高代码可读性,分为单行注释(//)、...
此外,还可以使用`questcentralfordb2.exe`作为图形界面工具,类似于Oracle的PL/SQL Developer,方便进行数据库管理。 **1.2 客户端配置** 在安装完成后,可以通过命令行进行节点和数据库的配置: - 使用`db2...
15.5.5 范例15-6:ex6.pl Oracle上persons.sql的Perl ADO,无DSN 15.5.6 范例15-7:ex7.pl Oracle上的Perl DBI简单查询 15.5.7 范例15-8:ex8.ploracle上persons.sql的Perl DBI 15.6 练习:非编程 ...
在Oracle数据库中,如果你需要从一组特定的值中随机选择一个,可以利用DBMS_RANDOM包提供的函数配合SQL语句来实现。DBMS_RANDOM是Oracle提供的一组实用程序,用于生成随机数,这对于模拟、测试或者在数据库中创建...