sql server 中怎么应用触发器调用外部的java程序

sql server 中怎么应用触发器调用外部的java程序,第1张

调用外部程序或者命令

exec xp_cmdshell 'dir c:\'

注信培意不能调用需要用户干预才能继续运行的程序.

使用Sqlserver的xp_CmdShell扩展存储过程嫌掘的一个注意:

这个存储过程只能执行Dos控制台程序,其他的Exe程序不能在Sqlserver进程空间执行.

但外部程芹坦核式必须是一个自生灭的程式(即没有消息循环、不需要与用户交互),否则将会进入死循环中。

找到了这么一段,应该是说,java存储过程,不是在sqlplus中直接编译,而是编译好Java程序,然后加载到oracle数据库中,进行调用):

使用Java存储过程进行位运算

Oracle有理由不直接提供位 *** 作支持。由于Oracle提供了极为方便的Java存储过程,我们可以很方便的用来实现所有位 *** 作。

下面我们准备实现四种基本的位 *** 作。关于Java存储过程的内容,本文不给予太多描述,只引用必要的部分用于阐述问题。

首先,我们需要一个Java类,里面实现了位运算的四种基本功能。

public class BitOper {

public static int bitAnd(int a, int b) {

return a &b

}

public static int bitOr(int a, int b) {

return a | b

}

public static int bitXor(int a, int b) {

return a ^ b

}

public static int bitNot(int a) {

return ~a

}

}

为了便于描述问题,我将这个类设计的相当简单。

将其编译后得到BitOper.class。

接下来,使用Oracle提供的一个工具loadjava将上述类加载到数据库中。该工首银具在安装Oracle时已经自动安装。

loadjava –user user_name/password@sid BitOper.class

该命令执行完后,如果没有报错则表示加载成功。

最后一步工作是创建PL/SQL包装函数。这里有两种选择,一种是创建独立的函数,一种是创建用包封装的函数。为了减少篇幅,我选择使用第一种。

create or replace function bit_and

(

int1number,

int2number

) return number

DETERMINISTIC

AS LANGUAGE JAVA

NAME 'BitOper.bitAnd(int, int) return int'

/

create or replace function bit_or

(

int1number,

int2number

) return number

DETERMINISTIC

AS LANGUAGE JAVA

NAME 'BitOper.bitOr(int, int) return int'

/

create or replace function bit_xor

(

int1number,

int2number

) return number

DETERMINISTIC

AS LANGUAGE JAVA

NAME 'BitOper.bitXor(int, int) return int'

/

create or replace function bit_not

(

int1number

) return number

DETERMINISTIC

AS LANGUAGE JAVA

NAME 'BitOper.bitNot(int) return int'

/

将上述代码在SQLPLUS中执行后,当前用户就具备了四种基本位 *** 作的功能。

不妨使用几个例子来测试一者简宴下:

select bit_and(9,8) "9and8",

bit_or(3,4) "3or4",

bit_xor(3,5) "3xor5",

bit_not(3) "not3"

from dual

其结果为:

9and8 3or4 3xor5 not3

---------- ---------- ---------- ----------

8 7 6 -4

看起来一切都很简单,你是否这么认咐橡为呢?

SQL数据库本来就是可以兼容JAVA的,不过在java程序中调用数据时,要进行链接数据库的一些 *** 作,并且,需要在你的项目中导入连接数据库的Jar包,才可以,不然会提示错误!首先。。。你是一个程序员,你可以把自己看成你编写项基闹目型锋谈的神,你就是这个项目的主宰,一些的算法,一些的应用,都可以按照你的方法去卜碰完成!然后,就是代码的一些重复利用性要高。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12250501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存