SQL CLRでSTRCONV関数

以下の内容のSqlClrStrConv.vbをc:\tmpに作成します。
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server

Public Class SQLCLR
_
Public Shared Function SqlStrConv(ByVal str As SqlString, ByVal mode As SqlInt32) As SqlString
Return StrConv(str.ToString, mode)
End Function
End Class

コンパイルします。
c:\tmp>vbc /out:SqlClrStrConv.dll /t:library /r:"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlaccess.dll" SqlClrStrConv.vb

sqlcmdかクエリアナライザで以下のコマンドを実行します。

USE [pubs]
GO
create ASSEMBLY [SqlClrStrConv]
FROM 'C:\tmp\SqlClrStrConv.dll'
WITH PERMISSION_SET = SAFE
GO

create function SqlStrConv( @str nvarchar(max),@conversion int ) returns nvarchar(max)
as external name SqlClrStrConv.SQLCLR.SqlStrConv
go

これで
select cast( dbo.SqlStrConv('abc',4) as nvarchar(10) )
go

で全角に変換できます。
[PR]
by nora1962 | 2009-09-15 22:42 | PC
<< いまさらながらXPでPostg... Vista SP2でACCES... >>