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. 保存后,他会自动编译为class2

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://www.cnblogs.com/attilax/

--Atiend  v8

最新文章

  1. FFmpeg学习1:视频解码
  2. jQuery全屏动画焦点图
  3. 【笔记4】用pandas实现条目数据格式的推荐算法 (基于用户的协同)
  4. 推薦使用 Microsoft Anti-Cross Site Scripting Library V3.0
  5. py 抓取中文网址
  6. devexpress GridControl 行指示列图标绘制
  7. 搭建高可用的MongoDB集群
  8. QT4项目升级到QT5遇到的问题和解决方法
  9. bugfree搭建
  10. IntelliJ IDEA Windows下Spark开发环境部署
  11. HDU [P1151] Air Raid
  12. .NET Core 3.0-preview3 发布
  13. FloatingActionButton(悬浮按钮)使用学习<一>
  14. .net core DI 注册 Lazy<> 类型
  15. Java SE之网络爬虫①
  16. macbook install mysql
  17. SharePoint 修改用户属性User Name
  18. Oracle ORA-01940: 无法删除当前连接的用户
  19. java 对一个字符串去重,即去掉字符串内重复元素
  20. 当保存在Session中的对象,取出后,在外部发生改变时会怎样

热门文章

  1. 【Java】 剑指offer(5) 从尾到头打印链表
  2. wxpython安装,demo下载
  3. HDU1789 Doing Homework again 做作业【贪心】
  4. Java开发环境安装过程
  5. 20172302 《Java软件结构与数据结构》第四周学习总结
  6. 推荐两款好用的反编译工具(Luyten,Jadx)
  7. LeetCode全文解锁 √
  8. ES-常见搜索方式
  9. linux 内核 内存管理 slub算法 (一) 原理
  10. 关于Revit API修改元素参数的问题?