|
|
@@ -0,0 +1,90 @@
|
|
|
+# autocommit 활성화 여부 조회
|
|
|
+SELECT @@AUTOCOMMIT;
|
|
|
+SHOW VARIABLES LIKE 'autocommit';
|
|
|
+
|
|
|
+# autocommit 비활성화
|
|
|
+SET AUTOCOMMIT = 0;
|
|
|
+
|
|
|
+#시퀀스 생성 관련
|
|
|
+1. 테이블의 PK를 INT UNSIGNED AUTO_INCREMENT 로 지정 예) LOGIN_HST_SQ INT UNSIGNED AUTO_INCREMENT COMMENT '로그인이력일련번호'
|
|
|
+2. mybatis XML의 insert문에 keyProperty 속성 추가. 예) keyProperty="loginHstSq"
|
|
|
+3. JAVA 소스에서는 Domain의 get Method를 이용해 추출.
|
|
|
+ 예)
|
|
|
+ void createLoginHistory(GaaLoginHst loginHst);
|
|
|
+ loginHst.getLoginHstSq();
|
|
|
+
|
|
|
+# 오라클 -> mysql 변환 함수
|
|
|
+CONNECT BY -> RECURSIVE 형태로 변경 (참조: ~System.xml 파일의 getLoginMenuList)
|
|
|
+SYSDATE -> NOW()
|
|
|
+|| -> CONCAT
|
|
|
+TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') -> DATE_FORMAT(NOW(), '%Y%m%d%H%i%S')
|
|
|
+LISTAGG(ROLE_CD,',') WITHIN GROUP (ORDER BY DISP_ORD) -> GROUP_CONCAT(ROLE_CD ORDER BY DISP_ORD SEPARATOR ',')
|
|
|
+ROWNUM , @rownum:=@rownum+1 AS RNUM T1, (SELECT @rownum:=0) //T2 식으로 변수를 사용해 구현이 가능하나, 성능이 매우 취약함. 전체 데이터에 대해 상수를 적용하기 때문에, 데이터가 적은경우에만 사용함. 단순히 Paging 목적이라면, LIMIT를 사용해 변경해야 한다. LIMIT 0,10 (주의 0부터 시작함 -> 오라클 Between 은 1부터 시작)
|
|
|
+TO_CHAR(1000) -> CONVERT(1000, char)
|
|
|
+TO_DATE('2013-02-11','YYYY-MM-DD') -> STR_TO_DATE('2013-02-11', '%Y-%m-%d')
|
|
|
+ADD_MONTHS(SYSDATE, -3) -> DATE_ADD(NOW(), INTERVAL - 3 MONTH) 또는 TIMESTAMPADD(MONTH,-3,CURRENT_TIMESTAMP)
|
|
|
+TO_NUMBER('100') -> CAST('100' AS UNSIGNED)
|
|
|
+TRUNC(SYSDATE) -> TRUNCATE(NOW(),1)
|
|
|
+MONTHS_BETWEEN(startdate, enddate) -> TIMESTAMPDIFF(MONTH, startdate, enddate)
|
|
|
+IF(A.UP_FLD_CD = 0, GRP_SEQ, UP_FLD_CD) AS upfolderCode, -> CASE A WHEN '1' THNE B ELSE END AS upfolderCode,
|
|
|
+DBMS_RANDOM.VALUE -> RAND()
|
|
|
+SYS_CONNECT_BY_PATH -> GROUP_CONCAT(GRP_nm SEPARATOR ',')
|
|
|
+GROUP BY ROLLUP(A.REG_DTM) -> GROUP BY A.REG_DTM WITH ROLLUP
|
|
|
+DBMS_RANDOM.STRING('X',#{length}) -> CONVERT(TRUNCATE(A.VAL * CAST(CONCAT(1,LPAD(0,(#{length} - 1),'0')) AS UNSIGNED),0),CHAR)
|
|
|
+
|
|
|
+
|
|
|
+# Doamin Class 변수 생성
|
|
|
+WITH DATA_TYPE_TXT AS (
|
|
|
+ SELECT 'int' AS DATA_TYPE, 'Integer' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'bigint' AS DATA_TYPE, 'Long' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'smallint' AS DATA_TYPE, 'Long' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'char' AS DATA_TYPE, 'String' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'varchar' AS DATA_TYPE, 'String' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'longtext' AS DATA_TYPE, 'String' AS JAVA_DATA_TYPE FROM DUAL UNION ALL
|
|
|
+ SELECT 'timestamp' AS DATA_TYPE, 'String' AS JAVA_DATA_TYPE FROM DUAL
|
|
|
+ )
|
|
|
+SELECT CONCAT(
|
|
|
+ 'private '
|
|
|
+ , A.JAVA_DATA_TYPE
|
|
|
+ , ' '
|
|
|
+ , A.COLUMN_NAME_VAL
|
|
|
+ , '; //'
|
|
|
+ , A.COLUMN_COMMENT
|
|
|
+ ) AS SCRIPT_TEXT
|
|
|
+FROM (
|
|
|
+ SELECT A.JAVA_DATA_TYPE
|
|
|
+ , CASE WHEN INSTR(COLUMN_NAME_VAL, '_') = 0 THEN COLUMN_NAME_VAL
|
|
|
+ ELSE CONCAT(SUBSTRING(COLUMN_NAME_VAL, 1, INSTR(COLUMN_NAME_VAL, '_') - 1)
|
|
|
+ , UPPER(SUBSTRING(COLUMN_NAME_VAL, INSTR(COLUMN_NAME_VAL, '_') + 1, 1))
|
|
|
+ , SUBSTRING(COLUMN_NAME_VAL, INSTR(COLUMN_NAME_VAL, '_') + 2) )
|
|
|
+ END COLUMN_NAME_VAL
|
|
|
+ , A.COLUMN_COMMENT
|
|
|
+ , A.ORDINAL_POSITION
|
|
|
+ FROM (
|
|
|
+ SELECT A.JAVA_DATA_TYPE
|
|
|
+ , CASE WHEN INSTR(COLUMN_NAME_VAL, '_') = 0 THEN COLUMN_NAME_VAL
|
|
|
+ ELSE CONCAT(SUBSTRING(COLUMN_NAME_VAL, 1, INSTR(COLUMN_NAME_VAL, '_') - 1)
|
|
|
+ , UPPER(SUBSTRING(COLUMN_NAME_VAL, INSTR(COLUMN_NAME_VAL, '_') + 1, 1))
|
|
|
+ , SUBSTRING(COLUMN_NAME_VAL, INSTR(COLUMN_NAME_VAL, '_') + 2) )
|
|
|
+ END COLUMN_NAME_VAL
|
|
|
+ , A.COLUMN_COMMENT
|
|
|
+ , A.ORDINAL_POSITION
|
|
|
+ FROM (
|
|
|
+ SELECT COLUMN_NAME
|
|
|
+ , CASE WHEN INSTR(COLUMN_NAME, '_') = 0 THEN LOWER(COLUMN_NAME)
|
|
|
+ ELSE CONCAT(SUBSTRING(LOWER(COLUMN_NAME), 1, INSTR(LOWER(COLUMN_NAME), '_') - 1)
|
|
|
+ , UPPER(SUBSTRING(LOWER(COLUMN_NAME), INSTR(LOWER(COLUMN_NAME), '_') + 1, 1))
|
|
|
+ , SUBSTRING(LOWER(COLUMN_NAME), INSTR(LOWER(COLUMN_NAME), '_') + 2) )
|
|
|
+ END COLUMN_NAME_VAL
|
|
|
+ , ( SELECT JAVA_DATA_TYPE FROM DATA_TYPE_TXT WHERE DATA_TYPE = A.DATA_TYPE) AS JAVA_DATA_TYPE
|
|
|
+ , COLUMN_COMMENT
|
|
|
+ , ORDINAL_POSITION
|
|
|
+ FROM INFORMATION_SCHEMA.COLUMNS A
|
|
|
+ WHERE TABLE_NAME = 'TB_SURVEY' /* 테이블 명 */
|
|
|
+ AND COLUMN_NAME NOT IN ('REG_NO', 'REG_DT', 'UPD_NO', 'UPD_DT') /* BASE DOMAIN 제외 */
|
|
|
+ ) A
|
|
|
+ ) A
|
|
|
+ ) A
|
|
|
+ORDER BY A.ORDINAL_POSITION
|
|
|
+;
|
|
|
+
|