SELECT 'INSERT INTO'
||' EMP'
||'('
||CC1
||')VALUES('
||CC2
||')'
FROM (SELECT LISTAGG(COLUMN_NAMES) WITHIN GROUP(ORDER BY COLUMN_ID)AS CC1,
LISTAGG(COL_VALUES) WITHIN GROUP(ORDER BY COLUMN_ID) AS CC2
FROM ( SELECT TABLE_NAME,
COLUMN_ID,
''
||COLUMN_NAME
||',' COLUMN_NAMES,
'#{'
||LOWER(SUBSTR(COLUMN_NAME,1,1))
||SUBSTR(REPLACE(INITCAP(LOWER(COLUMN_NAME)),'_',''),2)
||'},' AS COL_VALUES
FROM USER_TAB_COLS
WHERE TABLE_NAME = UPPER('EMP')
)
) ;
//////////////////////////////////////////////////////////////////////
SELECT MAX(QUERY)
FROM ( SELECT 'INSERT INTO '
||TABLE_NAME
||'('
||TRIM(LISTAGG(COLUMN_NAMES,',') WITHIN GROUP (ORDER BY COLUMN_ID) OVER (PARTITION BY TABLE_NAME))
||')VALUES('
||TRIM(LISTAGG(COL_VALUES, ',') WITHIN GROUP (ORDER BY COLUMN_ID) OVER (PARTITION BY TABLE_NAME))
||')' AS QUERY
FROM (SELECT TABLE_NAME,
COLUMN_ID,
''
||COLUMN_NAME COLUMN_NAMES,
'#'
||lower(SUBSTR(COLUMN_NAME,1,1))
||SUBSTR(REPLACE(INITCAP(LOWER(COLUMN_NAME)),'_',''),2)
||'#' AS COL_VALUES
FROM USER_TAB_COLS
WHERE TABLE_NAME = UPPER('EMP')
)
);
'Programming > MyBatis' 카테고리의 다른 글
MYBATIS INSERT 쿼리 자동생성 - 오라클 (0) | 2023.05.20 |
---|---|
MyBatis 에서 insert 시 자동 생성키 사용하기 (2) | 2023.05.20 |