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 为方法名; 第五步,触发器调用函数。
请问各位,,在MySQL及Oracle中能否实现上述功能,如何实现????????????????

解决方案 »

  1.   

    Oracle 有这个功能, 
    MySQL 不知道, 猜测没有数据库服务器扮演了 CLR Host, 
    负责加载 CLR, 运行托管代码, 线程模型跟通常的 host 不同.
      

  2.   

    Oracle 需要单独安装一个服务器扩展 , 是在 Oracle 10g R2 开始支持的, 
    搜索 ORacle CLR 即可.
      

  3.   


    可以给出更详细的说明吗??在实现过程上与SQL2005有什么区别??
      

  4.   


    Oracle  CLR搜不到呀???
      

  5.   

    MySQL或者Oracle通过添加触发器   实现与外部程序的关联??请高手指点。。
      

  6.   

    http://www.oracle.com/technology/tech/dotnet/ode/index.html
      

  7.   

    老兄,在ORACLE 9里可以实现吗???