Sql server 返回值的T-SQL和CLR类型不匹配
我试图通过CLR集成创建自定义SQL函数,但出现了T-SQL和CLR类型不匹配错误 动态链接库: 错误: 为“EncryptString”创建函数失败,因为返回值的T-SQL和CLR类型不匹配。 有人知道我错过了什么吗Sql server 返回值的T-SQL和CLR类型不匹配,sql-server,tsql,types,clr,integration,Sql Server,Tsql,Types,Clr,Integration,我试图通过CLR集成创建自定义SQL函数,但出现了T-SQL和CLR类型不匹配错误 动态链接库: 错误: 为“EncryptString”创建函数失败,因为返回值的T-SQL和CLR类型不匹配。 有人知道我错过了什么吗 谢谢:)您的函数定义末尾缺少了一个As字符串: Public Shared Function EncryptString(ByVal strItem As String) As String 而且显然没有启用选项显式或选项严格(这两个选项都会提醒您此问题)。默认情况下,函数的返
谢谢:)您的函数定义末尾缺少了一个
As字符串
:
Public Shared Function EncryptString(ByVal strItem As String) As String
而且显然没有启用选项显式
或选项严格
(这两个选项都会提醒您此问题)。默认情况下,函数的返回类型是对象
,它没有到任何SQL Server数据类型的映射
由于不知道加密软件包的作用,将加密版本存储为字符串通常也是一个糟糕的计划(除非软件包自动执行例如Base64编码?您是否缺少函数的返回类型?非常感谢,现在正在工作:)也谢谢您的建议,加密包自动完成所有操作
CREATE ASSEMBLY EncrypterDecrypter
FROM 'c:\dll\Encrypter_Decrypter\Encrypter_Decrypter.dll'
WITH PERMISSION_SET = SAFE
GO
CREATE FUNCTION EncryptString(@strItem NVARCHAR(MAX)) RETURNS NVARCHAR(MAX)
AS EXTERNAL NAME EncrypterDecrypter.Encrypter_Decrypter.EncryptString;
GO
Public Shared Function EncryptString(ByVal strItem As String) As String