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

Atiitt 使用java语言编写sql函数或存储过程的更多相关文章

  1. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...

  2. Fastjson是一个Java语言编写的高性能功能完善的JSON库。

    简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...

  3. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  4. 使用java语言编写窗口按钮

    使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import ja ...

  5. 第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

  6. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

  7. Java 语言基础之函数

    函数的定义: 函数就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 函数定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; re ...

  8. java语言编写矩阵的四则运算

    题目要求如下: 设计程序实现矩阵的四则运算 设计要求: (1) 实现矩阵的四则运算. (2) 考虑实现带变元的矩阵计算. (3)考虑实现矩阵的特征值和特征向量的计算. 我使用java语言写的 目录结构 ...

  9. Java语言编写TPL语言词法分析器

    程序实现原理: 将TXT文本中的数据读出,并按照其类别的不同,将关键字.数字以及运算符识别出来. 一.词法分析实验步骤 1. 熟悉TPL语言 2. 编写TPL语言程序,至少3个,一个简单,一个复杂的( ...

随机推荐

  1. BZOJ4974 八月月赛 Problem D 字符串大师 KMP

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4974 - 八月月赛 Problem D 题意概括 一个串T是S的循环节,当且仅当存在正整数k,使得 ...

  2. WinForm 屏保程序

    this.ShowInTaskbar = false; this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWind ...

  3. Shiro笔记(二)身份验证

    Shiro笔记(二)身份验证 一.核心代码 @Test public void helloWorldTest(){ IniSecurityManagerFactory factory = new In ...

  4. Python常见下划线

    python中常见的下划线意义 Python中常常使用下划线里对变量进行修饰,通常作为变量的前缀或者后缀出现,被修饰的变量一般存在特殊的用法: _XXX:不能被from module import _ ...

  5. php echo '<script>alert("插入成功")</script>';

    echo '<script>alert("插入成功")</script>'; <?php if ( ! defined('BASEPATH')) ex ...

  6. struts2动态跳转action,修改和添加共用一个页面

    <s:form action="role_%{ id == null ? 'add' : 'edit' }"> <s:hidden name="id&q ...

  7. 429. N叉树的层序遍历

    429. N叉树的层序遍历 题意 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 解题思路 和二叉树的层次遍历的思想一样: 实现 class Solution(object) ...

  8. zabbix-agentd 安装

    [root@node2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.ce ...

  9. C# Invoke方法

    留下备用,具体如下: Invoke()方法是U3D的一种委托机制: 1.它可以在脚本的生命周期(Start.Update.OnGUI.FixedUpdate.LateUpdate)中调用. 2.Inv ...

  10. PHP 实现 word/excel/ppt 转换为 PDF

    前段时间负责公司内部文件平台的设计,其中有一个需求是要能够在线浏览用户上传的 office 文件. 我的思路是先将 office 转换成 PDF,再通过 pdf.js 插件解析 PDF 文件,使其能在 ...