下面介绍一个简单的示例,来创建一个基于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运行时环境。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

sybase asa转mysql_为Sybase ASA创建外部存储过程(Java示例)相关推荐

  1. linux sybase系统,Linux下安装Sybase

    一. 软件包准备工作 1.下载sybase for linux 安装包 ase1502_xe_linux.tgz 2.ftp上传下载的安装包 3.chown root.root ase1502_xe_ ...

  2. Sybase迁移Oracle字符集问题,Sybase更换字符集(cp850--cp936)

    修改的操作步骤 Sybase server名:eastsoftcourt (在Dsedit中设置) Sybase sa的口令:sybase 生产库名:escourt6 操作的目录:d:\sybase ...

  3. 对接钉钉审批_低代码对接钉钉创建外部联系人

    上次做的CRM对接了钉钉的报价审批功能,客户反映发起审批时每次都要填写完整的客户名称,还不能填错,还是不太方便,希望在钉钉上也能选择到白码系统中已有的客户数据. 白码--无代码 | 低代码软件开发​w ...

  4. 关于在hdfs上对数据创建外部表的原因

    对hdfs 上原始数据创建 外部表,然后通过查询插入的方式创建一张内部表,这样相当于复制一份表数据,而原始的数据并没有改变,不会干涉同事使用原始数据. 转载于:https://www.cnblogs. ...

  5. SQL Server 2005中创建CLR存储过程

    在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解 ...

  6. hive中创建外部表分区表测试

    --创建外部表 CREATE EXTERNAL TABLE my_report( last_update string, col_a string) PARTITIONED BY ( par_dt s ...

  7. Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】

    Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...

  8. 创建一个存储过程,返回指定员工的姓名和薪水

    /* 创建一个存储过程,返回指定员工的姓名和薪水 */ create or replace PROCEDURE queryEmp1(eno in number,empname out VARCHAR2 ...

  9. java创建数组大小为n_如何通过提供大小在Kotlin中创建一个像Java一样的数组?

    根据 reference,数组按以下方式创建: >对于Java的原始类型,存在不同的类型IntArray,DoubleArray等,它们存储unboxed值. 它们是使用相应的构造函数和工厂函数 ...

最新文章

  1. CentOs7中安装python3.7.6
  2. Android中项目中各个文件夹的含义和用途详解
  3. Batch Normalization 学习笔记
  4. Oracle inline view 简介
  5. 两个简单多边形面积相等,那么其中一个能分割成有限多块多边形,经过平移和旋转,拼合成第二个多边形...
  6. win7 下的 cmdhere 及其他
  7. java useragent 360 遨游 火狐_各种浏览器UserAgent一览表(桌面+移动)
  8. c语言程序女设计教学效果分析,C语言程序设计的教学论文
  9. 7-Flink的分布式缓存
  10. 接口类型的数组作为形参
  11. spring cloud构建互联网分布式微服务云平台-消息总线
  12. LLVM各种格式转换图
  13. Android小程序白屏,微信小程序web-view跳转h5 安卓白屏
  14. IDEA查看Java源码技巧
  15. 工作学习办公软件助手集合
  16. android studio 官方虚拟机,Android Studio 移动虚拟机
  17. 帝国php改密码后登录不进去,帝国cms后台不能登录的解决方法
  18. 什么是api_什么是API
  19. 2021年总结 2022年展望
  20. Android 项目实战:智慧北京(黑马)

热门文章

  1. 在虚拟机中快速安装 Ubuntu 18.04
  2. html头文件设置常用之meta设置缓存
  3. springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)
  4. python读写csv时中文乱码问题解决办法
  5. openssl生成自签证书
  6. 解决VS 于 致命错误 RC1015: 无法打开包含文件 #39;afxres.h#39; 问题
  7. Java IO (二),常见的输入/输出流
  8. Linux Xmanager
  9. 利用Vlan控制与隔离广播风暴
  10. nginx proxy_next_upstream导致的一个重复提交错误