본문 바로가기

Programming

MYBATIS INSERT 쿼리 자동생성 - 오라클

SMALL

SELECT
    'INSERT INTO' || ' IR_ONLINE_GDS_CLSF' || '(' || 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('IR_ONLINE_GDS_CLSF')
            )
    );

LIST