SQL Server/SQL Server Tip

CLR 등록 및 활성화 하기

SungWookKang 2015. 7. 20. 09:34
반응형

CLR 등록 및 활성화 하기

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server 2005 부터 Microsoft Windows .NET Framework 의 CLR(공용 언어 런타임) 을 제공 한다. 이를 통하여 Visual Basic .NET 및 Visual C#을 포함한 모든 .NET Framework 언어를 사용하여 저장 프로시저, 트리거, 사용자 정의 형식, 사용자 정의 함수, 사용자 정의 집계 및 다양한 함수를 만들 수 있다.

 

[CLR 활성화]

Clr enabled 옵션을 사용하여 SQL Server에서 사용자 어셈블리를 실행 여부를 지정 한다.

설정 변경 후 WOW64 모드를 제외한 경우 서버를 재시작 하지 않아도 된다.

설명

0

사용자 어셈블리 사용 안 함

1

사용자 어셈블리 사용

 

SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1

GO

 

RECONFIGURE WITH OVERRIDE

GO

 

SP_CONFIGURE 'CLR ENABLED', 1

GO

 

RECONFIGURE WITH OVERRIDE

GO

 

 

 

[Assembly 등록]

함수를 처리할 DLL 파일을 어셈블리에 등록하여야 한다.

BEGIN TRY

    DROP ASSEMBLY SHA

END TRY BEGIN CATCH END CATCH

GO

 

CREATE ASSEMBLY SHA FROM 'D:\SHA.DLL'

GO

 

 

 

[함수 만들기]

함수를 만들어서 정상적으로 동작 하는 지 알아 보자. 우선 일반적으로 함수를 만들 듯 function 문법을 사용한다. 외부 파일을 호출 할 수 있는 문법이 추가 된다. 실습에 사용된 DLL의 기능은 입력된 문자를 SHA 512로 반환하는 함수 이다.

BEGIN TRY

    drop function rf_Sha512

END TRY BEGIN CATCH END CATCH

 

go

Create Function rf_Sha512 (

@Input nvarchar(128)

)returns nvarchar(128)as External Name Sha.UserDefinedFunctions.Sha512

go

 

select dbo.rf_Sha512('1234')

go

 

 

SQL Server에서 지원하지 않는 기능이다 외부 스크립트를 사용하여야 할 때 매우 유용한 기능 인듯 하다.

 

2013-01-02 / 강성욱 / http://sqlmvp.kr

반응형