`

在Oracle中用java编写存储过程

阅读更多

 Oracle自带一个JVM,内置对Java的支持,任何Java能做的事情你都可以放到Oracle里面来做,你甚至可以在里面操作db2。这让Oracle具备了极其巨大的扩展能力,只要你愿意,完全可以开发一个trigger,让它在适当的时候给管理员的msn发送一条即时消息。

  由于ps/SQL是过程化的语言,它基本上不具备多态的概念,供Oracle使用的Java方法必须申明为static,所以在Oracle中你无法使用Java的动态特性,比如接口、反射等。不过这并不妨碍你用Java做爱做的事。

  我们以一个简单的hello world为例,我想任何一个有经验的Java程序员都能够通过这个例子,派生出其他希奇古怪的应用,有好的创意记得要与我共享,我的msn是

  首先是创建一个Java类,启动SQL plus,执行如下命令:

create or replace and compile java source named "hello_sp" as 
package org.bromon.oracle; 
public class Hello 
{ 
  public static String say(String name) 
  { 
    return "你好,"+name; 
  } 
} 

  Java程序已创建。

  然后在Oracle中把这个类导入成为一个函数,执行命令:

create or replace function hello_sp(name varchar2) return varchar2 
as language java name  
'org.bromon.oracle.Hello.say(java.lang.String) return java.lang.String'; 

  函数已创建

  现在可以调用该函数,执行:

  select hello('bromon') from dual;

  返回结果:你好,bromon

  有一个需要注意的问题是,假如我们的java方法是没有参数的,比如:

public static String say() 
  { 
    return "你好”; 
  } 

  那么在创建函数的时候,函数名不应该有扩号:hello_sp,否则会报告函数有编译错误。

  如果你的Java类是在IDE里面编写的,那么只需要在oracle中加载编译过的class文件即可,方法是:

  启动enterprise manage console,在“方案”下找到“源类型”,右击”Java类”,选择”加载Java“,选择对应的class文件即可。

分享到:
评论

相关推荐

    在Oracle中用Java实现身份证转换.pdf

    在Oracle数据库环境中,使用Java实现身份证转换是一种常见的技术需求,特别是在我国进行15位到18位身份证升级的过程中。Oracle数据库作为一个主流的关系型数据库,它提供了丰富的功能支持,包括通过Java来扩展其功能...

    基于springboot oracle java-swing 的 职工考勤管理信息系统.zip

    在本项目中,Java用于编写业务逻辑、数据访问对象(DAO)、控制层和服务层的代码。 5. **MVC设计模式**:Model-View-Controller(模型-视图-控制器)是软件设计的一种模式,常用于Web应用。在SpringBoot中,模型...

    Flex结合Java连接Oracle数据库实现用户登录

    4. **JDBC (Java Database Connectivity)**: JDBC是Java中用来连接数据库的标准接口,它允许Java程序通过编写SQL语句来访问和操作数据库。在Java和Oracle数据库之间建立连接时,需要使用JDBC驱动。 5. **用户登录...

    java编写的一个聊天的实例

    **数据库交互**在聊天应用中用于存储用户信息、聊天记录等数据。Java提供了JDBC(Java Database Connectivity)API来连接和操作各种类型的数据库,如MySQL、Oracle等。开发者需要编写SQL语句来插入、更新、查询和...

    Oracle_11g_JDBC_ojdbc6.rar

    2. 使用CLOB类型:如果数据量过大,可以考虑将数据存储在CLOB(Character Large Object)类型列中,CLOB适合存储大文本数据。 3. 分批插入:如果一次性插入的数据量太大,可以考虑分批插入,减少单次操作的数据量。 ...

    基于java的Oracle数据库工具 WARTS.zip

    - Java是一种跨平台的编程语言,它的“一次编写,到处运行”特性使得WARTS能够在多种操作系统上运行,包括Windows、Linux和macOS等。 - WARTS利用Java的Servlet和JSP(JavaServer Pages)技术来构建Web应用,...

    Java学习资料 Java SE 介绍 Java SE 阶段的相关代码,主要为课堂中用到的事例

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。Java SE(Java Standard Edition)是Java平台的核心部分,它提供了用于开发和运行桌面应用程序、服务器端应用程序以及嵌入式系统的环境。...

    java开始面试的第63天.doc

    在Java面试中,深入理解基础概念...在实际编程练习中,应确保熟练掌握所有示例程序,包括异常处理、数据结构操作、SQL查询和存储过程编写。这有助于提升对Java和数据库编程的理解,从而在面试中展现出扎实的技能基础。

    JAVA技术资料.pdf

    `recover` 是Oracle中用于数据库恢复的命令。`init.ora` 文件是Oracle的参数配置文件,用于配置数据库的启动参数。`spfile` 是服务器参数文件,用于存储数据库实例的配置参数。 此外,文件提到了`alert log`,这是...

    java 连接数据库实现用户登录功能

    通过以上步骤,你可以用Java编写一个简单的用户登录系统,连接到Oracle数据库进行身份验证。这个项目对初学者来说是一个很好的起点,可以深入理解JDBC的工作原理,并了解如何在Java中与数据库进行交互。记得不断练习...

    jeecms-2.3.2-final-db oracl建库脚本

    1. **数据类型转换**:MySQL中的INT在Oracle中可能是NUMBER,DATE在Oracle中是DATE类型,而TIMESTAMP在Oracle中用于存储精确时间信息。 2. **索引创建**:MySQL中的INDEX在Oracle中是CREATE INDEX,同时Oracle支持...

    java 04747《Java语言程序设计(一)》真题和教材

    5. Java集合框架:集合框架是Java中用于存储和操作对象的容器,包括List、Set、Map等接口及其实现类。它们提供了丰富的操作方法,方便程序员处理数据。 6. 异常处理:Java提供了异常处理机制,通过try-catch-...

    信工java实验

    它以其“一次编写,到处运行”的特性而闻名,因为它可以在任何支持Java虚拟机(JVM)的平台上运行。 实验通常涉及以下几个方面: 1. **基础语法**:Java的基础语法包括变量、数据类型(如整型、浮点型、字符型和...

    4747 JAVA(一) 自考教程

    集合框架是Java中用于存储和操作对象的工具,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。理解它们之间的区别和使用场景,以及迭代器和泛型的概念,对编写高效代码至关...

    java-作业.rar

    数组在Java中用于存储同类型的多个元素,而集合框架如ArrayList和LinkedList则是动态管理对象的容器,提供了更灵活的数据结构。学习者会学习如何创建、遍历和操作这些数据结构。 实验四可能会讲解类和对象的概念,...

    java课件---陈国君

    集合框架是Java中用于存储和操作数据的重要组件,包括ArrayList、LinkedList、HashSet、HashMap等数据结构,极大地提高了代码的可读性和复用性。 在这些课件中,可能会涵盖以下核心Java概念: 1. **基础语法**:...

    JAVA教程

    Java集合框架是Java中用于存储和管理对象的工具,包括List、Set、Map等接口及其实现类。理解ArrayList、LinkedList、HashSet、HashMap等的区别和使用场景,是提升Java编程能力的重要步骤。 五、多线程 Java内置了对...

    Oracle-ERP开发笔记

    - 在Oracle Forms中,可以为特定的ITEM(字段)设置必填属性,确保用户在提交表单之前必须填写这些字段。这通常通过属性窗口中的“Required”选项来完成。 **2. 设置ITEM的初始值为当前日期** - 为了提高用户体验,...

    java从入门到交通

    随着对Java基础知识的掌握,你将接触到集合框架,这是Java中用于存储和管理数据的重要工具,包括ArrayList、LinkedList、HashSet、HashMap等。此外,IO流和NIO(非阻塞I/O)也是必不可少的知识,它们用于读写文件和...

Global site tag (gtag.js) - Google Analytics