爱问知识人 爱问教育 医院库

怎样使用Java编写Oracle存储过程?

首页

怎样使用Java编写Oracle存储过程?

怎样使用Java编写Oracle存储过程?

提交回答

全部答案

    2017-07-26 23:41:54
  •   通常我们都使用Ps/SQL为Oracle编写存储过程,从Oracle 8开始我们可以有另一种选择:Java。8。0开始,Oracle自带一个JVM,内置对Java的支持,任何Java能做的事情你都可以放到Oracle里面来做,你甚至可以在里面操作db2。
      这让Oracle具备了极其巨大的扩展能力,只要你愿意,完全可以开发一个trigger,让它在适当的时候给管理员的msn发送一条即时消息。 好消息说完了,现在是坏消息:由于ps/SQL是过程化的语言,它基本上不具备多态的概念,供Oracle使用的Java方法必须申明为static,所以在Oracle中你无法使用Java的动态特性,比如接口、反射等。
      不过这并不妨碍你用Java做爱做的事。 我们以一个简单的hello world为例,我想任何一个有经验的Java程序员都能够通过这个例子,派生出其他希奇古怪的应用,有好的创意记得要与我共享,我的msn是 首先是创建一个Java类,你可以用Jbuilder/Eclipse来编写,也可以直接在Oracle的控制台里面创建。
      前者不多说,看看后一种方式。 启动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文件即可。
      

    S***

    2017-07-26 23:41:54

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):