`
jeelee
  • 浏览: 636998 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle学习笔记(第十八章:oracle & java)

阅读更多
1, 创建JAVA 外部例程:
1) 编制java代码
2) 将java代码加载数据库
3) 创建一个把pl/sql参数映射到java参数的pl/sql包装来发布java外部例程

将java代码加载数据库:
方法一:
create [or replace] [and {resolve | compile} [noforce] java {{source | resource}
named [schema.] primary_name}|class [schema schema_name]]
[involver_rights_clause]
[resolve resolve_clause]
{as source_text using lob_clause}

{procedure | function} procedure_name [plsql_argument_list]
as language java [name extenal_name [(java_parameter_list)]]

其中 schema 是存储java对象的模式
Primary_name 是java源代码

方法二:该方法在操作系统的命令提示符下执行的
Loadjava  [options]  files
例如:loadjava –uer  liyongjie/123456 –resolve  Md5.java

注意被存储过程调用的方法体必须是静态的

例子1:该例子是用来说明md5加密
首先编写java代码并编译:
import java.security.*;
import java.security.spec.*; 

public class Md5
{
   public final static String Md5(String s)
   {
     char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
     try
     {
       byte[] strTemp = s.getBytes();
       MessageDigest mdTemp = MessageDigest.getInstance("MD5");
       mdTemp.update(strTemp);
       byte[] md = mdTemp.digest();
       int j = md.length;
       char str[] = new char[j * 2];
       int k = 0;
       for (int i = 0; i < j; i++)
       {
       byte byte0 = md[i];
       str[k++] = hexDigits[byte0 >>> 4 & 0xf];
       str[k++] = hexDigits[byte0 & 0xf];
       }
       return new String(str);
     }
     catch (Exception e){
    return null;
     }
}
   public static void main(String[] args)
   {
   System.out.print(Md5.Md5("XX"));
   }
}
然后将java文件加载数据库,在加载数据库之前先创建一个指向java文件的目录
create or replace directory JAVA_DIR
  as 'D:\BOOKS\Oracle\Oracle and Java';
再加载java文件:
create or replace and resolve java source
named MD5 using bfile(java_dir,'Md5.java') ;
再发布例程:
create or replace package md5 as
  function f_md5(v_str in varchar2) return varchar2 is
language java name 'Md5.Md5(java.lang.String) return java.lang.String';
end md5;
最后调用测试:
declare
v_str varchar2(500);
begin
   v_str := md5.f_md5('x');
   dbms_output.put_line(v_str);
end ;

例子2:该例子实现阶乘
Java类:
public class Fun
{
   public static int Fun(int n)
   {
      int m=0;
      if(n==0)
      {
         return 0;
      }
      else if(n==1)
      {
        return 1;
      }
      else
      {
         for(int i=1;i<=n;i++)
         {
            m=n*Fun(n-1);
         }
         return m;
      }
   }
}
加载java文件:
create or replace and resolve java source
named MD5 using bfile(java_dir,'Md5.java') ;-- java_dir: directory (目录)
发布例程:
create or replace package pkg_fun as
  function fun(i_number in number) return number is
language java name 'Fun.Fun(int) return int';
end;
测试:
declare
   v_fun number;
begin
   v_fun := pkg_fun.fun(5);
   dbms_output.put_line(v_fun);
end ;

分享到:
评论

相关推荐

    Java开发详解.zip

    000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    Java/JavaEE 学习笔记

    Oracle学习笔记...............121 前言....................................121 第一章 Selecting Rows.....................124 第二章 Limiting Selected Rows.......127 第三章 Single Row Functions.............

    Oracle数据库课堂笔记

    以下是对Oracle数据库课堂笔记的详细解析,涵盖了从基础到进阶的重要知识点。 第一讲:Oracle简介 Oracle数据库是由甲骨文公司开发的,提供了一整套数据存储、管理和检索解决方案。它支持多种操作系统和硬件平台,...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...

    JAVA学习笔记-java学习笔记WORD样式.docx

    ### JAVA学习笔记知识点详解 #### 一、计算机概述 1. **计算机**:电子设备,用于处理信息。 2. **计算机硬件**: - **中央处理器(CPU)**:计算机的大脑,负责处理指令。 - **内存(RAM)**:临时存储数据,...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle笔记(韩顺平oracle视频教学整理)

    韩顺平作为IT培训讲师,其Oracle视频教学内容被整理成笔记,旨在帮助初学者快速入门Oracle数据库。以下是从提供的文件内容中提炼出的知识点: 1. Oracle基本使用:文档提到基本命令的使用,这些是进行数据库操作的...

    J2EE学习笔记(J2ee初学者必备手册)

    Oracle学习笔记...............121 前言....121 第一章 Selecting Rows.....................124 第二章 Limiting Selected Rows.......127 第三章 Single Row Functions..........127 第四章 Displaying Data from ...

    18天java学习之经典笔记

    "18天Java学习之经典笔记"是一份专为快速掌握Java基础知识而设计的学习资料,适用于那些希望在短时间内复习、备考或者准备面试的人员。这份笔记涵盖了Java的核心概念,通过18天的学习计划,帮助读者逐步理解并熟练...

    JAVA基础笔记第一次

    Java是1995年由SUN公司(现已被Oracle收购)推出的高级编程语言,最初名为Oak,设计初衷是为了适应互联网编程需求。Java以其安全性、可靠性和面向对象的特性深受开发者喜爱,并具有跨平台的能力,这得益于Java虚拟机...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    Java基础知识笔记详细版-菜鸟翻阅必备

    - Java支持十进制、八进制(前缀0)、十六进制(前缀0x或0X)。 5. **原码、反码、补码**: - 原码表示整数的二进制形式。 - 反码表示负数时将所有位取反。 - 补码是在反码的基础上再加1得到的结果,用于表示...

    ORACLE入门到精通笔记

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它...以上是对"ORACLE入门到精通笔记"的主要知识点概述,通过深入学习和实践,你将能够熟练掌握Oracle数据库的使用,为你的职业生涯打下坚实的基础。

    Oracle笔记

    整篇笔记的内容是对Oracle教学视频的学习笔记,对于初学者来说是很好的参考资料,它不仅详细记录了编程的基础知识点,还包含了实用的编程技巧和思考方法。通过学习这些内容,可以加深对Java编程语言的理解,为后续更...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    note:Java学习笔记

    Java学习笔记是一个全面涵盖Java编程语言的学习资源,旨在帮助初学者和有经验的开发者深入理解Java的核心概念和技术。笔记可能包括了从基础语法、面向对象编程到高级特性,如多线程、网络编程以及异常处理等多个方面...

    韩顺平java从入门到精通1-32课源码笔记

    《韩顺平java从入门到精通1-32课源码笔记》是一份全面而深入的Java学习资源,由知名讲师韩顺平精心讲解。这份资料涵盖了从Java基础到高级特性的全方位教学,旨在帮助初学者系统地掌握这门强大的编程语言。下面,我们...

    《跟我学Java 26日通》第 1 天 Oracle基本命令与简单查询(笔记03)

    这是一篇面向初学者的学习笔记,通过一系列具体的SQL语句示例来帮助读者更好地理解如何在Oracle环境中执行基本的数据查询。 #### 1. 基础表结构 在学习SQL查询之前,我们需要了解表`emp`的基本结构。表`emp`包括...

Global site tag (gtag.js) - Google Analytics