BEGIN 
    EXECUTE IMMEDIATE 'CREATE TABLE 
    "{TableName}" (
        "LogNo" NUMBER(0,0) GENERATED BY DEFAULT ON NULL AS IDENTITY NOT NULL,
        "Acknowledge" NVARCHAR2(1),
        "ApplicationID" NVARCHAR2(32),
        "Flow" NVARCHAR2(1),
        "Format" NVARCHAR2(1),
        "GlobalID" NVARCHAR2(50),
        "Level" NVARCHAR2(1),
        "Message" NCLOB,
        "ProgramName" NVARCHAR2(50),
        "ProjectID" NVARCHAR2(32),
        "Properties" NCLOB,
        "RunningEnvironment" NVARCHAR2(1),
        "ServerID" NVARCHAR2(30),
        "ServiceID" NVARCHAR2(32),
        "TransactionID" NVARCHAR2(32),
        "Type" NVARCHAR2(1),
        "UserID" NVARCHAR2(32),
        "CreatedAt" TIMESTAMP,
        "IpAddress" NVARCHAR2(50),
        "DeviceID" NVARCHAR2(64),
        "ProgramID" NVARCHAR2(32),
        CONSTRAINT "PK_{TableName}" PRIMARY KEY ("LogNo")
    )';

    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."LogNo" IS ''로그 순번''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Acknowledge" IS ''거래 구분''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ApplicationID" IS ''애플리케이션 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Flow" IS ''업무 흐름''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Format" IS ''데이터 포맷''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."GlobalID" IS ''거래 고유 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Level" IS ''업무 수준''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Message" IS ''로그 메시지''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ProgramName" IS ''프로그램''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ProjectID" IS ''프로젝트 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Properties" IS ''추가 속성''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."RunningEnvironment" IS ''실행 환경''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ServerID" IS ''서버 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ServiceID" IS ''서비스 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."TransactionID" IS ''거래 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."Type" IS ''업무 구분''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."UserID" IS ''입력자 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."CreatedAt" IS ''입력 일시''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."IpAddress" IS ''IP 주소''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."DeviceID" IS ''단말 ID''';
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN "{TableName}"."ProgramID" IS ''프로그램 ID''';

    EXECUTE IMMEDIATE 'CREATE INDEX IX_{TableName}_GlobalID
    ON "{TableName}" ("GlobalID")';

    EXECUTE IMMEDIATE 'CREATE INDEX IX_{TableName}_CreatedAt
    ON "{TableName}" ("CreatedAt" DESC)';
END;/