2020년 9월 10일 목요일

EXCEL FN

 camel  case

LOWER(MID(SUBSTITUTE(PROPER($A2,"_","")

,1,1))

&MID(SUBSTITUTE(PROPER($A2,"_","")

,2,LEN(SUBSTITUTE(PROPER($A2,"_","")))

2019년 9월 28일 토요일

십진수와 이진수의 권한 응용

십진수와 이진수를 이용하여 권한등의 경우의 수 관리

이진수의 각 자릿수는 항목(A,B,C,D,)의 유무- 0:없음 / 1:있음 -
예) C + D 인 경우는 십진수 3으로 표현됨

십진수 16 이상의 경우는 이진수 네 자리가 넘어감

엑셀로 표현 시
1. DEC2BIN(A1) : 십진수를 이진수로 바꾸어 보여줌
2. REPT( 채울 문자, 반복할 수)
3. LEN(A1) : 해당 셀의 문자의 수

수식 : REPT("0",4-LEN(DEC2BIN(A1))) & DEC2BIN(A1)

십진수 이진수 A B C D
0 0000
1 0001 V
2 0010 V
3 0011 V V
4 0100 V
5 0101 V V
6 0110 V V
7 0111 V V V
8 1000 V
9 1001 V V
10 1010 V V
11 1011 V V V
12 1100 V V
13 1101 V V V
14 1110 V V V
15 1111 V V V V

2019년 6월 2일 일요일

javascript history back

뒤로 가기 동작 제어 - javascript

** 뒤로 가기 동작을 제어하기 위하여 모든 페이지에서 이벤트를 구성합니다.
** 참고 : https://developer.mozilla.org/ko/docs/Web/API/History_API

var GLOBAL_function_forewordPage = function(){
if ( /MSIE/.test(navigator.useragent) || /rv:1/.test(navigator.useragent) ){
     history.back();
 }else{
     location.href='frog-rammer.blogspot.com';
};
history.pushState(null,null,location.href);
window.onpopstate = function(event){
GLOBAL_function_forewordPage();
}
1. GLOBAL_function_forewordPage
뒤로 가기 동작 시에 넘어 가야 할 페이지를 지정하는 변수 입니다.
자바 스크립트에서는 함수란 하나의 값으로써 변수에 담을 수 있습니다.
이를 이용하여 변수의 함수를 덮어쓰면서 동작을 제어 할 수 있습니다.
예를 들어 특정 페이지에서는 뒤로 가기 동작 시 특정 함수를 호출해야 한다면
해당 변수의 값을 특정 함수로 덮어쓰면 됩니다.
2. history.pushState( state 객체, title, [option] URL )
옵션인 URL 부분에 현재 페이지를 등록하여 새로운 히스토리 등록
3. window.onpopstate
뒤로 가기 동작 시의 이벤트

2019년 2월 27일 수요일

[windows] 선택한 디스크가 GPT 스타일

윈도우 설치 시 오류
선택한 디스크가 GPT 스타일

1. 도스 창 진입
    shift + F10
2. C 드라이버로 이동
    c:
3. 디스크 관리 진입
    diskpart
4. 디스크 목록 확인
    list disk
    <참고>  DISKPART> list disk
5. 설치할 디스크 선택 : 번호로 되어 있음
    select disk 0
6. 메시지 확인
    DISKPART> select disk 0
    0 디스크가 선택한 디스크입니다.
    DISKPART>
7. 디스크 정리
    clean
8. 메시지 확인
    DISKPART> clean
    DiskPart에서 디스크를 정리했습니다.
    DISKPART>
9. 디스크 관리 종료
    exit
10. 도스창 종료
    exit

오라클 열 합치기 (중복제거)

오라클 열 합치기 (중복제거)
REGEXP_REPLACE
LISTAGG
'([^,]+)(,\1)+', '\1'

REGEXP_REPLACE(
    LISTAGG(A.VEHC_NUMS,', ') WITHIN GROUP (ORDER BY A.VEHC_NUMS)
, '([^,]+)(,\1)+', '\1')

2018년 11월 15일 목요일

substr vs substring

Language Function Exempli Gratia Result
Javascript substr(start,length) '01234'.substr(1,3) "123"
substring(start,end) '01234'.substring(1,3); "12"
JAVA substring(start,end) '01234'.substring(1,3); "12"
Index starts with 0(zero)
"end" argument means " Index -1 "

2018년 11월 6일 화요일

DATA-BASE 정보 (테이블,컬럼,인덱스)

-- ORACLE --
SELECT * FROM ALL_INDEXES;
SELECT * FROM ALL_IND_COLUMNS;
SELECT * FROM TABS;
SELECT * FROM ALL_ALL_TABLES;
SELECT * FROM ALL_TAB_COMMENTS;
SELECT * FROM COLS;
SELECT * FROM USER_COL_COMMENTS;
SELECT * FROM DICTIONARY WHERE TABLE_NAME IN ('TABS','ALL_ALL_TABLES','COLS','ALL_TAB_COMMENTS','USER_COL_COMMENTS','ALL_INDEXES','ALL_IND_COLUMNS');
/*
1 ALL_ALL_TABLES  Description of all object and relational tables accessible to the user
2 ALL_INDEXES     Descriptions of indexes on tables accessible to the user
3 ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
4 ALL_TAB_COMMENTS  Comments on tables and views accessible to the user
5 USER_COL_COMMENTS Comments on columns of user's tables and views
6 COLS              Synonym for USER_TAB_COLUMNS
7 TABS              Synonym for USER_TABLES
*/
WITH AA AS (
SELECT TABLE_NAME
FROM TABS
WHERE SUBSTR(TABLE_NAME,1,4) = 'T_RM'
AND SUBSTR(TABLE_NAME,-4) NOT IN ('HIST','TEMP')
)
SELECT
    AA.TABLE_NAME, 'C' AS TYPE, TC.COMMENTS, C.COLUMN_NAME, C.DATA_TYPE, CC.COMMENTS
FROM AA
INNER JOIN ALL_TAB_COMMENTS TC ON AA.TABLE_NAME = TC.TABLE_NAME
INNER JOIN COLS C ON AA.TABLE_NAME = C.TABLE_NAME
INNER JOIN USER_COL_COMMENTS CC ON AA.TABLE_NAME = CC.TABLE_NAME AND C.COLUMN_NAME = CC.COLUMN_NAME
WHERE TC.OWNER = 'WCSUSER'
UNION ALL
SELECT AA.TABLE_NAME, 'I' AS TYPE, I.INDEX_NAME, LISTAGG(I.COLUMN_NAME,', ') WITHIN GROUP (ORDER BY I.COLUMN_NAME),'',''
FROM ALL_IND_COLUMNS I INNER JOIN AA ON AA.TABLE_NAME = I.TABLE_NAME
GROUP BY AA.TABLE_NAME, I.INDEX_NAME
ORDER BY 1,2
;
-- MS-SQL -- 
INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA.TABLE_CONSTRAINTS INFORMATION_SCHEMA.VIEW_TABLE_USAGE INFORMATION_SCHEMA.COLUMNS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.KEY_COLUMN_USAGE INFORMATION_SCHEMA.VIEW_COLUMN_USAGE SYSOBJECTS
--테이블 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE
FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', DEFAULT, DEFAULT)
;
--컬럼 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', 'COLUMN', DEFAULT)
;
SELECT * FROM INFORMATION_SCHEMA.TABLES;
SELECT * FROM INFORMATION_SCHEMA.COLUMNS;
SELECT * FROM SYS.EXTENDED_PROPERTIES;
SELECT * FROM SYSUSERS; SELECT * FROM SYSOBJECTS;
SELECT * FROM SYSCOLUMNS;
SELECT /* OBJECT LIST */
    COL.TABLE_CATALOG, COL.TABLE_SCHEMA
, CASE OBJ.ID
WHEN LAG(OBJ.ID) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN NULL
ELSE OBJ.ID
END AS ID
, CASE COL.TABLE_NAME
WHEN LAG(COL.TABLE_NAME) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE COL.TABLE_NAME
END AS TABLE_NAME
, CASE PROP_T.value
WHEN LAG(PROP_T.value) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE PROP_T.value
END AS TABLE_COMMENT
,OBJ.ID,COL.TABLE_NAME,PROP_T.value AS TABLE_COMMENT
, COL.COLUMN_NAME
, PROP.value AS COLUMN_COMMENT
, COL.ORDINAL_POSITION
, CONVERT(VARCHAR,COL.DATA_TYPE) +'('+ ISNULL(CONVERT(VARCHAR,COL.CHARACTER_MAXIMUM_LENGTH),'') +')' AS DATA_TYPE
, COL.IS_NULLABLE
, COL.COLUMN_DEFAULT
FROM SYSOBJECTS OBJ
INNER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
AND COL.ORDINAL_POSITION = PROP.minor_id
LEFT OUTER JOIN (
SELECT major_id,VALUE FROM SYS.EXTENDED_PROPERTIES WHERE minor_id=0
) PROP_T ON OBJ.ID = PROP_T.major_id
WHERE 0=0
ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION
;

SELECT /* COLUMN DETAILS */
CASE
OBJ.NAME WHEN LAG(OBJ.NAME) OVER(ORDER BY PROP.minor_id) THEN ''
ELSE OBJ.NAME
END AS TABLE_NAME
,OBJ.NAME
,ISNULL(COL.COLUMN_NAME,'[ '+OBJ.NAME+' ]') AS NAME
, COL.COLUMN_NAME
, PROP.VALUE AS COMMENT
, 'private String ' + LOWER(COL.COLUMN_NAME) + ';// ' + CONVERT(VARCHAR, PROP.VALUE) AS STR
, PROP.minor_id
FROM SYSOBJECTS OBJ
INNER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
AND COL.ORDINAL_POSITION = PROP.minor_id
WHERE OBJ.TYPE = 'U'
AND PROP.NAME = 'MS_Description'
AND PROP.CLASS_DESC = 'OBJECT_OR_COLUMN'
ORDER BY OBJ.NAME ASC, PROP.minor_id
;