`
weiwenhp
  • 浏览: 3825 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java函数转换成Oracle中的函数

阅读更多
Oracle中有个非常强大的功能就是可以把Java编写的函数转换成Oracle数据库中的函数.转换之后我们可以像一般的函数那样用它.因为Oracle本身就是Java开发的,所以自然能很好的和Java兼容.我们就来说下具体怎么操作.就举一个简单例子,创建一个生成文件的函数.




1.第一步,建创java resource对象,它和function,procedure等对象一样都是Oracle中的object.所以语法也有一点点类似.



create or replace and compile java source named createfile as    --除开这一句下面的全部是标准的Java,如果你在eclipse中创建了一个class你可以原封不动复制过来.

  --createfile是对象的名字,就像表名一样.不过我们在函数的转换中不会直接用到它.只要用到Java中的类名和其中的函数名.java source对象名和里面java类名都不能重复.


package weiwenhp;   --此处包名的定义也可以去掉不要.但如果以后创建类时想调用这个类则必须要加上package.
import java.io.*;
public class JavaClass
{
   public static boolean createFile(String path,String fileName)
   {
     String fileInfo = path + "\\" + fileName;
     File newFile = new File(fileInfo);
     try{
       return newFile.createNewFile();
     }
     catch (Exception e){
            System.out.println(e.toString());
             return false;
         }
     }
}




2.第二步.创建一个Oracle函数并引用上面的Java函数createFile



CREATE OR REPLACE FUNCTION newfile (path IN STRING,filename IN STRING)
    RETURN boolean
IS
    LANGUAGE JAVA
    NAME 'weiwenhp.JavaClass.createFile(java.lang.String,java.lang.String) return boolean';


其中IS之前的语句是创建函数的标准语句.记得函数的参数和返回类型要和引用的java函数的参数和返回类型一致.后面的 LANGUAGE JAVA NAME是固定的关键字.

然后就是单引号中的内容了:格式是包名.类名.函数名(参数列表) return 函数返回类型.


到此任务完成.Oracle中产生了一个叫newfile的function.




3.写一段pl/sql来验证下.



declare
createresult boolean;
begin
createresult:= newfile ('d:\\','weiwenhp.txt');  --注意Java中字符串是用双引号,但Oracle中是用单引号.另外Java中区分大小写.Oracle中不区分.但引号内的是区分的
if(createresult) then
dbms_output.put_line('create file success');
else
dbms_output.put_line('create file failed');
end if;
end;




4.补充,调用自定义的类



我们知道在Java中除了调用系统定义好的类外还可以调用自定义的类.在这里也一样可以做到.

假如我们再创建一个java source.要调用前面定义好的类JavaClass

create or replace and compile java source named  newcreatefile as

import weiwenhp.JavaClass; --这里就是调用之前创建的class,要注意的一点是之前定义的类一定要用到package才行.其中weiwenhp就是package的名字


            --如果直接这样调用会错import JavaClass.


import java.io.*;

public class NewJavaClass
{
   //...........
}
分享到:
评论

相关推荐

    oracle_split_函数_返回数组

    最近在oracle 中用到拆分字符串返回数组,一直头痛,因为在 oracle 中没有类似java中有split 函数 ,所以要自己写。好不容搜到一个。那网上是到处都是这个代码。怎么找都是这个方法,我就用了。这个方法如下: ...

    Oracle sdo_geometry空间坐标系转换

    Oracle数据库对sdo_geometry空间坐标进行转换

    Oracle to_date()函数的用法介绍

    一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用”yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:”ORA 01810 格式代码出现两次”。 select to_date(...

    02-oracle函数1

    北京马士兵教育公众号:马士兵《 Java系列课程》Oracle函数北京马士兵教育公众号:马士兵《 Java系列课程》函数一般是在数据上执行的,它给数据的转换和处

    oracle+java的详细介绍

    查询 order by 子句 where 子句 , 常见的当行函数 2. 不同数据类型之间的转换 oracle中的”rr”与”yy”机制 1. 笛卡尔积: 2. 连接的种类 多行函数

    oracle迁移达梦常见问题汇总

    本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...

    oracle database 10g 完整参考手册part1

    第Ⅶ部分 Oracle中的Java 第37章 Java简介 第38章 JDBC程序设计 第39章 Java存储过程 第40章 Oracle真正应用群集 第41章 网格体系结构和管理 第Ⅷ部分 指南 第42章 Oracle数据字典指南 第43章 调整应用程序和SQL...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    《Oracle 从入门到精通》中的视频教程和PPT资料。 Oracle 11G从入门到精通视频的PPT 第1章-Oracle 11g数据库简介 ...第22章-在Java中连接Oracle JDBC与ODBC简介 Thin方式连接Oracle JDBC-ODBC桥连接Oracle

    Oracle函数大全

    oracle比较齐全html格式的函数文档,每个函数附有示例sql,日期转换、数值、字符等函数

    oracle database 11g 高清完整中文版part2

    第ⅵ部分 oracle 中的java  第42章 java 简介  第43章 jdbc 程序设计  第44章 java 存储过程 第ⅶ部分 指 南  第45章 oracle 数据字典指南  第46章 应用程序和sql 调整指南  第47章 sql 结果缓存和客户端查询...

    Oracle11g从入门到精通2

    从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用开发基础,并通过两个完整案例来介绍基于Java开发包和Oracle数据库...

    Oracle_Database_11g完全参考手册.part3/3

    9.4.6 组函数中的DISTINCT 9.5 列表函数 9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 ...

    Oracle_Database_11g完全参考手册.part2/3

    9.4.6 组函数中的DISTINCT 9.5 列表函数 9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 ...

    oracle使用管理笔记(一些经验的总结)

    13.oracle函数 26 (1)字符函数 26 (2)数学函数 26 (3)日期函数 27 (4)给表取别名的时候,不能加as;但是给列取别名,是可以加as 27 (5)转换函数 27 (6) to_char(date,'format') 27 (7) to_date(string,'format') 28 ...

    oracle database 11g 完整参考手册中文高清完整版part3

    第ⅵ部分 oracle 中的java  第42章 java 简介  第43章 jdbc 程序设计  第44章 java 存储过程 第ⅶ部分 指 南  第45章 oracle 数据字典指南  第46章 应用程序和sql 调整指南  第47章 sql 结果缓存和客户端查询...

    Oracle11g从入门到精通

    从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用开发基础,并通过两个完整案例来介绍基于Java开发包和Oracle数据库...

    oracle biee 11g新功能介绍PPT 中文版本

    全面的、可扩展的函数库,基于Java的整合方式 分区技术 分摊、内置财务功能和多用户回写支持 提供控制到单元格级的权限管理 跨平台 – Windows NT到IBM OS390 强大的MS OFFICE集成功能 功能强大的计算引擎 由OLAP...

    GETDATADICT(ORACLE).sql

    针对eos的业务字典表设置转换函数,将代码直接通过调用函数获取汉字说明。以上写法适用于oracle数据库,如需用于mysql需要稍作改造

    JAVA上百实例源码以及开源项目源代码

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

Global site tag (gtag.js) - Google Analytics