sql-server - 创建Assembly成功,sys. assembly_modules中没有找到任何内容

标签 sql-server integration clr

第一次尝试 CLR 集成,这样我就可以使用正则表达式工具。

我创建程序集:

CREATE ASSEMBLY SQLRegexTools
  FROM 'D:\CODE\SQLRegexTools\SQLRegexTools\bin\Release\SQLRegexTools.dll'

此操作成功,并且程序集出现在 SELECT @ FROM sys.assemblies 中。

但是没有记录返回到 SELECT * FROM sys.Assembly_modules。

当我尝试创建函数来调用其中一种方法时,

CREATE FUNCTION RegExMatch(@pattern varchar(max)
                            , @SearchIn varchar(max)
                            , @options int)
RETURNS varchar
 EXTERNAL NAME SQLRegexTools.Functions.RegExMatch

我收到错误“消息 6505,在程序集“SQLRegexTools”中找不到类型“函数”。

VB 模块的类名称是“Functions”。为什么这在错误中被称为类型,为什么我在模块中看不到任何内容?

最佳答案

当 SQL Server 无法解析所提供的名称时,会发生此错误。尝试下面的代码片段,看看是否可以解决问题。

CREATE FUNCTION RegExMatch(@pattern varchar(max)
                            , @SearchIn varchar(max)
                            , @options int)
RETURNS varchar
AS EXTERNAL NAME SQLRegexTools.[Functions].RegExMatch

用于访问 native 代码的各个函数/方法的解析与多部分对象名称(例如类型)相对难以区分。

额外注意的是,利用嵌套命名空间的 native 代码必须完全限定同一对引号内的嵌套命名空间。例如,如果 RegExMatch 位于 SQLRegexTools.A.B.C.RegExMatch,则在将其与SQL Server 中的外部名称

关于sql-server - 创建Assembly成功,sys. assembly_modules中没有找到任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44935686/

相关文章:

java - 在 jBoss 服务器中出现 java.lang.RuntimeException : Error unmarshalling file:/opt/jboss-5. 1.0.GA/server/port_1/conf/bootstrap.xml 异常

.net - CLR (.NET) 是否允许两个应用程序在同一执行环境中执行?

sql-server - 使用 SQL Server Management Studio 2005 导出时使用 UTF-8 编码保存 CSV

sql-server - 与 CreateTableDef 链接时如何设置主键

spring - 是否有任何 spring 集成 tcp-inbound-channel-adapter 示例?

.net - PowerBuilder 中嵌入的 .NET 控件随机崩溃

assemblies - 如果 typeof(Xyz) 存在,为什么 System.Type.GetType ("Xyz") 返回 null?

sql-server - 可以忽略 DbUpdateConcurrencyException 吗?

MySQL 相当于 MS SQL 交叉应用

javascript - 将 AngularJS 应用程序与 Google Analytics 集成