블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
Altibase (4)
Oracle (7)
MSSQL (7)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
04-17 10:14
 

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 

최근에 올라온 글

최근에 달린 댓글



긴 연휴가 끝난 오늘... 외국 고객사에서 그룹웨어 기능이 이상하다고 연락이 왔습니다.

오류를 찾아보다가 로그를 확인한 결과 아래와 같은 문제가 발생하였었습니다.

트랜잭션(프로세스 ID:XX)이 잠금 리소스에서 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다. 트랜잭션을 다시 실행하십시오.


복구 명령도 실행해보고 별짓을 다하다가... 가장 무식한 방법을 사용하였습니다.

"데이터베이스 복제"


결과는 대성공입니다!!! 역시 무식하게 가는게 좋을 수도 있네요...
(다행히 복제가 성공할 정도로는 깨지지 않아서...)

Posted by 자수씨
, |





위와 같이 Department 테이블에 상위 부서에 대한 정보를 FK 로 갖는 경우가 있을 것 입니다.

이러한 경우 자신의 부서를 포함하여 상위부서를 찾으려면 단순한 쿼리문으로는 불가능 할 것입니다.


오라클에서는 아래와 같이 재귀호출을 사용할 것 입니다.

하지만 MSSQL 에서는 CTE (Common Table Expressions) 을 이용하여 쿼리문을 작성할 수 있습니다.



WITH 절을 이용하여 CTE 를 선언한 이후에 사용하는 방식으로 재귀 호출을 위해 나온 것은 아니지만 재귀 호출이 필요할 때 사용할 수 있는 기능 중에 하나입니다.


새벽에 정리하다보니 좀 내용이 이상한 것 같습니다... 나중에 정신이 돌아온다면... 보완을 해야겠습니다.

Posted by 자수씨
, |

CONVERT( target_type, expression, date_style smallint ) RETURNS <data type>
사용법 date_style 결과 값
CONVERT(NVARCHAR(20), GETDATE(), 100) 100 Sep  2 2010  1:35PM
CONVERT(NVARCHAR(20), GETDATE(), 101) 101 09/02/2010
CONVERT(NVARCHAR(20), GETDATE(), 102) 102 2010.09.02
CONVERT(NVARCHAR(20), GETDATE(), 103) 103 02/09/2010
CONVERT(NVARCHAR(20), GETDATE(), 104) 104 02.09.2010
CONVERT(NVARCHAR(20), GETDATE(), 105) 105 02-09-2010
CONVERT(NVARCHAR(20), GETDATE(), 106) 106 02-Sep-10
CONVERT(NVARCHAR(20), GETDATE(), 107) 107 02-Sep-10
CONVERT(NVARCHAR(20), GETDATE(), 108) 108 13:35:31
CONVERT(NVARCHAR(20), GETDATE(), 109) 109 Sep  2 2010  1:35:31
CONVERT(NVARCHAR(20), GETDATE(), 110) 110 09-02-2010
CONVERT(NVARCHAR(20), GETDATE(), 111) 111 2010-09-02
CONVERT(NVARCHAR(20), GETDATE(), 112) 112 20100902
CONVERT(NVARCHAR(20), GETDATE(), 113) 113 2010-09-02 13:35
CONVERT(NVARCHAR(20), GETDATE(), 114) 114 13:35:31:510
CONVERT(NVARCHAR(20), GETDATE(), 120) 120 2010-09-02 14:02
CONVERT(NVARCHAR(20), GETDATE(), 121) 121 2010-09-02 14:02
CONVERT(NVARCHAR(20), GETDATE(), 126) 126 2010-09-02T14:02:50.

date_type 에 100을 빼면 세기를 포함안하고 표시를 한다고 합니다. 2010-09-02 --> 10-09-02



Posted by 자수씨
, |

com.microsoft.sqlserver.jdbc.SQLServerException: 문자열이나 이진 데이터는 잘립니다.


MSSQL 의 오류가 한글로 나오는 것으 좋은데, 저런식으로 퉁쳐서 나오는 오류 때문에 해결하기가 어렵습니다.

위의 오류가 발생한 부분은 update 쿼리로 아래와 같이 구성되어 있었습니다.
(MSSQL + iBatis 를 사용하였습니다.)
UPDATE TEST_TABLE
   SET TEST_COL_1 = ISNULL(#test_col_1#, 0)
 WHERE IDX = #idx#


#test_col_1# 의 값이 null 이 아니면 관계가 없는데, null 값으로 들어오면 위의 오류가 발생하는 것이였습니다.

지난 번에 찾았던 꼼수를 이용하여 일단 CAST 를 해보았습니다.
UPDATE TEST_TABLE
   SET TEST_COL_1 = ISNULL( CAST( #test_col_1# AS NVARCHAR ), 0)
 WHERE IDX = #idx#



=ㅁ=... 문제 없이 동작을 합니다...

쩝... MSSQL 에서 일단 문제가 생기면 CAST 나 CONVERT 신공이 필요한가 봅니다...

Posted by 자수씨
, |

테이블 별 row 개수 확인



테이블 별 사용량 확인




데이터베이스 내의 모든 테이블 drop 하기



데이터베이스 내의 모든 테이블 row delete 하기 (위의 것을 약간 응용해서...)





참고자료: http://www.holisticsystems.co.uk/blog/?p=3

Posted by 자수씨
, |

SQL Server 2008 로 서비스를 띄웠는데도 netstat -na 에서 1433 포트와 관련된 리스너가 없을 때는 다음과 같이 조치를 합니다.


SQL Server Configuration Manager 에서 SQL Server Network Configuration 을 보면 Protocol 에 대한 사용여부가 있습니다.


TCP/IP 가 Disabled 가 되어 있어서 1433 포트가 리스닝 상태가 되지 않았던 것이였습니다. Enabled 상태로 변경한 후 SQL Server 서비스를 재시작합니다.

Posted by 자수씨
, |

이번에 베트남 출장에 가면서 MS-SQL 에 대해서 많이 익히고 돌아왔습니다.

기본 설정으로 SQL Server 를 설치하고, Database 를 생성하였는데, 쿼리 분석기에서 한글이 정상적으로 입력이 되지 않는 것이였습니다. 임시로 문자열 앞에 N을 붙여 입력을 했었습니다.

하지만 별도의 방법이 따로 있었습니다. Database 를 생성하면서 Options 에 Collation 을 변경하는 것 입니다.

Collation: Korean_Wansung_CI_AI



처음에는 Collation 을 Korean_Wansung_CS_AI 로 만들었는데, 대소문자를 구분해버려서 원하는 결과가 나오지 않았습니다. 대소문자가 구분되지 않는 환경 구축을 위해서는 CI 옵션으로 설정해야 합니다.


Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백