SELECT SUBSTR(a.TABLE_NAME,0,2) AS "업무구분" , a.TABLE_NAME AS "테이블명" , b.COMMENTS AS "테이블한글명" , a.COLUMN_ID AS "컬럼순번" , a.COLUMN_NAME AS "컬럼명" , c.COMMENTS AS "컬럼한글명" , a.DATA_TYPE AS "타입" , CASE WHEN NVL(a.DATA_SCALE,0) = 0 THEN TO_CHAR(a.DATA_LENGTH) ELSE a.DATA_LENGTH||'('||a.DATA_SCALE||')' END AS "길이" , CASE WHEN d.COLUMN_NAME IS NOT NULL THEN TO_CHAR(d.KEY_SEQ) ELSE '' END AS "KEY" , CASE WHEN a.nullable = 'N' THEN 'Y' ELSE '' END AS "NOT NULL" , a.DATA_DEFAULT AS "초기값" FROM ALL_TAB_COLUMNS a INNER JOIN ALL_TAB_COMMENTS b ON a.OWNER = b.OWNER AND a.TABLE_NAME = b.TABLE_NAME LEFT OUTER JOIN ALL_COL_COMMENTS c ON a.OWNER = c.OWNER AND a.TABLE_NAME = c.TABLE_NAME AND a.COLUMN_NAME = c.COLUMN_NAME LEFT OUTER JOIN ( SELECT ia.OWNER , ia.TABLE_NAME , ib.COLUMN_NAME , ib.POSITION AS KEY_SEQ FROM ALL_CONSTRAINTS ia INNER JOIN ALL_CONS_COLUMNS ib ON ia.OWNER = ib.OWNER AND ia.TABLE_NAME = ib.TABLE_NAME AND ia.CONSTRAINT_NAME = ib.CONSTRAINT_NAME AND ia.CONSTRAINT_TYPE = 'P' ) d ON a.OWNER = d.OWNER AND a.TABLE_NAME = d.TABLE_NAME AND a.COLUMN_NAME = d.COLUMN_NAME WHERE a.OWNER = 'SEMA_ERP' /* bx-erp : ERP, semis : SEMA_OWN */ AND a.TABLE_NAME LIKE '%_HIST%' /*조회할 Table명*/ -- AND a.TABLE_NAME = 'AM_CARDCONFMDTALSRECPT' /*조회할 Table명*/ -- AND b.COMMENTS LIKE '%원천징수%' /*조회할 Table명*/ -- AND a.TABLE_NAME = 'AM_SLIP_WRT_M' -- AND a.COLUMN_NAME LIKE '%ACNUT_NM_DIV_CD%' -- AND c.COMMENTS LIKE '%통화%코드%' -- AND a.column_name NOT LIKE '%#_%'ESCAPE'#' -- ORDER BY a.TABLE_NAME -- , a.COLUMN_ID ORDER BY a.TABLE_NAME , a.COLUMN_ID -- , a.COLUMN_NAME ;
oracle dml 문장 생성 1
WITH tempTbl AS ( SELECT a.COLUMN_ID AS colId , a.COLUMN_NAME AS colName , LOWER(SUBSTR(REPLACE(INITCAP(a.COLUMN_NAME),'_'),1,1))||SUBSTR(REPLACE(INITCAP(a.COLUMN_NAME),'_'),2,LENGTH(a.COLUMN_NAME)-1) AS camel , ('/*'||c.COMMENTS || ','|| a.DATA_TYPE ||'('||a.DATA_LENGTH ||')'||'*/') AS cmt , ('/*'||c.COMMENTS ||'*/') AS cmt2 , c.COMMENTS AS orgCmt , a.DATA_TYPE AS dataType , a.DATA_LENGTH AS dataLen FROM ALL_TAB_COLUMNS a LEFT OUTER JOIN ALL_COL_COMMENTS c ON a.OWNER = c.OWNER AND a.TABLE_NAME = c.TABLE_NAME AND a.COLUMN_NAME = c.COLUMN_NAME WHERE a.OWNER = 'SEMA_ERP' AND a.TABLE_NAME IN ('AM_CMMN_COSTPT_D') /*조회할 Table명*/ -- AND a.COLUMN_NAME IN ('COMPANY_CODE','BANK_NO_SEQ','BANK_NO','BANK_DIV','CUST_CODE','DEPOSIT_OWNER','USE_YN','DEPT_CODE','APL_STR_DTE' -- ,'APL_END_DTE','FUND_CHK_YN','FUND_CHK_NOTE','FUND_CHK_YN_B','BANK_RES_CODE','BANK_RES_DESC','INPUT_DATE','INPUT_DUTY_ID' -- ,'CHG_DATE','CHG_DUTY_ID' -- ) ) SELECT MAX(aa.ommType) AS ommType , MAX(aa.colId) AS colId , aa.ommName , MAX(aa.ommDescription) AS ommDescription , MAX(aa.ommLength) AS ommLength , (MAX(aa.ommType)||' '||aa.ommName||'<length='||MAX(aa.ommLength)||' description="'||MAX(aa.ommDescription)||'">;') AS ommGenStr , MAX(aa.dmlStr) AS dmlStr , MAX(aa.dmlStr2) AS dmlStr2 FROM ( SELECT CASE WHEN a.dataType IN ('VARCHAR2') THEN 'String' WHEN a.dataType IN ('DATE') THEN 'Date' WHEN a.dataType IN ('NUMBER') AND a.dataLen < 10 THEN 'Integer' WHEN a.dataType IN ('NUMBER') AND a.dataLen >= 10 THEN 'BigDecimal' END ommType , a.camel AS ommName , a.orgCmt AS ommDescription , a.dataLen AS ommLength , a.colId , (', '||RPAD(a.colName, b.maxLenCol, ' ') ||' AS '||RPAD(a.camel, b.maxLenCmt,' ')||' '||a.cmt) AS dmlStr , (', '||RPAD(a.colName, b.maxLenCol, ' ') ||' '||a.cmt2) AS dmlStr2 FROM tempTbl a OUTER APPLY( SELECT MAX(LENGTHB(colName)) AS maxLenCol , MAX(LENGTHB(camel)) AS maxLenCmt FROM tempTbl ) b ) aa GROUP BY aa.ommName -- ORDER BY aa.ommName ORDER BY MAX(aa.colId) -- ORDER BY MAX(aa.ommName)
Nexacro transaction시 동적 dataset 지정
this.dsEdcRptsResult = new Dataset(); //기안 상신 결과 this.dsEdcRptsResult.set_name("dsEdcRptsResult"); this.gf_ErpEdcRptsCall = function(pSetting) { var sIfJobDivCd = pSetting.ifJobDivCd; var sIfTrkey = pSetting.ifTrkey; var sAppId = pSetting.appId; var sEdcFormId = pSetting.edcFormId; var sEdcTitle = pSetting.edcTitle; var sEdcContent1 = pSetting.edcContent1; var sEdcContent2 = this.gf_Nvl(pSetting.edcContent2,""); var sUserId = this.gf_Nvl(pSetting.userId, this.gf_ErpGetUserInfo().userId); var sDeptCode = this.gf_Nvl(pSetting.deptCode, this.gf_ErpGetUserInfo().deptCode); var sSiteCode = this.gf_Nvl(pSetting.siteCode, this.gf_ErpGetUserInfo().siteCode); var sCompanyCode = this.gf_Nvl(pSetting.companyCode, this.gf_ErpGetUserInfo().companyCode); var inDs = new Dataset(); inDs.addColumn("ifJobDivCd","string"); inDs.addColumn("ifTrkey","string"); inDs.addColumn("appId","string"); inDs.addColumn("edcFormId","string"); inDs.addColumn("edcTitle","string"); inDs.addColumn("edcContent1","string"); inDs.addColumn("edcContent2","string"); inDs.addColumn("userId","string"); inDs.addColumn("deptCode","string"); inDs.addColumn("siteCode","string"); inDs.addColumn("companyCode","string"); inDs.addRow(); inDs.set_name("inDs"); inDs.setColumn(0,"ifJobDivCd", sIfJobDivCd); inDs.setColumn(0,"ifTrkey", sIfTrkey); inDs.setColumn(0,"appId", sAppId); inDs.setColumn(0,"edcFormId", sEdcFormId); inDs.setColumn(0,"edcTitle", sEdcTitle); inDs.setColumn(0,"edcContent1", sEdcContent1); inDs.setColumn(0,"edcContent2", sEdcContent2); inDs.setColumn(0,"userId", sUserId); inDs.setColumn(0,"deptCode", sDeptCode); inDs.setColumn(0,"siteCode", sSiteCode); inDs.setColumn(0,"companyCode", sCompanyCode); var strInDs = "ds_input_" + this.gf_GetRandomKey(); var strOutDs = "ds_ouput_" + this.gf_GetRandomKey(); this.addChild(strInDs, inDs); this.addChild(strOutDs, this.dsEdcRptsResult); var sInDataset = "_IN_ROOT_="+strInDs; var sOutDataset = strOutDs+"=_OUT_ROOT_"; this.gf_ErpTransaction("SSMCMMSVC", "SSMCMMSVC002", sInDataset, sOutDataset, "gf_ErpCallback"); };