Atiitt 使用java语言编写sql函数或存储过程

1.1. java编写sql函数或存储过程的机制 1

1.2. Java编写sp的优点 1

1.3. 支持java源码,class文件,blog file等模式。。 2

1.4. 编写java代码 2

1.5. 保存后,他会自动编译为class 2

1.6. 编写一个sql中转函数 3

1.7. 调用 3

现在的 数据库如DB2,Oracle等都支持用Java写存储过程

1.1. java编写sql函数或存储过程的机制

常用的sql语言。。涉及到游标,数据循环表处理还是不错的。。但是,一些复杂算法等,使用java或许更加好些。。。

Oracle支持用java编写fun和sp

Oracle里可以使用多种语言来编写存储过程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i开始支持用Java编写存储过程。

Java存储过程与一般的JDBC程序有所不同的是: 
1.有安全限制,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。 
2.获取数据库联接方式,connection = new OracleDriver().defaultConnection(); 
3.System.out,System.err,System.in等输入输出有所不同。可以利用某些命令重定向。

供Oracle使用的Java方法必须申明为static,所以在Oracle中你无法使用Java的动态特性,比如接口、反射等

通常我们都使用Ps/SQL为Oracle编写存储过程,从Oracle 8开始我们可以有另一种选择:Java。8.0开始,Oracle自带一个JVM,内置对Java的支持,任何Java能做的事情你都可以放到Oracle里面来做,你甚至可以在里面操作db2。这让Oracle具备了极其巨大的扩展能力,

现在的主流数据如DB2,Oracle等都支持用Java写存储过程

1.2. Java编写sp的优点

算法类方便

一些过程通用。

有class的支持,sql只是过程式 语言。。。

有些存储过程可能计算逻辑比较复杂,特别是可能需要调用外部资源,如WebService或者本地文件等。这时候,用SQL写比较麻烦或者根本没办法实现,这时候,可以采用Java来写存储过程。

工具使用navicat11   ,其他》》java

1.3. 支持java源码,class文件,blog file等模式。。

1.4. 编写java代码

package com.attilax.math;

// com.attilax.math.OracleJavaSp.m1()

public class OracleJavaSp {

public static void main(String[] args) {

// TODO Auto-generated method stub

OracleJavaSp.m1();

}

public static String m1() {

System.out.println("halo");

return "halo2";

}

}

1.5. 保存后,他会自动编译为class

1.6. 编写一个sql中转函数

CREATE OR REPLACE

FUNCTION "java方法" RETURN varchar2

AS

language java name 'com.attilax.math.OracleJavaSp.m1() return java.lang.String';

1.7. 调用

select "java方法"() as 结果 from dual

参考资料

ORACLE创建Java过程 - Oracle数据库栏目 - 红黑联盟.html

JAVA创建Oracle存储过程的实现 - 51CTO.COM.html

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,

uke交友协会会长  uke捕猎协会会长 Emir Uke部落首席大酋长,

uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长uke软件培训大师

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

uke终身教育学校副校长   Uke医院 与医学院方面的创始人

uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

Uke图像处理与机器视觉学院首席院长

Uke 户外运动协会理事长  度假村首席大村长   uke出版社编辑总编

转载请注明来源:attilax的专栏  ?http://blog.csdn.net/attilax

--Atiend  v8

Atiitt 使用java语言编写sql函数或存储过程相关推荐

  1. jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准

    JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  2. 利用Java语言编写一个猜数字游戏(有次数限制)

    猜数字小游戏. 利用Java语言编写. 题目: 用代码模拟猜数字的小游戏. 思路: 1.首先需要产生一个随机数字,并且一旦产生不再变化.用Random的nextInt方法 2.需要键盘输入,所以用到了 ...

  3. R语言编写自定义函数计算R方、使用自助法Bootstrapping估计多元回归模型的R方的置信区间、可视化获得的boot对象、估计单个统计量的置信区间、分别使用分位数法和BCa法

    R语言编写自定义函数计算R方.使用自助法Bootstrapping估计多元回归模型的R方的置信区间.可视化获得的boot对象.估计单个统计量的置信区间.分别使用分位数法和BCa法(Bootstrapp ...

  4. R语言编写自定义函数自定义ggplot图像中的图例(legend)的位置、图例标题、键值、文本字体大小(title、text、key)、颜色标识的大小、点形状pch的大小

    R语言编写自定义函数自定义ggplot图像中的图例(legend)的位置.图例标题.键值.文本字体大小(title.text.key).颜色标识的大小.点形状pch的大小 目录

  5. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  6. R语言编写自定义函数、创建使用ggplot2生成图标(icon)的主题(theme)函数、使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标、ggsave保存图标(png、svg

    R语言编写自定义函数.创建使用ggplot2生成图标(icon)的主题(theme)函数.使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标.ggsave保存图标(png.svg ...

  7. R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值、自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N、中位数median、四分位数的间距iqr)

    R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值.自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N.中位数median.四分位数的间距iqr) 目录

  8. R语言编写自定义函数使用Wilcoxon符号秩检验(Wilcoxon signed rank)实现多分组非参数成对检验(pairwise)、并使用p.adjust函数调整概率值

    R语言编写自定义函数使用Wilcoxon符号秩检验(Wilcoxon signed rank)实现多分组非参数成对检验(Nonparametric pairwise multiple comparis ...

  9. python定义函数prime判断是否是素数_用自定义函数判断素数 用C语言编写自定义函数prime(int x),判断x是否为素数?...

    用C语言编写自定义函数prime(int x),判断x是否为素数? int prime(int x) { int i,k k=(int)sqrt( (double)x ) for(i=2i&l ...

  10. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

最新文章

  1. python基础30个常用代码大全-Python3列表内置方法大全及示例代码小结
  2. .NET之模型绑定和验证
  3. 关于token你需要知道的
  4. 盘点下 NSX-v 中“不合理”的命名
  5. BZOJ.3144.[HNOI2013]切糕(最小割)
  6. 结合使用 Hadoop 和 Couchbase
  7. 百度地图 android SDKv2.2.0
  8. 华为面试题之洞穴逃生
  9. Origin画甘特图-II
  10. ssm小型超市管理系统的设计与实现毕业设计源码011136
  11. 微信多开源码 android,微信(WeChat)电脑端多开分析+源码
  12. linux启用日志记录功能,linux开启日志服务器功能
  13. 如何通过看原版电影学英语
  14. 工商总局:将对网店卖家身份进行全面普查
  15. dell服务器idrac配置
  16. Win10强制更新关闭方法
  17. win10自动修复无法修复你的电脑的解决方法(操作+原理理解)
  18. 基于微信小程序付费自习室系统(微信小程序毕业设计)
  19. Python爬虫实战(1):抓取毒舌电影最新推送
  20. 2022年上半年信息系统项目管理师上午客观题参考答案及解析(四)

热门文章

  1. excel vba系统下载_作品分享:《Excel VBA实用程序集(第2版)》下载
  2. python 波浪号用法_「波浪号」matlab中波浪号~的作用和用法 - 金橙教程网
  3. 如何去除小程序button的边框
  4. mysql,sqlserver数据库单表数据过大的处理方式
  5. 综合布线系统入门及应用(一)
  6. Python学习笔记【第十二篇】:Python异常处理
  7. 类中的反射 装逼利器
  8. 艰难时局下电子发现蓬勃发展
  9. 《高性能Linux服务器构建实战》——2.2节开始安装Varnish
  10. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础...