FORUM

조회 수 762 추천 수 0 댓글 15
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Linux
CUBRID Ver.
9.3 (9.3.6. 0002) 
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
Java


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

안녕하세요.

Merge 쿼리 실행 중 발생한 오류 Cubrid Data Type Error 에러 관련해서  도움을 구하고자 문의 드립니다.

 

현재 데이터를 List로 받아서 Merge 쿼리를 통해 UPDATE 또는 INSERT를 진행하는 쿼리를 실행하려고 했습니다만 다음과 같은 오류가 발생했습니다.

 

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-456];   
--- The error occurred while applying a parameter map.  
--- Check the EhojoToCubridServiceDAO.updateTcmCtrtbooks-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: cubrid.jdbc.driver.CUBRIDException: Data type references are incompatible.

 

쿼리를 실행하는 도중 데이터타입이 맞지 않다는 오류인 것 같아 다시 살펴보았으나, 제가 보기에는 문제가 없는것으로 생각됩니다. 

 

실행한 쿼리는 다음과 같으며, 테이블의 DDL, 사용한 VO를 첨부하였습니다. 혹시 제가 쿼리를 잘못 사용한게 있을까요?

 

<update id="MethodName" parameterClass="java.util.List">
        MERGE INTO V_TCM_CTRTBOOKS AS A
        USING (
            <iterate prepend="VALUES" conjunction=",">
                (
                #[].lafCd# AS "LAF_CD",
                #[].ctrtLdgrMngNo# AS "CTRT_LDGR_MNG_NO",
                #[].atflGrpId# AS "ATFL_GRP_ID",
                #[].fyr# AS "FYR",
                #[].expsDvCd# AS "EXPS_DV_CD",
                #[].pcurDvCd# AS "PCUR_DV_CD",
                #[].ctrtKndCd# AS "CTRT_KND_CD",
                #[].ctrtMthCd# AS "CTRT_MTH_CD",
                #[].ctrtTyDtsCd# AS "CTRT_TY_DTS_CD",
                #[].newLtmDvCd# AS "NEW_LTM_DV_CD",
                #[].cprtCtrtDvCd# AS "CPRT_CTRT_DV_CD",
                #[].ctrtTrgtNm# AS "CTRT_TRGT_NM",
                #[].ctrtOtlnCn# AS "CTRT_OTLN_CN",
                #[].lctnNm# AS "LCTN_NM",
                #[].ctrtNo# AS "CTRT_NO",
                #[].pcurMngNo# AS "PCUR_MNG_NO",
                #[].pcurChrgDeptNm# AS "PCUR_CHRG_DEPT_NM",
                #[].cgpTelno# AS "CGP_TELNO",
                CAST(#[].pcurFee# AS NUMERIC(20,0)) AS "PCUR_FEE",
                #[].podrDvCd# AS "PODR_DV_CD",
                CAST(#[].frstSmzCtrtAmt# AS NUMERIC(20,0)) AS "FRST_SMZ_CTRT_AMT",
                CAST(#[].smzCtrtTottAmt# AS NUMERIC(20,0)) AS "SMZ_CTRT_TOTT_AMT",
                #[].smzCtrtYmd# AS "SMZ_CTRT_YMD",
                #[].bgcsYmd# AS "BGCS_YMD",    
                #[].cmcnYmd# AS "CMCN_YMD",
                #[].cmcnScdYmd# AS "CMCN_SCD_YMD",
                #[].rgetYn# AS "RGET_YN",
                CAST(#[].dbtBdnAmt# AS NUMERIC(20,0)) AS "DBT_BDN_AMT",
                #[].smzCstcDys# AS "SMZ_CSTC_DYS",
                #[].pvcnRsonCd# AS "PVCN_RSON_CD",
                #[].pvcnRsonSclsCd# AS "PVCN_RSON_SCLS_CD",
                #[].g2bRchDt# AS "G2B_RCH_DT",
                #[].ctrtFomCd# AS "CTRT_FOM_CD",
                #[].mdfcnYmd# AS "MDFCN_YMD",
                #[].ctrtChrgUsrId# AS "CTRT_CHRG_USR_ID",
                CAST(#[].bfSmzCtrtAmt# AS NUMERIC(20,0)) AS "BF_SMZ_CTRT_AMT",
                CAST(#[].dlyRpnAmtRt# AS NUMERIC(25,5)) AS "DLY_RPN_AMT_RT",
                #[].frstCtrtLdgrNo# AS "FRST_CTRT_LDGR_NO",
                #[].deptCd# AS "DEPT_CD",
                #[].pcurPrgDvCd# AS "PCUR_PRG_DV_CD",
                #[].exntCd# AS "EXNT_CD",
                #[].mdfcnDt# AS "MDFCN_DT",
                #[].mdfcnUsrId# AS "MDFCN_USR_ID",
                #[].giveMthCd# AS "GIVE_MTH_CD",
                #[].leasYn# AS "LEAS_YN",
                #[].smzCtrtDgr# AS "SMZ_CTRT_DGR",
                #[].smzCtrtDgrExiYn# AS "SMZ_CTRT_DGR_EXI_YN",
                #[].ctrtOpslDvCd# AS "CTRT_OPSL_DV_CD",
                #[].ctrtMthDtsDvCd# AS "CTRT_MTH_DTS_DV_CD",
                #[].ctdmDvCd# AS "CTDM_DV_CD",
                #[].ctrtCnltYn# AS "CTRT_CNLT_YN",
                #[].ctrtCn# AS "CTRT_CN",
                CAST(#[].pbnTottAmt# AS NUMERIC(20,0)) AS "PBN_TOTT_AMT",
                CAST(#[].rnsmTottAmt# AS NUMERIC(20,0)) AS "RNSM_TOTT_AMT",
                #[].cmpsMbizCd# AS "CMPS_MBIZ_CD",
                CAST(#[].lbcTottAmt# AS NUMERIC(20,0)) AS "LBC_TOTT_AMT",
                #[].scgdYn# AS "SCGD_YN",
                #[].g2bCkNm# AS "G2B_CK_NM",
                CAST(#[].g2bGdPatDscrt# AS NUMERIC(22,2)) AS "G2B_GD_PAT_DSCRT",
                CAST(#[].g2bGdPatDscAmt# AS NUMERIC(20,0)) AS "G2B_GD_PAT_DSC_AMT",
                #[].gvslMtrlDvCd# AS "GVSL_MTRL_DV_CD",
                #[].cstcDvCd# AS "CSTC_DV_CD",
                #[].lgnRgstrUsrId# AS "LGN_RGSTR_USR_ID",    
                #[].lgnRgstrDt# AS "LGN_RGSTR_DT",
                #[].frstRgstrUsrId# AS "FRST_RGSTR_USR_ID",
                #[].frstRgstrDt# AS "FRST_RGSTR_DT",
                #[].lastMdfcnUsrId# AS "LAST_MDFCN_USR_ID",
                #[].lastMdfcnDt# AS "LAST_MDFCN_DT"
                )
            </iterate>
        ) AS B
        ON  (
                B.LAF_CD = A.LAF_CD
            AND B.CTRT_LDGR_MNG_NO = A.CTRT_LDGR_MNG_NO
            )
        WHEN MATCHED THEN
            UPDATE SET A.ATFL_GRP_ID = B.ATFL_GRP_ID
                     , A.FYR = B.FYR
                     , A.EXPS_DV_CD = B.EXPS_DV_CD
                     , A.PCUR_DV_CD = B.PCUR_DV_CD
                     , A.CTRT_KND_CD = B.CTRT_KND_CD
                     , A.CTRT_MTH_CD = B.CTRT_MTH_CD
                     , A.CTRT_TY_DTS_CD = B.CTRT_TY_DTS_CD
                     , A.NEW_LTM_DV_CD = B.NEW_LTM_DV_CD
                     , A.CPRT_CTRT_DV_CD = B.CPRT_CTRT_DV_CD
                     , A.CTRT_TRGT_NM = B.CTRT_TRGT_NM
                     , A.CTRT_OTLN_CN = B.CTRT_OTLN_CN
                     , A.LCTN_NM = B.LCTN_NM
                     , A.CTRT_NO = B.CTRT_NO
                     , A.PCUR_MNG_NO = B.PCUR_MNG_NO
                     , A.PCUR_CHRG_DEPT_NM = B.PCUR_CHRG_DEPT_NM
                     , A.CGP_TELNO = B.CGP_TELNO
                     , A.PCUR_FEE = B.PCUR_FEE
                     , A.PODR_DV_CD = B.PODR_DV_CD
                     , A.FRST_SMZ_CTRT_AMT = B.FRST_SMZ_CTRT_AMT
                     , A.SMZ_CTRT_TOTT_AMT = B.SMZ_CTRT_TOTT_AMT
                     , A.SMZ_CTRT_YMD = B.SMZ_CTRT_YMD
                     , A.BGCS_YMD = B.BGCS_YMD
                     , A.CMCN_YMD = B.CMCN_YMD
                     , A.CMCN_SCD_YMD = B.CMCN_SCD_YMD
                     , A.RGET_YN = B.RGET_YN
                     , A.DBT_BDN_AMT = B.DBT_BDN_AMT
                     , A.SMZ_CSTC_DYS = B.SMZ_CSTC_DYS
                     , A.PVCN_RSON_CD = B.PVCN_RSON_CD
                     , A.PVCN_RSON_SCLS_CD = B.PVCN_RSON_SCLS_CD
                     , A.G2B_RCH_DT = B.G2B_RCH_DT
                     , A.CTRT_FOM_CD = B.CTRT_FOM_CD
                     , A.MDFCN_YMD = B.MDFCN_YMD
                     , A.CTRT_CHRG_USR_ID = B.CTRT_CHRG_USR_ID
                     , A.BF_SMZ_CTRT_AMT = B.BF_SMZ_CTRT_AMT
                     , A.DLY_RPN_AMT_RT = B.DLY_RPN_AMT_RT
                     , A.FRST_CTRT_LDGR_NO = B.FRST_CTRT_LDGR_NO
                     , A.DEPT_CD = B.DEPT_CD
                     , A.PCUR_PRG_DV_CD = B.PCUR_PRG_DV_CD
                     , A.EXNT_CD = B.EXNT_CD
                     , A.MDFCN_DT = B.MDFCN_DT
                     , A.MDFCN_USR_ID = B.MDFCN_USR_ID
                     , A.GIVE_MTH_CD = B.GIVE_MTH_CD
                     , A.LEAS_YN = B.LEAS_YN
                     , A.SMZ_CTRT_DGR = B.SMZ_CTRT_DGR
                     , A.SMZ_CTRT_DGR_EXI_YN = B.SMZ_CTRT_DGR_EXI_YN
                     , A.CTRT_OPSL_DV_CD = B.CTRT_OPSL_DV_CD
                     , A.CTRT_MTH_DTS_DV_CD = B.CTRT_MTH_DTS_DV_CD
                     , A.CTDM_DV_CD = B.CTDM_DV_CD
                     , A.CTRT_CNLT_YN = B.CTRT_CNLT_YN
                     , A.CTRT_CN = B.CTRT_CN
                     , A.PBN_TOTT_AMT = B.PBN_TOTT_AMT
                     , A.RNSM_TOTT_AMT = B.RNSM_TOTT_AMT
                     , A.CMPS_MBIZ_CD = B.CMPS_MBIZ_CD
                     , A.LBC_TOTT_AMT = B.LBC_TOTT_AMT
                     , A.SCGD_YN = B.SCGD_YN
                     , A.G2B_CK_NM = B.G2B_CK_NM
                     , A.G2B_GD_PAT_DSCRT = B.G2B_GD_PAT_DSCRT
                     , A.G2B_GD_PAT_DSC_AMT = B.G2B_GD_PAT_DSC_AMT
                     , A.GVSL_MTRL_DV_CD = B.GVSL_MTRL_DV_CD
                     , A.CSTC_DV_CD = B.CSTC_DV_CD
                     , A.LGN_RGSTR_USR_ID = B.LGN_RGSTR_USR_ID
                     , A.LGN_RGSTR_DT = B.LGN_RGSTR_DT
                     , A.FRST_RGSTR_USR_ID = B.FRST_RGSTR_USR_ID
                     , A.FRST_RGSTR_DT = B.FRST_RGSTR_DT
                     , A.LAST_MDFCN_USR_ID = B.LAST_MDFCN_USR_ID
                     , A.LAST_MDFCN_DT = B.LAST_MDFCN_DT
            
        WHEN NOT MATCHED THEN
            INSERT VALUES
            (
                B.LAF_CD,
                B.CTRT_LDGR_MNG_NO,
                B.ATFL_GRP_ID,
                B.FYR,
                B.EXPS_DV_CD,
                B.PCUR_DV_CD,
                B.CTRT_KND_CD,
                B.CTRT_MTH_CD,
                B.CTRT_TY_DTS_CD,
                B.NEW_LTM_DV_CD,
                B.CPRT_CTRT_DV_CD,
                B.CTRT_TRGT_NM,
                B.CTRT_OTLN_CN,
                B.LCTN_NM,
                B.CTRT_NO,
                B.PCUR_MNG_NO,
                B.PCUR_CHRG_DEPT_NM,
                B.CGP_TELNO,
                B.PCUR_FEE,
                B.PODR_DV_CD,
                B.FRST_SMZ_CTRT_AMT,
                B.SMZ_CTRT_TOTT_AMT,
                B.SMZ_CTRT_YMD,
                B.BGCS_YMD,
                B.CMCN_YMD,
                B.CMCN_SCD_YMD,
                B.RGET_YN,
                B.DBT_BDN_AMT,
                B.SMZ_CSTC_DYS,
                B.PVCN_RSON_CD,
                B.PVCN_RSON_SCLS_CD,
                B.G2B_RCH_DT,
                B.CTRT_FOM_CD,
                B.MDFCN_YMD,
                B.CTRT_CHRG_USR_ID,
                B.BF_SMZ_CTRT_AMT,
                B.DLY_RPN_AMT_RT,
                B.FRST_CTRT_LDGR_NO,
                B.DEPT_CD,
                B.PCUR_PRG_DV_CD,
                B.EXNT_CD,
                B.MDFCN_DT,
                B.MDFCN_USR_ID,
                B.GIVE_MTH_CD,
                B.LEAS_YN,
                B.SMZ_CTRT_DGR,
                B.SMZ_CTRT_DGR_EXI_YN,
                B.CTRT_OPSL_DV_CD,
                B.CTRT_MTH_DTS_DV_CD,
                B.CTDM_DV_CD,
                B.CTRT_CNLT_YN,
                B.CTRT_CN,
                B.PBN_TOTT_AMT,
                B.RNSM_TOTT_AMT,
                B.CMPS_MBIZ_CD,
                B.LBC_TOTT_AMT,
                B.SCGD_YN,
                B.G2B_CK_NM,
                B.G2B_GD_PAT_DSCRT,
                B.G2B_GD_PAT_DSC_AMT,
                B.GVSL_MTRL_DV_CD,
                B.CSTC_DV_CD,
                B.LGN_RGSTR_USR_ID,
                B.LGN_RGSTR_DT,
                B.FRST_RGSTR_USR_ID,
                B.FRST_RGSTR_DT,
                B.LAST_MDFCN_USR_ID,
                B.LAST_MDFCN_DT
            )
    </update>

 

  • ?
    엄기호 2023.11.14 16:50
    큐브리드를 이용해주셔서 감사합니다.

    테이블 DDL.txt 파일을 보니 SMZ_CSTC_DYS 컬럼 타입이 NUMERIC(5, 0)으로 되어 있습니다.
    그런데 MERGE INTO절에서는 VARCHAR 타입으로 되어 있어서 발생한 것으로 보입니다.
    #[].smzCstcDys# AS "SMZ_CSTC_DYS",
    --> CAST(#[].smzCstcDys# AS NUMERIC(5,0)) AS "SMZ_CSTC_DYS", 으로 변경하여 수행해보세요.
  • ?
    yhpark 2023.11.14 17:06

    안녕하세요. 우선 답변 감사합니다.

    말씀하신대로 해당부분을 수정 후 쿼리를 실행해보았으나..... 동일한 에러가 발생했습니다.

    현재 데이터가 잘못 되었을 가능성도 있다고 생각하여 데이터를 살펴보았으나, 데이터는 정상적으로 출력되고 있습니다.


    혹시 다른 부분이 있을까요?

  • ?
    엄기호 2023.11.14 17:24
    9.x 버전을 사용하고 있네요.
    그럼 컬럼 타입이 DATE으로 되어 있는 값들을 확인하셔서 해보셔야 할 것 같습니다.
  • ?
    동구 2023.11.14 17:29
    혹시, not null 컬럼에, null 값이 update 되는건 아닌지요?
  • ?
    엄기호 2023.11.14 17:40
    not null이면 null를 넣을 수 없다는 의미 입니다.
  • ?
    동구 2023.11.14 17:55
    네.. 그래서 나는 에러가 아닌지 헤서요.
  • ?
    yhpark 2023.11.15 09:16

    안녕하세요! 답변 감사합니다!

    답변달아주신 것을 확인 후

    1. CAST(#[].smzCstcDys# AS NUMERIC(5,0)) AS "SMZ_CSTC_DYS"
    2. DATE 타입 컬럼 값 확인
    3. 데이터 확인을 통해 NOT NULL에 NULL 값이 들어가는지?

    위에 3가지 사항을 확인하고 쿼리를 다시 실행해보았으나 동일한 오류가 발생하였습니다.
    DATE 타입의 경우 현재 VARCHAR로 "20231110112949" 와 같은 형태(YYYY MM DD HH24 MI SS)로 데이터가 들어오는데
    CASTING 유무와 상관없이 정상적으로 진행되었습니다.

    NOT NULL 컬럼에 NULL값이 들어가는거 아닌가에 대한 말씀에 대해서는 전체 데이터확인을 해보았으나 데이터는 정상적으로 들어오고 있었습니다.

    혹시 다른 부분이 있을 수 있을까요?

  • ?
    동구 2023.11.15 09:19

    https://diaryofgreen.tistory.com/201
    위 링크 참고해보세요.

     

    SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-456]

    위 검색어로 구글링 해보세요.

     

    대부분, 데이터타입 문제에 대해 언급하고 있습니다. null 값 들어가는게 있는지 다시한번 확인해 보세요.

  • ?
    yhpark 2023.11.15 09:40
    안녕하세요! 답변 감사합니다.

    제가 제대로 이해했는지 모르겠지만...
    현재 쿼리가 조회(SELECT)하는 쿼리가 아니고 <update> ~~ </update>의 결과를 특정 VO에 담지 않고 있는데... 결과값의 매핑을 확인하라는 게 어떤 부분을 말씀하시는건지 잘 모르겠습니다.

    혹시 조금 더 자세하게 말씀해주실 수 있을까요?
  • ?
    tonggu 2023.11.15 09:54
    네,
    결과값의 매핑을 확인하라는것은 USING 문에 넘어온 변수들의 값을 확인하라는 겁니다. 여기에 null 값이 넘어오는건 아닌지?

    그리고, CUBRID 에러코드 -456 은 "데이터 타입 참조 오류라고 나오네요"

    $CUBRID/log/broker/sql_log/ 아래에서 -456 을 찾아보면 에러를 발생시키는 질의를 찾아볼 수 있습니다.
  • ?
    yhpark 2023.11.15 11:17 Files첨부 (1)

    안녕하세요. 자세한 답변 감사합니다.

     

    말씀하신대로 USING 절에서 사용된 값을 확인한 결과 NULL값이 있기는 하지만 NOT NULL 칼럼에 NULL 값이 매칭되는 것은 없었습니다.

     

    그리고 말씀하신 경로를 찾아가 에러코드 로그를 확인해본 결과 첨부한 사진과 같은 로그만 확인할 수 있었습니다.

     

    혹시 로그를 더 자세하게 볼 수 있는 경로가 있을까요?..  

     

    이미지.png

     

  • ?
    tonggu 2023.11.15 11:38
    반드시 not null 컬럼이 아니더라도,
    관련해서, 스키마, USING 절에 넘어온 값 및 타입, VO 에 선언된 타입 등을 확인해 보세요.

    그리고, 구글링 해보면 관련된 자료가 많은듯 합니다.
    iBatis 에서 null 값을 일괄적으로 처리하는 부분들도 있는 것 같구요.

    그리고, 지금 캡쳐하신 로그는 error_log 에서 캡쳐하신것으로 보입니다.
    sql_log 디렉토리내 개별 sql.log 들을 확인해 보세요..
  • ?
    yhpark 2023.11.15 14:31
    안녕하세요. 빠른 답변 감사드립니다.

    말씀하신대로 sql.log 파일을 확인해보니 좀 더 자세한 내용을 알 수 있었는데

    에러가 발생한 원인이 실행시키는 쿼리 길이가 길어서 그런지 쿼리가 완성되지 못하고 실행된걸로 확인됩니다.

    해당 문제는 큐브리드 설정을 통해 해결할 수 있는지 알 수 있을까요?"
  • ?
    tonggu 2023.11.15 16:56
    쿼리가 완성되지 못하고 실행됐다면,,, application 쪽에서 짤려서 보낸걸로 보입니다. application 에서 로그를 찍어 확인해 보시죠?
  • ?
    yhpark 2023.11.16 10:12
    많은 질문에도 계속 답변 해주셔서 감사합니다!

    Application 에서 쿼리를 좀 더 콤팩트하게 만들어서 문제를 해결해보도록 하겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 7 admin 2024.04.23 14968
3996 [데이터 이관] 큐브리드 데이터 이관 문의 4 뚜벅뚜벅 2024.04.30 719
3995 LIMIT사용 시 Outer join query optimization 문의 4 안녕 2024.04.30 812
3994 clob데이터 경로 바꿀수 있스니까? 1 자바천재 2024.04.29 756
3993 db에 저장되어 있는 CLOB 데이터의 위치가 어디로 저장되는지 확인하는 방법이 있을까요? 1 자바천재 2024.04.25 668
3992 큐브리드 서비스 시작이 안됩니다. 2 file 황남빵 2024.04.24 671
3991 큐브리드 JDBC 드라이버 XA문의 및 큐브리드 분산트랜잭션(XA) 지원 문의 1 몽키스패너 2024.04.24 759
3990 group_concat 변수 리턴 관련... 1 썬더기 2024.04.22 710
3989 기 DB에서 테이블 정보만 가져와서 다른 DB에 생성 1 바다소금 2024.04.22 813
3988 큐브리드 매니저 속도 문의 1 연동테스트용 2024.04.22 806
3987 cubrid count 속 2 kanin 2024.04.19 664
3986 cubrid 10.1 데이터 덮어쓰기 질문입니다. 4 ysk96 2024.04.18 669
3985 ACTION 명령어? 예약어? 1 투투투투기기 2024.04.17 689
3984 sql 구문 사용시 데이터 타입 decimal일 경우 1 투투투투기기 2024.04.11 723
3983 Regexp_count 4 SEO 2024.04.09 671
3982 큐브리드 메모리 오류 관련 질문 2 file 뚜벅뚜벅 2024.04.09 673
3981 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 793
3980 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 673
3979 mac m1 다운로드 오류 1 file 혜주냉면 2024.04.05 708
3978 list 함수로 만든 sequence type을 varchar로 변환 문의 1 플레이어블 2024.04.04 691
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 208 Next
/ 208

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2145 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5