Sql server 返回值的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 而且显然没有启用选项显式或选项严格(这两个选项都会提醒您此问题)。默认情况下,函数的返

我试图通过CLR集成创建自定义SQL函数,但出现了T-SQL和CLR类型不匹配错误

动态链接库:

错误:

为“EncryptString”创建函数失败,因为返回值的T-SQL和CLR类型不匹配。

有人知道我错过了什么吗


谢谢:)

您的函数定义末尾缺少了一个
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