데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

CLR 등록 및 활성화 하기

jevida(강성욱) 2016.09.13 06:57 Views : 1565

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에서 지원하지 않는 기능이다 외부 스크립트를 사용하여야 할 때 매우 유용한 기능 인듯 하다.



강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1711 세션에 따른 캐시된 쿼리 플랜 설정 확인 jevida(강성욱) 2016.09.13 866
1710 SQL Server 특정 세션에 대한 마지막 실행 문장 확인 jevida(강성욱) 2016.09.13 713
1709 DMV - 데이터베이스 버퍼 메모리 사용량 확인 jevida(강성욱) 2016.09.13 2984
1708 Sys.dm_fts_parser을 이용한 문자열 구문 분석 jevida(강성욱) 2016.09.13 1291
1707 DMV에서 SQL Server 리소스 데이터베이스 값 jevida(강성욱) 2016.09.13 1063
1706 키워드로 PROCEDURE, FUNCTION 찾기 jevida(강성욱) 2016.09.13 1565
1705 BCP 사용 jevida(강성욱) 2016.09.13 3380
1704 DATEADD를 사용한 날짜 추가 및 빼기 jevida(강성욱) 2016.09.13 1153
1703 Change Data Capture(CDC) – 변경 이력 추적 jevida(강성욱) 2016.09.13 2475
1702 SSMS 에서 디버깅 하기 jevida(강성욱) 2016.09.13 7080
» CLR 등록 및 활성화 하기 jevida(강성욱) 2016.09.13 1565
1700 SQL Server 확장 이벤트를 사용한 Tempdb 병목현상 추적 jevida(강성욱) 2016.09.13 1609
1699 MAXDOP 설정 jevida(강성욱) 2016.09.13 1796
1698 SQL Server 이름 변경 하기 jevida(강성욱) 2016.09.13 1575
1697 SQL Server 마지막 시작 시간 확인 하기 jevida(강성욱) 2016.09.13 702
1696 여러 포트를 사용하도록 SQL Server 구성 jevida(강성욱) 2016.09.13 1812
1695 SQL Server가 사용중인 TCP/IP 포트 확인 jevida(강성욱) 2016.09.13 10929
1694 SQL Server SP_Congifure 변경 사항 캡처 jevida(강성욱) 2016.09.13 2061
1693 SQL Server Net Libraries jevida(강성욱) 2016.09.13 1109
1692 SQL Server 별칭 설정 및 사용 jevida(강성욱) 2016.09.13 2648





XE Login