MSSQL SP에서 외부 DLL 사용하는 방법 (CLR 확장저장프로시저) 1.사전작업(CLR환경을사용하도록설정합니다.) EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'clr enabled', 1 GO RECONFIGURE GO 2. Visual Studio에서 dll 생성 - 클래스라이브러리 3. 클래스를 생성한다. 4. namespace는 삭제한다. 5. class를 public으로 만든다. 6. static으로 Function이 될 메서드를 생성한다. 8. 생성된 DLL을 SQL server의 특정 위치에 복사 9. 어셈블리를 만든다. -- DROP ASSEMBLY Encrypt create assembly Encrypt from 'c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\ClassLibrary1.dll' 10. Function을 만든다. --DROP FUNCTION dbo.fnEncrypt --DROP FUNCTION dbo.fnDecrypt --EXTERNAL NAME <method_specifier> assembly_name.class_name.method_name CREATE FUNCTION fnEncrypt(@value nvarchar(max)) RETURNS nvarchar(max) AS EXTERNAL NAME Encrypt.csStringEncrypter.Encrypt GO CREATE FUNCTION fnDecrypt(@value nvarchar(max)) RETURNS nvarchar(max) AS EXTERNAL NAME Encrypt.csStringEncrypter.Decrypt GO 11. Test select dbo.fnEncrypt('9901011122334...
대부분 내림과 버림(절사)의 차이를 잘 모르고 혼용한다. 양수에서는 같지만 음수에서 차이가 발생한다. 음수 -1.5를 내림(Floor)하면 -2가 된다. 음수 -1.5를 버림(Cut)하면 -1이 된다. 버림은 0과 가까운 쪽으로 붙는다. 양수는 내리고 음수는 올리면 버림과 같다. 하지만 버림 함수가 제공되지 않는 환경에서는 직접 구현을 해야한다. 아래는 세금의 1원단위를 절사하는 로직이다. Math.Floor(Math.Abs(dTaxAmt / 100)) * 10 * Math.Sign(dTaxAmt) 절대값을 100으로 나누고 내림하여 소숫점제거 후 10을 곱하고 부호를 붙이는 방식이다. 엑셀의 ROUNDDOWN() 함수는 버림(절사)의 개념이고, MS SQL이나 C#의 FLOOR() 함수는 내림의 개념으로 차이가 있다.
제목: Microsoft SQL Server Management Studio ------------------------------ 연결된 서버에 대한 연결 테스트에 실패했습니다. ------------------------------ 추가 정보: Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ 연결된 서버 "****"에 대한 OLE DB 공급자 "OraOLEDB.Oracle"의 데이터 원본 개체를 초기화할 수 없습니다. 연결된 서버 "****"의 OLE DB 공급자 "OraOLEDB.Oracle"이(가) 메시지 "ORA-12154: TNS:could not resolve the connect identifier specified"을(를) 반환했습니다. (Microsoft SQL Server, 오류: 7303) 도움말을 보려면 다음을 클릭하십시오: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=10.50.1600&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476 ------------------------------ 단추: 확인 ------------------------------ 해결 >>> tnsnames.ora 파일에 문제가 있다. MSSQL이 설치된 서버에 오라클 클라이언트 설치 경로 D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 여기 폴더에 tnsnames.ora 파일을 아래처럼 수정해준다. 연결이름= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) ...