Home > Database > Mysql Tutorial > 为Sybase ASA创建外部存储过程(Java示例)

为Sybase ASA创建外部存储过程(Java示例)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 17:26:24
Original
806 people have browsed it

下面介绍一个简单的示例,来创建一个基于Java 的ASA存储过程, 数据库(ASA11.0或以上版本), 该示例很简单,输入主机名,返回对应的

衡量一个DBMS的功能是否强大,外部存储过程是否很方便创建和使用,是一个重要特征。

ASA数据库,很早就开始支持使用C, CLR(.NET)以及java等编程语言来创建存储过程。

下面介绍一个简单的示例,来创建一个基于Java 的ASA存储过程, 数据库(ASA11.0或以上版本), 该示例很简单,输入主机名,返回对应的IP地址,,如果不能解析,返回"".

先编写一个java类,大致内容如下:


import java.net.InetAddress;
import java.net.UnknownHostException;
public class SUPProcUtils
{
 
    public static String getIPOfHost(String host)
    {
        String resolvedIP = "";
        try
        {
            resolvedIP = InetAddress. getByName(host).getHostAddress();
        }
        catch (UnknownHostException e)
        {
        }
        return resolvedIP;
     
    }
 
    public static void main(String[] args)
    {
        System. out.println(getIPOfHost( "www.linuxidc.com"));
    }
}


然后连接目标数据库,执行下述SQL语句:
1. 指定jvm位置
alter external environment java location 'C:\\shared\\jdk1.6.0_31_x86\\bin\\java.exe'; // 这个主要是指定JVM的位置。

2. 安装java class

install java new from file 'C:\\Users\\workspace\\test\\bin\\SUPProcUtils.class';

3. 创建存储过程(函数)
create function getIPOfHost(IN hostname CHAR(128)) returns VARCHAR(128)
external name 'SUPProcUtils.getIPOfHost(Ljava/lang/String;)Ljava/lang/String;'
language JAVA;
这里边主要要注意的是参数类型以及返回值班类型,可以使用javap -c 得到原型说明。

4.示例查询:
select getIPOfHost('xxx.xxx.com');
返回:
100.172.102.173

总体来说,还是非常简单的。
至于ASA的C存储过程的创建,步骤稍麻烦些,代码写起来也稍费时间些,但是C存储过程是最高效的,因为它的执行不需要单独的JVM或者CLR运行时环境。

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template