SQL2005集成了CLR功能,即可以调用.NET写的DLL库。这样,数据库有动作时,通过触发器可以调用该DLL生成的Assembly程序集,通知外部程序。通常步骤如下:
第一步:
1. 选择SQL Servecr2005 配置工具=> Sql Servecr 外围应用配置器
2. 选择功能的外围应用配置器
3. 选择CLR集成中 启用CLR集成
第二步:
1. 在VS.NET环境中部署 SQL Server 项目将在为该项目指定的数据库中注册程序集。
2. 创建类,如下
public class Class1
{
public static string MySplit(int filedIndex, string filedName)
{
//filedIndex从1开始
try
{
if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
{
return "";
}
else
{
return filedName.Split('|')[filedIndex - 1].Trim();
} }
catch
{
return "";
}
}
}
注: 需去掉该类的命名空间
3. 生成得到程序集 ClassLibrary1.dll 第三步:
打开SQL Server 选择一个数据库,使用如下语句,创建程序集
CREATE ASSEMBLY Class1
AUTHORIZATION [dbo]
FROM 'C:\ClassLibrary1.dll'
WITH PERMISSION_SET = SAFE
第四步:
创建函数
CREATE FUNCTION dbo.MySplit
(
@filedIndex AS INT,
@filedName AS NVARCHAR(255)
)
RETURNS NVARCHAR(255)
AS
EXTERNAL NAME Class1.Class1.MySplit
注: Class1.Class1.MySplit
Class1 为程序集名;
Class1 为在C#中创建的类名;
MySplit 为方法名; 第五步,触发器调用函数。
请问各位,,在Oracle或者mySql中能否实现上述功能,如何实现????????????????
第一步:
1. 选择SQL Servecr2005 配置工具=> Sql Servecr 外围应用配置器
2. 选择功能的外围应用配置器
3. 选择CLR集成中 启用CLR集成
第二步:
1. 在VS.NET环境中部署 SQL Server 项目将在为该项目指定的数据库中注册程序集。
2. 创建类,如下
public class Class1
{
public static string MySplit(int filedIndex, string filedName)
{
//filedIndex从1开始
try
{
if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
{
return "";
}
else
{
return filedName.Split('|')[filedIndex - 1].Trim();
} }
catch
{
return "";
}
}
}
注: 需去掉该类的命名空间
3. 生成得到程序集 ClassLibrary1.dll 第三步:
打开SQL Server 选择一个数据库,使用如下语句,创建程序集
CREATE ASSEMBLY Class1
AUTHORIZATION [dbo]
FROM 'C:\ClassLibrary1.dll'
WITH PERMISSION_SET = SAFE
第四步:
创建函数
CREATE FUNCTION dbo.MySplit
(
@filedIndex AS INT,
@filedName AS NVARCHAR(255)
)
RETURNS NVARCHAR(255)
AS
EXTERNAL NAME Class1.Class1.MySplit
注: Class1.Class1.MySplit
Class1 为程序集名;
Class1 为在C#中创建的类名;
MySplit 为方法名; 第五步,触发器调用函数。
请问各位,,在Oracle或者mySql中能否实现上述功能,如何实现????????????????
解决方案 »
- 如何配置Oracle XSQL Servlet和Tomcat
- 请问各位mysql数据库表 在java中如何备份
- 更新timestamp类型,精确到微秒,好像不行么,高手帮忙
- 关于Oracle中Trigger的问题
- 求助:oracle9i_linux,用备份的数据文件恢复系统后,导致控制文件版本不对,求有经验的朋友帮忙恢复,愿报酬.
- oracle启动不了! 求助!!!急!!!谢谢了!!!
- 再线等待。。。 oracle9i 里面 怎么判断字长的,那 sql server2k里面有怎么样判断的呢??
- 大侠们救救我吧!!!!!!!!
- sqlplus数据显示格式问题?
- 能够这样使用吗?
- 100分求SQL一条,关于触发器内捕捉语句
- orcl导入,纠结ing
如果在应用上要用到不适合用PL/SQL语言的话,这时就要使用其它语言进行编制,然后由PL/SQL作为外部例程进行调用。
在Oracle8之前的版本,PL/SQL和其它语言的唯一通信是借助于DBMS_PIPE和DBMS_ALERT包来实现,在使用之前必需建立一个OCI接口或预编译器编制的监护程序,使用比较复杂。外部例程的出现,只需在PL/SQL中建立一个函数映射到外部例程对应的函数,就像普通的PL/SQL函数使用一样,简化了使用过程
使用COM对象说明
COM对象设计都会提供了三个基本操作给开发人员使用,分别为:获取属性值,设置属性值(只读属性除外),调用方法。Oracle数据库在Windows的平台下提供了操作COM对象的接口,属于C语言外部例程模式。