태그

2014년 12월 17일 수요일

ms sql 지정한 키가 사전에 없습니다. 해결방법

ms sql 2012에서 아래와 같은 메시지가 나오는 경우가 있다.


제목: mscorlib
------------------------------
지정한 키가 사전에 없습니다.
------------------------------


해결방법 : SP1 설치

2014년 12월 10일 수요일

MSSQL->ORACLE 연결 TNS 에러

제목: 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)
      (HOST=아이피)
      (PORT=1521)
    )
    (CONNECT_DATA=
      (SERVER=DEDICATED)
      (SERVICE_NAME=오라클SID)
    )
  )

2014년 12월 9일 화요일

Count rows for all tables 모든 테이블의 행 수 카운트


-- Count rows for all tables


모든 테이블의 행 수 카운트
SP_MSForEachTable 를 사용하면 간단하게 할 수 있다.




CREATE TABLE #counts
(
    table_name varchar(255),
    row_count int
)
EXEC sp_MSForEachTable @command1='INSERT #counts (table_name, row_count) SELECT ''?'', COUNT(*) FROM ?'
SELECT table_name, row_count FROM #counts ORDER BY table_name, row_count DESC
DROP TABLE #counts


--Ref from stack overflow.

QUOTED_IDENTIFIER


배치스케줄이 아래의 에러를 뱉으며 동작하지 않는다.


다음 사용자로 실행되었습니다: NT AUTHORITY\SYSTEM. 다음 SET 옵션의 설정이 잘못되어 DELETE이(가) 실패했습니다. 'QUOTED_IDENTIFIER'. SET 옵션을 인덱싱된 뷰 및/또는 계산 열에 대한 인덱스 및/또는 필터링된 인덱스 및/또는 쿼리 알림 및/또는 XML 데이터 형식 메서드 및/또는 공간 인덱스 작업과(와) 함께 사용할 수 있는지 확인하십시오. [SQLSTATE 42000] (오류 1934).  단계가 실패했습니다.


SET QUOTED_IDENTIFIER ON


설정을 넣으면 된다!


Identifier(식별자)를 "큰따옴표" 안에 넣으면 쓸 수 있다는 설정인데, OFF되어있다한들 이게 왜 문제가 된건지??

누가 나를 참조하는지

누가 나를 참조하는지




sp_fkeys TABLE_NAME


TABLE_NAME 은 참조 당하는 테이블을 써준다.


그럼 FK가 있는 테이블 리스트가 나온다.

2014년 12월 8일 월요일

sql delete from nested select



sql delete from nested select


join해서 delete할 대상을 구하기 위해 nested query를 사용할 때 주의해야한다.



declare @t1 table (n int)
insert @t1 values(1)
insert @t1 values(2)
insert @t1 values(3)


declare @t2 table (n int)
insert @t2 values(1)
insert @t2 values(2)
insert @t2 values(3)


--이렇게 하면 의도대로 3만 지워질까?
delete @t1
from (
   select *
   from @t1
  ) x
where x.n=3


--이렇게 하면?
delete @t2
from (
   select *
   from @t2
   where n=3
  ) x


select * from @t1
select * from @t2


--result:Nothing...!
--아무것도없다!



2014년 12월 7일 일요일

sql non overlapping random number


sql non overlapping random number
중복되지 않는 랜덤 값으로 채우기

ex) Fill random number from 0 to 15

declare @t int = 0
declare @tt table (n int)
while( (select count(n) from @tt) < 15)
begin
 set @t = floor(rand()*15) --Generate 0~15
 if @t not in (select n from @tt)
 begin
  insert into @tt values(@t)
 end
end

select n
from @tt

2014년 11월 16일 일요일

SI 개발 사이클의 퇴화

SI (System Integration)
예전의 개발은 고객이 오랫동안 해오던 업무를 더 편하고 정확하게 할 수 있는 툴을 만들어 주는 일이었다. 요구사항을 수렴하여 설계를 하고 만들어서 납품하면 끝이었다. 하지만 현재의 개발은 그렇지 않다. 업무 자체가 시시각각 변하므로 그에따라 요구사항도 변한다. 개발기간동안 요구사항이 변하기도 한다. 더 이상 이런식의 사이클은 널리 쓰일 수 없다.

고통이 나를 성장시킨다?

고통은 그 보다 작은 고통에 대한 감각을 무디게 만들 뿐, 성장과는 관련이 없다.
물론 성장이 그것을 의미한다면 맞는 얘기겠지만...

2014년 10월 29일 수요일

다세대 다가구 차이

다세대(연립주택)는 개별 소유권(분양) 가능. 즉, 2개 가지고 있으면 2주택자 해당.
다가구(단독주택)는 소유권 구분이 불가능하고, 1주택자 해당.

2014년 10월 23일 목요일

MSSQL 에서 MySQL 연결하기

1)
http://dev.mysql.com/downloads/connector/odbc/

여기에서 드라이버를 다운받는다.
최신버전은 안 되서, 구 버전으로 설치했다 (mysql-connector-odbc-3.51.30-winx64)


2)
ODBC 데이터 원본 만들기












3)
LinkedServer 만들기
















4)
OpenQuery 날려서 확인
select *
from openquery([GW2],'
select cmusr_userid, cmusr_name
from cms_user_copy
where cmusr_name=''이순신''')

MySQL ODBC 연결 에러

Connection Failed
[MySQL][ODBC 5.3(a) Driver]Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled):

예전 버전 드라이버로 연결하니까 잘 된다.

mysql-connector-odbc-3.51.30-winx64

2014년 10월 21일 화요일

EditValueChanged VS. EditValueModified

EditValueChanged 와 EditValueModified 이벤트의 차이

EditValueChanged는 한 글자 입력할 때마다 발생하고,

EditValueModified는 다 입력하고 컨트롤 아웃포커스 시 발생한다.

2014년 10월 20일 월요일

증분백업과 차등백업의 차이


둘 다 전체백업 이후 변화된 부분만을 백업하는 것은 동일하다.

[전체][증분1][증분2][증분3]
증분2는 증분1 이후 변화된 부분만 증분3은 증분2 이후 변화된 부분만을 기록한다.
그래서 복원 시 중간의 증분백업분들이 모두 필요하며, 손상 시 복원 불가.

[전체][차등1][차등2][차등3]
전체백업 이후 백업시점까지 변화된 모든 내용을 기록한다.
전체백업과 복원하려는 시점의 차등백업분 하나로 복원한다.

2014년 10월 14일 화요일

반올림 올림 내림 버림(절사) 차이와 구현방법


대부분 내림과 버림(절사)의 차이를 잘 모르고 혼용한다.
양수에서는 같지만 음수에서 차이가 발생한다.

음수 -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() 함수는 내림의 개념으로 차이가 있다.


한국 부동산 전망

기본에 충실해야한다.
수요가 공급보다 많으면 가격이 올라간다.
이제까지 수요가 공급보다 많았기 때문에 부동산불패신화가 이어진 것이다.
여러가지 임시방편격인 정책으로 컨트롤하지말고 기본을 생각해야한다.
주택경기를 활성화시켜 수요보다 공급을 많이 시키는 것이 근본적인 해결책이다.
출산율과 인구감소 vs. 사별, 이혼 및 라이프스타일의 변화로 인한 1인가구 등을 고려해야함.


연말정산 1원단위 처리 방법


결정세액까지는 1원단위까지 표기하고, 차감징수세액은 절사한다.
지방소득세도 동일함.


위와 같은 근거법규는 국고금단수계산법에 의거한 것입니다. 참고로 그 규정을 살펴보면 다음과 같습니다.

제1조 ①국고의 수입금 또는 지급금으로서 10원 미만의 단수가 있을 때에는 그 단수는 계산하지 아니한다. 전액이 10원 미만일 때에도 그 전액을 계산하지 아니한다.<개정 1963.11.11, 1983.12.29>
②수입금 또는 지급금으로서 대통령령이 정하는 것에 대하여는 제1항의 규정을 적용하지 아니한다.<신설 1963.11.11, 1983.12.29>

제2조국세의 과세표준액의 산정에 있어 1원 미만의 단수가 있을 때에는 이를 계산하지 아니한다.

제3조 분할하여 수입하거나 지급하는 금액은 그 총액에 대하여 제1조의 규정을 준용하고 그 분할금액이 10원 미만일때 또는 10원 미만의 단수가 있을 때에는 그 분할금액 또는 단수는 최초의 수입금 또는 지급금에 합산한다.

제4조 다른 법률의 규정중 단수계산에 관한 규정이 이 법의 규정에 저촉할 때에는 이 법의 규정을 적용한다.

제5조 이 법은 지방자치단체 기타 대통령령이 지정하는 공공단체와 정부투자기관관리기본법의 규정에 의한 정부투자기관에 이를 준용한다. 다만, 대통령령이 정하는 경우에는 그러하지 아니하다. <개정 1963.11.11, 1983.12.29>

2014년 10월 1일 수요일

2014 국세청 연말정산 프로그램 개발자 간담회 후기

국세청 연말정산 프로그램 개발자 간담회 다녀왔습니다.

국세청 전산실 (강서세무서)에서 2시간 30분 정도 진행되었습니다.


저는 오후 시간대에 갔었는데 200명 정도 모인 것 같습니다.

세법 개정된 내용 위주의 설명이었으며,

처음 개발하는 사람을 위한 내용은 아닙니다.

궁금한 거 있으면 연락주세요.


2014년 9월 23일 화요일

하느님이냐 하나님이냐가 중요한 게 아니라


기독교에서는 하나뿐인 존재라하여 하나님이라 부르고, 천주교에서는 하늘에 존재한다 하여 하늘님->하느님이라 부른다.

하느님이냐 하나님이냐, 신의 이름이 중요한 게 아니라 그 믿음과 실천이 중요하다.

2014년 9월 21일 일요일

튀지말고 평범하게 살라고 가르치는 분들께

튀지말고 평범하게 살라고 가르치는 분들께


나는 일제시대 일본 군인입니다.
한국에서 17살 어리고 예쁜 여자애들이 위안부로 왔습니다.
저들도 어느 가정의 소중한 딸들이기에 불쌍한 마음이 들었지만,
동료 군인들이 모두다 즐기는데 나만 참고있자니 바보같다는 생각이 들었습니다.
오늘 저녁엔 나도 그냥 평범한 사람이 되렵니다.

독일 시민의 90%가 나치당을 지지했다.

100년 전만해도 신분제도는 당연한 것이었다.

변화의 초기에는 항상 보수 세력의 강한 거부가 있다. 모든 개혁이 그렇게 이루어졌다.

이익의 배분 없는 기술의 발전


이익의 배분 없는 기술의 발전은 빈부격차를 늘려서 행복총지수를 떨어뜨린다.