posted by 지긋이 2021. 2. 15. 14:34

데이터 누락건이 있어 누락된 데이터를 엑셀에 다운로드한 후 데이터를 입력하는 계기가 있었다.
이 때 날짜 데이터를 DB에 넣어야하는데... 자꾸 21/1/144197과 같은 숫자로 표기되었다.

사실 입력 단계에서부터 시행착오는 있었는데...
INSERT INTO 후 데이터를 입력하려하면 '이 수식에 문제가 있습니다.'가 자꾸 뜨는것!

알아보니 텍스트와 실제Cell값을 함께 쓰기 위해서는 &구분자와 '" "'의 활용이 필요했다.

예시를 들자면, 아래와 같은 날짜가 있고 실제 날짜를 입력하기 위해서는

21-1-1

아래와 같이 입력하면 된다.

INSERT INTO 테이블명 values('44197',sysdate);

여기서 44197의 숫자가 문제였는데, TEXT(Cell위치,변환형식) 함수를 이용해서 해결이 가능했다.
나의 경우 여러개의 값을 입력하는 문제로 자체적으로 실제 문장에 쓸때 수식문제가 자주 발생하여,
별도의 셀에 TEXT변환을 입력 후 해당 값을 가져오는 형태로 했으나,
값이 별로 없는 경우 그냥 사용하면 될듯하다.

예시는 아래와 같다.

1. 실제 날짜

21-1-1

2. 변환 날짜

=TEXT(F55,"yyyy-mm-dd") ==> 엑셀에 표기되는 형식 2021-01-01

3. 응용

1) 형태 : INSERT INTO 테이블명 values(텍스트데이터,넘버형데이터 ,날짜,텍스트데이터,sysdate);
2) 시트입력 :
="INSERT INTO 테이블명 
values('"&B55&"',100,'Y',trunc(to_date('"&I55&"')),'2021.02.15 입력',sysdate);"
3) 보여지는 화면 :
INSERT INTO 테이블명
values('text데이터',100,'Y',trunc(to_date('2021-01-01')),'2021.02.15입력',sysdate);
posted by 지긋이 2021. 2. 3. 17:12

엑셀의 특정 값을 특정 범위의 값과 비교하여 변경하고 싶다면?

이러한 기준표가 있다면!

점수 점수표기 범주
0    F 0~59
60  D0 60~64
65  D+ 65~69
70  C0 70~74
75   C+ 75~79
80   B0 80~84
85  B+ 85~89
90  A0 90~94
95   A+ 95~100

VLOOKUP 처리 후 나오는 값
표기1 =VLOOKUP(E:E,A:C,2,0)
표기2 =VLOOKUP(F:F,B:D,2,0)

기준값 표기1 표기2
0 F 0~59
60 D0 60~64
65 D+ 65~69
70 C0 70~74
75 C+ 75~79
80 B0 80~84
85 B+ 85~89
90 A0 90~94
95 A+ 95~100

 

2020. 8. 29. 23:33

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

posted by 지긋이 2020. 8. 25. 10:06

10년여 IT계통에 있으면서 사용한 DB가 많지 않아 Tool 또한 Toad, SQL Developer, SQL Gate 등
몇가지 종류밖에 사용하지 않았는데 이번에 그룹내 IT팀에 들어가게 되면서 다양한 DB 사용으로 
다양한 DB를 지원하는 Tool이 필요하게 되었다. 그래서 추천 받은 Tool은 DBeaver!

지원Site : https://dbeaver.io/

 

DBeaver Community | Free Universal Database Tool

DBeaver Universal Database Tool Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase,

dbeaver.io

오픈소스 무료 Tool인데 Mysql, Oracle, PostgreSQL, SQL Server, MariaDB 등 다양한 DB를 지원한다.

새로운 접속을 설정하면(Connet to Database) 각각의 DB를 선택할 수 있게 되어있고,
설정하면서 알아서 플러그인을 다운받아서 사용할 수 있게 만든다.

새로운 툴 사용하기에 좀 꺼리낌이 있기 마련인데 이건 꽤나 편하다.
단축키와 기능만 익히면 애용하게 될 툴!
꾸준한 업데이트 (DBeaver 7.1.5 2020 년 8 월 16 일)로 기업용 Edition도 있으니 참고하면 좋을듯.

 

2020. 7. 15. 20:22

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2020. 3. 2. 18:40

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

posted by 지긋이 2019. 12. 19. 11:38

IBsheet(ver 7.x기준)가 초기 로딩될 때 설정은 기본 가이드를 따른다.
여기에서 자주 쓰는 기능을 적어본다.

기본 형태

1. Cfg
{SearchMode:smLazyLoad,Page:50,MergeSheet:msHeaderOnly};

2. HeaderMode
- Cols 앞에 쓰기도 하고 뒤에 쓰기도 한다.
var info = {Sort:1, ColMove:1, ColResize:0, HeaderCheck:0};

Header 클릭시 Sort 가능 여부, True/false로도 대체 가능
Header Column 이동 가능 여부, True/false로도 대체 가능
Header Column의 Width Resize 가능 여부, True/false로도 대체 가능

Header CheckBox 타입일 경우 전체 CheckBox(일괄 선택) 표시 가능 여부, True/false로도 대체 가능

3. Cols : 헤더에 들어갈 타이틀과 헤더기능을 지정한다.
{Header:"결재여부|결재여부",Type:"CheckBox",Width:80,SaveName:"A",ColMerge:0,Align:"Center"},
결재여부|결재여부 : 헤더 타이틀 Text를 "|"로 연결한다.
Type:"CheckBox" : Column 타입을 결정한다.(세부내용은 3-1 참고)
SaveName:"A" : SQL에서 가져오는 컬럼명을 말하며, 카멜케이스 형식으로 연결한다.
ex) SQL TEST_ABC => SaveName:"testAbc"

var headers = [
{Header:"
결재여부|결재여부",Type:"CheckBox",Width:80,SaveName:"A",ColMerge:0},
{Header:"신청인|신청인",Type:"Text",Width:80,ColMerge:1},
{Header:"신청일자|신청일자",Type:"Date",Width:100,Format:"Ymd"},
{Header:"신청금액|신청금액",Type:"AutoSum",Width:85,SaveName:"B",Format:"Integer"},
{Header:"기간|시작일",Type:"Date",Width:100,SaveName:"C",Format:"Ymd",ColMerge:0},
{Header:"기간|종료일",Type:"Date",Width:100,SaveName:"D",Format:"Ymd",ColMerge:0},
{Header:"시간|시작",Type:"Date",Width:100,Format:"Hm",ColMerge:1,Align:"Center"},
{Header:"시간|종료",Type:"Date",Width:100,Format:"Hm",ColMerge:1,Align:"Center"}
];

mySheet.InitHeaders(headers,info);

3-1. Type

3-2. Format
기본형은 Format:""이다.

유형 설명
Integer(NullInteger) 정수 형태, 기본 0(기본 Null)
Float(NullFloat) 실수 형태, 기본 0(기본 Null)
Ymd 년월일
Ym/Md 년월/월일
Hm/Hms 시분/시분초
YmdHms/YmdHm 년월일시분초/년월일시분
Number 숫자 형태 (특정 포맷없이 숫자키만 입력 받는 형태)

- 숫자 : #
해당위치에 값이 있는 경우 해당 값을 표시하고, 없는 경우는 빈값으로 표시한다. 소수점 이하에서 사용하는 경우는 표시할 자리수를 결정하며 입력된 값의 자리수가 #의 개수보다 많은 경우 반올림하여 개수만큼 표시한다.

Input= 12345.678, Format=#,###.##,Output=12,345.68
Input= 0.789  Format=#,###.##,Output=.79
- 숫자 : 0
해당위치에 값이 있는 경우 해당 값을 표시하고, 없는 경우는 0으로 표시한다. 소수점 이하에서 "#"과 동일하게 동작한다.
)
Input=123456.7  Format=#,##0.00  Result=123,456.70
Input= 0.7  Format=#,##0.00  Result=0.70
- 
소수점 : .
소수점이 있는 경우 실수표현이 가능하며 소수점을 표현하는 경우 ibmsg SYS_DecimalSeparator에 설정되어 있는 값으로 표현된다.
- 천단위구분자 : ,
천단위 구분자를 넣은 경우 천단위 마다 구분자를 표시하며 ibmsg SYS_GroupSeparator에 설정되어 있는 값으로 표현된다. 또한, 소수점 바로 앞에 사용하는 경우는 콤마 개수만큼 1000으로 나눈 값으로 표현한다.
)
Input= 123456.789  Format=0,.00  Result=123.46
Input= 123456.789  Format=0,,.00  Result=0.12
- 퍼센트 : \\%
마지막에 퍼센트 기호를 넣는 경우 자동으로 %를 표현한다.
)
Input=123.456 Format=#,##0.00\\%  Result=123.46%
- 문자 : # 또는 *
해당위치에 값이 있는 경우 해당 값을 표시하고, 없는 경우는 빈값으로 표시한다.
)
Input=7907211022553
=> Format=######-****, Result=790721-****553

이 내용은 아이비시트에서 제공하는 개발자가이드+실제적용 경험에 의해 기재한 글입니다.

posted by 지긋이 2019. 12. 17. 09:36

자주 사용하는 명령어지만 가끔 까먹을 때가 있어 기록차 남겨둔다.

1. 드라이브 이동 : 현재 드라이브가 C인데 D드라이브로 이동하고 싶다면?
C:\>D:

2. 폴더 경로 이동 : 현재 드라이브의 특정 폴더로 이동하고 싶다면?
C:\>cd eclipse
C:\eclipse>cd configuration
C:\eclipse\configuration>

3. 화면 정리(클리어)
C:\>cls

posted by 지긋이 2019. 8. 8. 09:10

직장변경으로 기존에 사용하던 토드 말고
Oracle에서 제공하는 DB툴인 sql Developer를 사용할 일이 많아졌다.

알아야 할 기본 명령어는 Red. 자주 사용하게 된 명령어는 Bold 처리. 

범주 명령 단축키
Worksheet SQL 워크시트(W) Alt-F10
Worksheet 계획 설명(E) F10
Worksheet 내역(H) F8
Worksheet 변경사항 롤백(R) F12
Worksheet 명령문 실행 F9
Worksheet 명령문 실행 Ctrl-Enter
Worksheet 비공유 SQL 워크시트 Ctrl-Shift-N
Worksheet 스크립트 실행 F5
Worksheet 자동 추적(A) F6
Worksheet 지우기(C) Ctrl-D
Worksheet 변경사항 커밋(O) F11
검색 다음 찾기(N) F3
검색 바꾸기(R) Ctrl-R
검색 이전 찾기(P) Shift-F3
검색 증분 뒤로 찾기(B) Ctrl-Shift-E
검색 증분 앞으로 찾기(O) Ctrl-E
검색 찾기(F) Ctrl-F
검색 커서 다음 단어 찾기 Ctrl-F3
검색 커서 앞 단어 찾기 Ctrl-Shift-F3
기타 SQL 내역: 다음 내역에서 추가 Ctrl-Shift-Down
기타 SQL 내역: 다음 내역으로 바꾸기 Ctrl-Down
기타 SQL 내역: 이전 내역에서 추가 Ctrl-Shift-Up
기타 SQL 내역: 이전 내역으로 바꾸기 Ctrl-Up
기타 고급 형식 Ctrl-Shift-F7
기타 구현 디버그 Shift-F9
기타 대문자/소문자/첫 자를 대문자로 Ctrl-Quote
     
기타 보기 고정 Ctrl-Shift-P
기타 새로 고침 Ctrl-R
기타 새로 만들기(N) Ctrl-N
     
기타 파일 실행 Ctrl-F11
기타 팝업 메뉴 Shift-F10
기타 팝업 메뉴 Context Menu
기타 팝업 설명 Shift-F4
기타 편집(E) Ctrl-L
기타 형식 Ctrl-F7
데이터 편집기 데이터 필터링 Ctrl-Alt-F
데이터 편집기 새로 고침 Ctrl-R
데이터 편집기 선택된 행 삭제 Ctrl-D
데이터 편집기 정렬 Ctrl-Alt-S
데이터 편집기 행 삽입 Ctrl-I
도구 공백 표시 Ctrl-Shift-W
도움말 뒤로 Ctrl-Alt-Left
도움말 문맥에 따른 도움말 F1
도움말 문맥에 따른 도움말 Shift-F1
도움말 앞으로 Ctrl-Alt-Right
디버그 감시(W) Ctrl-F5
디버그 검사(I) Ctrl-I
디버그 내부 이동 F7
디버그 외부 이동 Shift-F7
디버그 이동 계속(C) Shift-F8
디버그 재개 F9
디버그 전체 이동 F8
디버그 종료 Ctrl-F2
디버그 중단점 토글(T) F5
디버그 커서까지 실행(U) F4
디버그 프로젝트 디버그 Shift-F9
버전 지정 속성(버전 지정) Ctrl-Shift-O
보기 로그(L) Ctrl-Shift-L
보기 중단점(B) Ctrl-Shift-R
소스 모두 축소(A) Ctrl-Shift-Open Bracket
소스 모두 확장(L) Ctrl-Shift-Close Bracket
소스 재형식화 Ctrl-Alt-L
소스 재형식화 Alt-Shift-F
실행(R) 프로젝트 실행 F11
이동 0 책갈피 토글 Ctrl-Shift-0
이동 0 책갈피로 이동 Ctrl-0
이동 1 책갈피 토글 Ctrl-Shift-1
이동 1 책갈피로 이동 Ctrl-1
이동 2 책갈피 토글 Ctrl-Shift-2
이동 2 책갈피로 이동 Ctrl-2
이동 3 책갈피 토글 Ctrl-Shift-3
이동 3 책갈피로 이동 Ctrl-3
이동 4 책갈피 토글 Ctrl-Shift-4
이동 4 책갈피로 이동 Ctrl-4
이동 5 책갈피 토글 Ctrl-Shift-5
이동 5 책갈피로 이동 Ctrl-5
이동 6 책갈피 토글 Ctrl-Shift-6
이동 6 책갈피로 이동 Ctrl-6
이동 7 책갈피 토글 Ctrl-Shift-7
이동 7 책갈피로 이동 Ctrl-7
이동 8 책갈피 토글 Ctrl-Shift-8
이동 8 책갈피로 이동 Ctrl-8
이동 9 책갈피 토글 Ctrl-Shift-9
이동 9 책갈피로 이동 Ctrl-9
이동 Maximize Toggle Ctrl-Alt-M
이동 기호 문서 찾아보기 Alt-Shift-Minus
이동 기호 찾아보기(M) Ctrl-Minus
이동 다음 메시지로 이동(X) Alt-F8
이동 다음 책갈피로 이동(O) Ctrl-Q
이동 뒤로(C) Alt-Left
이동 앞으로(W) Alt-Right
이동 이전 메시지로 이동(V) Alt-F7
이동 이전 책갈피로 이동(P) Ctrl-Shift-Q
이동 책갈피 토글(T) Ctrl-K
이동 책갈피로 이동(B) Ctrl-Shift-K
이동 최근 파일로 이동(F) Ctrl-Equals
이동 최근 편집으로 이동(E) Ctrl-Shift-Backspace
이동 행으로 이동(G) Ctrl-G
1 문서 활성화 Alt-1
2 문서 활성화 Alt-2
3 문서 활성화 Alt-3
4 문서 활성화 Alt-4
5 문서 활성화 Alt-5
6 문서 활성화 Alt-6
7 문서 활성화 Alt-7
8 문서 활성화 Alt-8
9 문서 활성화 Alt-9
Alt+1에 지정 Alt-Shift-1
Alt+2에 지정 Alt-Shift-2
Alt+3에 지정 Alt-Shift-3
Alt+4에 지정 Alt-Shift-4
Alt+5에 지정 Alt-Shift-5
Alt+6에 지정 Alt-Shift-6
Alt+7에 지정 Alt-Shift-7
Alt+8에 지정 Alt-Shift-8
Alt+9에 지정 Alt-Shift-9
다음 창(X) F6
다음 파일(N) Ctrl-F6
다음 파일(N) Ctrl-Tab
오른쪽 편집기(G) Alt-Page Down
왼쪽 편집기(E) Alt-Page Up
이전 창(V) Shift-F6
이전 파일(P) Ctrl-Shift-F6
이전 파일(P) Ctrl-Shift-Tab
파일 목록(F) Alt-0
편집기 메뉴 표시(S) Alt-Minus
코드 편집기 다음 단어 시작 부분까지 삭제 Ctrl-Delete
코드 편집기 다음 단어 시작 부분까지 삭제 Ctrl-T
코드 편집기 다음 단어 시작 부분으로 이동 Ctrl-Right
코드 편집기 뒤로 이동 Left
코드 편집기 로컬 탭 크기를 2로 설정 Ctrl-2
코드 편집기 로컬 탭 크기를 4로 설정 Ctrl-4
코드 편집기 로컬 탭 크기를 8로 설정 Ctrl-8
코드 편집기 매개변수 인사이트(P) Ctrl-Shift-Space
코드 편집기 삽입 모드 토글 Insert
코드 편집기 새 행 삽입 Shift-Enter
코드 편집기 새 행 삽입 Enter
코드 편집기 선택 사항 뒤로 이동 Shift-Left
코드 편집기 선택 사항 복제 Ctrl-Shift-D
코드 편집기 선택 사항 아래로 이동 Shift-Down
코드 편집기 선택 사항 앞으로 이동 Shift-Right
코드 편집기 선택 사항 위로 이동 Shift-Up
코드 편집기 선택 사항을 다음 단어 시작 부분으로 이동 Ctrl-Shift-Right
코드 편집기 선택 사항을 이전 단어 시작 부분으로 이동 Ctrl-Shift-Left
코드 편집기 선택 사항을 파일 끝으로 이동 Ctrl-Shift-End
코드 편집기 선택 사항을 파일 시작 부분으로 이동 Ctrl-Shift-Home
코드 편집기 선택 사항을 페이지 아래로 이동 Shift-Page Down
코드 편집기 선택 사항을 페이지 위로 이동 Shift-Page Up
코드 편집기 선택 사항을 행 끝으로 이동 Shift-End
코드 편집기 선택 사항을 행 시작 부분으로 이동 Shift-Home
코드 편집기 선택 해제 Ctrl-Back Slash
코드 편집기 선행 공백을 탭으로 변환 Ctrl-Shift-T
코드 편집기 선행 탭을 공백으로 변환 Ctrl-Shift-U
코드 편집기 스마트 완성 인사이트(A) Ctrl-Alt-Space
코드 편집기 아래로 이동 Down
코드 편집기 앞으로 이동 Right
코드 편집기 역방향 탭 Shift-Tab
코드 편집기 완성 인사이트(C) Ctrl-Space
코드 편집기 위로 이동 Up
코드 편집기 이전 단어 시작 부분까지 삭제 Ctrl-Backspace
코드 편집기 이전 단어 시작 부분으로 이동 Ctrl-Left
코드 편집기 이전 문자 삭제 Shift-Backspace
코드 편집기 이전 문자 삭제 Backspace
코드 편집기 일치하는 중괄호까지 선택 Alt-Shift-Close Bracket
코드 편집기 일치하는 중괄호까지 선택 Alt-Shift-Open Bracket
코드 편집기 일치하는 중괄호로 이동 Alt-Open Bracket
코드 편집기 일치하는 중괄호로 이동 Alt-Close Bracket
코드 편집기 취소 Escape
코드 편집기 탭 삽입 Tab
코드 편집기 파일 끝으로 이동 Ctrl-End
코드 편집기 파일 시작 부분으로 이동 Ctrl-Home
코드 편집기 페이지 아래로 이동 Page Down
코드 편집기 페이지 위로 이동 Page Up
코드 편집기 행 끝까지 삭제 Ctrl-Shift-Y
코드 편집기 행 끝으로 이동 End
코드 편집기 행 시작 부분으로 이동 Home
코드 편집기 행 아래로 스크롤 Ctrl-Down
코드 편집기 행 위로 스크롤 Ctrl-Up
코드 편집기 행 조인 Ctrl-J
코드 편집기 행 주석 토글(T) Ctrl-Slash
코드 편집기 행 주석 토글(T) Ctrl-Shift-Slash
파일 닫기 Ctrl-F4/Ctrl-W
     
파일 모두 닫기(E) Ctrl-Shift-F4
파일 열기(O) Ctrl-O
파일 인쇄(P) Ctrl-P
파일 저장(S) Ctrl-S
파일 종료(X) Alt-F4
편집 실행 취소 Alt-Backspace/
     
편집 재실행 Alt-Shift-Backspace
편집 재실행 Ctrl-Shift-Z/Ctrl-Y
편집 경로 복사(H) Ctrl-Shift-C
편집 모두 선택(A) Ctrl-A
편집 복사(C) Ctrl-C
편집 복사(C) Ctrl-Insert
편집 붙여넣기(P) Ctrl+V/Shift-Insert
편집 확장된 붙여넣기(E) Ctrl+Shift+V
편집 삭제(D) Delete
편집 잘라내기(T) Shift-Delete/Ctrl-X

 

posted by 지긋이 2019. 7. 25. 13:27

보통 log4j의 경우 2가지 형태(Properties, Xml)로 작성이 되는데 그간 프로젝트에서는 Xml로 설정된 것만 사용하였다.

이번에도 그러한 경우인데 스쳐지나가는 정보로 알던 것을 기록상 남겨본다.

log4j의 정의라든가는 워낙 많은 정보가 인터넷상 있으므로(?) 핵심정보만!

1. log4j의 레벨
FATAL > ERROR > WARN > INFO > DEBUG > TRACE

  • FATAL : 아주 심각한 에러가 발생한 상태
  • ERROR : 요청을 처리하는 중 문제가 발생한 상태
  • WARN : 처리 가능한 문제이지만, 향후 에러의 원인이 될 수 있는 상태
  • INFO : 로그인, 상태변경과 같은 정보성 메세지
  • DEBUG : 개발시 디버그 용도로 사용
  • TRACE : 디버그 레벨이 너무 광범위하므로, 좀 더 상세한 상태를 나타냄

2. log4j 주요 클래스 : Appender 는 로그의 출력 위치를 지정해준다.
org.apache.log4j.ConsoleAppender 콘솔에 로그 메시지 출력    
org.apache.log4j.FileAppender 파일에 로그 메시지 기록   
org.apache.log4j.rolling.RollingFileAppender
파일 크기가 일정 수준 이상 일 때 기존 파일을 백업파일로 바꾸고 처음부터 기록   
org.apache.log4j.DailyRollingFileAppender 일정 기간  단위로 로그 파일을 생성하고 기록   
org.apache.log4j.jdbc.JDBCAppender
RDB 테이블에 로그를 출력. 하위에 Driver, URL, User, Password, Sql과 같은 parameter를 정의
org.apache.log4j.net.SMTPAppender 로그 메시지를 이메일로 전송   
org.apache.log4j.NTEventLoggerAppender 윈도우 시스템 이벤트 로그로 메시지 전송

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] (%C{1}.%M:%L) %m%n" />   
    </layout>
</appender>

3. layout 출력 포맷
%p : 로그레벨 출력
%m : 로그내용 출력
%d : 로그가 발생한 시간을 출력
- 포맷은 %d{HH:mm:ss}, %d{yyyy-MM-dd HH:mm:ss}같은 형태로 사용(SimpleDateFormat 참고)
%t : 로그가 발생된 스레드의 이름을 출력
%% : % 표시를 출력하기 위해 사용
%n : 플랫폼 종속적인 개행문자가 출력. (\r\n 또는 \n)
%c : 해당되는 로거의 이름을 끝에서부터 출력 ex. %c{끝에서부터 숫자}
%C : 클래스명을 출력 ex. %C{끝에서부터 숫자}
%F : 로깅이 발생한 프로그램 파일명을 출력
%l : 로깅이 발생한 caller의 정보를 출력
%L : 로깅이 발생한 caller의 라인수를 출력
%M : 로깅이 발생한 method명을 출력
%r : 어플리케이션 시작 이후 부터 로깅이 발생한 시점의 시간(milliseconds)을 출력
%x : 로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력
%X : 로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력