`
PolyAngel
  • 浏览: 112725 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

Oracle中怎样使用JAVA函数及自定义函数(转)

 
阅读更多
环境:windows2000 + oracle9.2

1、loadjava

2、直接在Oracle中使用Java源,Oracle内置JVM,对java支持很好

(1).   建立   java   source  

  create   or   replace   and   compile   java   source   named   js_output_test   as  
  public   class   js_test  
  {  
      public   static   String   js_desc()  
      {  
                return   "this   is   java   source   test.";  
      }  
  }  
   
(2).   发布java source

  CREATE   OR   REPLACE   FUNCTION   fn_test_js   RETURN   VARCHAR2  
  AS   LANGUAGE   JAVA   NAME   'js_test.js_desc()   return   java.lang.String';  
   
(3).   测试.  

  SQL>   set   serveroutput   on;  
  SQL>   var   v_test   varchar2(25);  
  SQL>   call   fn_test_js()   into   :v_test;  
  调用完成。  
  SQL>   print   v_test;  
  V_TEST  
  --------------------------------  
  this   is   java   source   test.

注意:发布时参数中的java.lang.String一定要写全,返回类型可以用number代替int

====================================================================
create or replace and compile java source named hello as
public class Hello {
    static public String Message(String yname) {
        return "Hello, " + yname;
    }
}

create or replace function hello (Name VARCHAR2) return VARCHAR2
     as language java name
     'Hello.Message (java.lang.String) return java.lang.String';
    
Select hello('every body!') From dual;
====================================================================
create or replace and compile java source named sea as
public class Sea{
    public static String myReplaceAll(String src,String name1,String name2) {  
          int a=0;     int n=name1.length();      int l=src.indexOf(name1,a);
          while(l>0){
              src = src.substring(0,l) + src.substring(l+n);
              a=a+n;
              l=src.indexOf(name1,a);
          }
    return src;
    } 
   
    public static String getSameCompany(String name11,String name22){
        if(name11==null || name22==null){
            return "false";
        }

        String s1=myReplaceAll(name11,"公司","");  String s2=myReplaceAll(name22,"公司","");
        s1=myReplaceAll(s1,"有限","");             s2=myReplaceAll(s2,"有限","");
        s1=myReplaceAll(s1,"责任","");             s2=myReplaceAll(s2,"责任","");
        s1=myReplaceAll(s1,"市","");               s2=myReplaceAll(s2,"市","");
        s1=myReplaceAll(s1,"股份","");             s2=myReplaceAll(s2,"股份","");
       
        if(s1.indexOf(s2)>=0 || s2.indexOf(s1)>=0){
            return "true";
        }else{
            return "false";
        }
    }
}

CREATE OR REPLACE Function same (name1 Varchar2, name2 Varchar2) Return Varchar2
    As Language Java Name
    'Sea.getSameCompany(java.lang.String,java.lang.String) return java.lang.String';
   
====================================================================
CREATE OR REPLACE Function SAME_COMPANY_NAME(Name1 In Varchar2, Name2 In Varchar2) Return Integer Is
Nam1 Varchar2(255); Nam2 Varchar2(255);
Begin
Nam1 := Replace(Name1, '公司', ''); Nam2 := Replace(Name2, '公司', '');
Nam1 := Replace(Nam1, '有限', ''); Nam2 := Replace(Nam2, '有限', '');
Nam1 := Replace(Nam1, '责任', ''); Nam2 := Replace(Nam2, '责任', '');
Nam1 := Replace(Nam1, '市', '');   Nam2 := Replace(Nam2, '市', '');
Nam1 := Replace(Nam1, '股份', ''); Nam2 := Replace(Nam2, '股份', '');
If (Instr(Nam1, Nam2) > 0 Or Instr(Nam2, Nam1) > 0) Then Return 0; Else Return 1; End If;
End SAME_COMPANY_NAME;
====================================================================

分享到:
评论

相关推荐

    Oracle经典自定义创建函数和存储过程

    自定义函数不能被直接在Java中调用,可以通过存储过程调用函数的方法。本文采用实例的方法,介绍如何在Oracle数据库客户端PL/SQL中创建自定义函数,然后创建相应的存储过程调用该函数,最终实现一个实例计算。

    java报表API源代码(程序数据集、自定义函数和导出API)

    本代码主要开源了java报表工具中程序数据集和自定义函数部分的代码,通过该开源代码,你可以了解报表工具的内部原理,掌握国内主流java报表工具的各类接口使用方法,并运用该接口对软件产品或项目中的个性化的需求...

    如何利用Oracle命令解决函数运行错误

    自定义了一个 Oracle 函数。编译正常;使用 PL/SQL Developer 的 Test 窗口模式,测试通过。但 Java 直接调用失败;使用 PL/SQL Developer 的 SQL 窗口模式,执行失败。 没有有效的错误提示信息。 2 分析 肯定是...

    舞动DB2系列:从Oracle到DB2开发—从容转身(王飞鹏,李玉明) PDF高清扫描版

    第二部分讲述了db2开发工具方面的知识,以及如何更有效地开发存储过程、用户自定义函数和触发器。第三部分讲述了开发者在java ee和.net架构下开发数据应用的最佳实践。同时,在附录a中,针对sql pl与plsql做了集中...

    oracle调用webService

    在函数体中,我们使用 UTL_DBWS 工具包来调用 WebService,首先我们声明了一个名为 l_service 的变量,用于存储 WebService 的服务句柄,然后我们使用 utl_dbws.create_service 函数来创建服务句柄,并将其赋值给 l_...

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

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

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

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

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

    由OLAP引擎基于立方体中所定义的层次对模型进行统计计算, 提供函数模版,随时粘贴使用 内嵌250个丰富的数学计算、财务计算和统计计算函数 内置了Expense Reporting、期初值、期末值、期间均值、2次计算、YTD、QTD等...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

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

     《Java JDK 7学习笔记》是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上的各种问题及解决方案。  《Java JDK 7学习笔记》详细介绍了JVM、JRE、Java SE API、JDK与IDE...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics