作为JAVA程序员,对ORACLE的javasource一直是想找个机会下手的。呵呵!风高月夜,此时正下手之机。

Oracle有提供一个叫“外部例程”来实现与其他编程语言的访问。例如可以将业务逻辑写在JAVA类中,通PL SQL进行调用,从而实现了逻辑层与数据库分离。

1.0创建java source

create or replace and compile java source named JTest as

public class JTest

{

public static String entry(String s,int i)

{

return "First "+i+" hello"+s;

}

}

1.1创建调用function

create or replace function read_string

(t in varchar2,i number)

return varchar2 is

language java

name ' JTest.entry(java.lang.String,int) return t';

1.2调用测试

SELECT read_string(' world',10) from dual

1.3 如果是已经编译好的class文件,也可通过enterprise manage console,在“方案”下找到“源类型”,右击”java类”,选择”加载java“,选择对应的class文件即可。

2.0上述例子比较简单,下面使用一个读写文件的例子来加强印象。

2.1创建JAVA SOURCE

create or replace and compile java source named JTest2 as

import java.io.*;

public class JTest2

{

public static String readString(String s)

{

return readFile(new File(s));

}

private static String readFile(File file){

int c;

String s = new String();

FileReader inFile;

try{

inFile = new FileReader(file);

while((c= inFile.read()) != -1){

s += (char)c;

}

}catch(IOException ex){

return ex.getMessage();

}

return s;

}

}

2.2创建包装器

create or replace function Hek_JTest2(s in varchar) return varchar

is LANGUAGE JAVA

NAME 'JTest2.readString(java.lang.String) return String' ;

2.3调用测试

select Hek_JTest2('c:\test.txt') from dual

oracle 调用java 类_oracle数据库PL SQL调用Java类程序代码相关推荐

  1. oracle时间类型转化成java对象_Oracle数据库date类型与Java中Date的联系与转化

    以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助. new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当 ...

  2. java驱动pl sql优点_用PL/SQL和Java开发Oracle8i应用程序

    用PL/SQL和Java开发Oracle8 i应用程序 随着Oracle8i的发布,Oracle 在数据库里支持了二种主要的编程语言??PL/SQL和Java.今天,Oracle的许多客户既使用PL/ ...

  3. oracle写SQL快捷键,Oracle数据库PL/SQL快捷键设置详解

    Oracle数据库中,PL/SQL设置快捷键的方法是本文我们主要要介绍的内容,了解了这些设置可以是我们更效率地使用Oracle数据库,接下来就让我们一起来了解一下这部分内容吧. 1.登录后默认自动选中 ...

  4. 结束下面sql块_oracle: PL/SQL基本结构,语法,变量

    PL/SQL是基于块结构,不论是命名块还是匿名块都由3个部分组成 定义部分:定义常量,变量,游标,基础及复杂数据类型 执行部分:包含要执行的PL/SQL语句,sql语句,实现应用模块功能 异常处理部分 ...

  5. Oracle学习笔记之五sp1,PL/SQL之BULK COLLECT

    Bulk Collect特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率. BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQ ...

  6. 用PL/SQL语言编写一程序,实现按部门分段(6000以上、(6000,3000)、3000元以下)统计各工资段的职工人数、以及各部门的工资总额(工资总额中不包括奖金)

    用PL/SQL语言编写一程序,实现按部门分段(6000以上.(6000,3000).3000元以下)统计各工资段的职工人数.以及各部门的工资总额(工资总额中不包括奖金) 输出到一张表中 直接输出在屏幕 ...

  7. Oracle数据库PL/SQL块-存储函数和过程

    PL/SQL块 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分 结构如下: declare​ /*声明部分,在此声明变量,类型及游标*/begin​ /*执行部分,过程及sql语句, ...

  8. oracle查询数据都是问号,Oracle数据库PL/SQL Developer查询结果显示问号乱码的解决方法...

    PL SQL Developer,查询结果中的中文变成了一堆问号,SQL语句中的中文被提示invalid character,不能识别. 解决方法: 执行,select userenv('langua ...

  9. oracle if函数变量,Oracle数据库——PL/SQL编程

    PL/SQL块基本结构 declare -- 声明部分 begin -- 执行部分 exception -- 异常处理部分 end; 声明部分:包含变量.常量定义,由 declare 关键字开始,如果 ...

最新文章

  1. 如何防止android app被误删除,如何避免手机清理缓存时误删了重要文件【注意事项】...
  2. ASP.NET MVC 3: Razor视图引擎中 @: 和text 语法【转载】
  3. 2017双11技术揭秘—阿里巴巴数据库技术架构演进
  4. 面向对象、继承、抽象方法重载知识点整理
  5. tree(2018.10.26)
  6. Splash args 属性
  7. 如何利用路由器防止DoS拒绝服务疯狂***
  8. python中调用shell命令
  9. WIFI状态下SecoClient链接故障
  10. qtcpsocket断开_QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)...
  11. 101. 熟悉 Java 并发吗,谈谈对 JUC 线程池 ThreadPoolExecutor 的认识吧
  12. 九爷带你了解 zabbix 飞信以及机器人报警
  13. S@Kura的PHP进阶之路(四)
  14. 基于公开网站挖掘敏感信息的研究与分析- Fofa 搜索
  15. git学习记录/菜鸟教程(基于Gitcode)
  16. 双非小伙暑期实习斩获腾讯WXG offer,这不比博人传燃?
  17. 花2个月时间学习,面华为测开岗要30k,面试官竟说:你不是在....
  18. 自然语言处理中的数据获取与清洗总结(未更新完)
  19. PLS系列001 数据预处理
  20. 小米处理器鲁大师跑分曝光:入门也敢卖2000 元?

热门文章

  1. python之类与对象(2)
  2. PHP Zend Studio9.0怎么把代码搞成和服务器端的同步(就是直接在服务器端修改)
  3. Entity Framework 6 和 MVC5
  4. java: Comparable比较器,数组对象比较器
  5. Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will expire within 5 days
  6. group_concat 排序并取前三个
  7. P2115 [USACO14MAR]破坏Sabotage
  8. Maven的依赖范围
  9. 火柴排队(codevs 3286)题解
  10. 向窗口发送ctrl c复制 消息