Background Image

FORUM

2018.03.13 11:35

MERGE INTO문 관련.

조회 수 1109 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 9.2
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


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


MERGE INTO문에 관해 문의드립니다.


MERGE INTO TABLE A USING(SELECT ? END_DATE, ? END_HOURLY, ? COUNT) b

ON(a.END_DATE = b.END_DATE AND a.END_HOURLY = b.END_HOURLY)

WHEN MATCHED THEN 

...

WHEN NOT MATCHED THEN 

...


상기와 같은 쿼리를 prepare할려고 하는데 다음과 같이 에러가 납니다.


Semantic: before '  AND a.END_HOURLY = b.END_HOURLY  AND a.DNIS = b.DNIS AND a.Q...'

'=' requires arguments with compatible collations. merge 


바인딩 값에 직접 데이터를 입력하고 진행하면 -494가 뜹니다.

확인부탁드립니다.


아 또하나가 바인딩할때 네이밍은 안되나요? ? 아니라 :BIND_NAME 이렇게...

수고하세요.

  • ?
    고늬 2018.03.16 16:34
    아직 확인이 안되었나요? 참고로 END_DATE, END_HOURLY는 CHAR 고 COUNT는 NUMERIC입니다.
    바인딩시 문자가 아닌 숫자로 실행하면 되는데.. 문제가 먼가요?

    ====================================성공 케이스========================================
    MERGE INTO RE_DNIS_H a USING (SELECT 20180101 END_DATE, 0 END_HOURLY , 1 DNIS, 1 QUEUE_ID, 1 CENTER_ID, 1 MEDIA_ID, 1 CALL_KIND) b
    ON (a.END_DATE = b.END_DATE AND a.END_HOURLY=b.END_HOURLY AND a.DNIS=b.DNIS AND a.QUEUE_ID=b.QUEUE_ID AND a.CENTER_ID=b.CENTER_ID AND a.MEDIA_ID=b.MEDIA_ID AND a.CALL_KIND=b.CALL_KIND)
    WHEN MATCHED THEN UPDATE SET a.ALLENTER_COUNT = NVL(a.ALLENTER_COUNT, 0) + 1
    WHEN NOT MATCHED THEN INSERT (END_DATE, END_HOURLY , DNIS, QUEUE_ID, CENTER_ID, MEDIA_ID, CALL_KIND) VALUES (b.END_DATE, b.END_HOURLY , b.DNIS, b.QUEUE_ID, b.CENTER_ID, b.MEDIA_ID, b.CALL_KIND)
    ====================================실패 케이스========================================
    MERGE INTO RE_DNIS_H a USING (SELECT '20180101' END_DATE, '00' END_HOURLY , 1 DNIS, 1 QUEUE_ID, 1 CENTER_ID, 1 MEDIA_ID, 1 CALL_KIND) b
    ON (a.END_DATE = b.END_DATE AND a.END_HOURLY=b.END_HOURLY AND a.DNIS=b.DNIS AND a.QUEUE_ID=b.QUEUE_ID AND a.CENTER_ID=b.CENTER_ID AND a.MEDIA_ID=b.MEDIA_ID AND a.CALL_KIND=b.CALL_KIND)
    WHEN MATCHED THEN UPDATE SET a.ALLENTER_COUNT = NVL(a.ALLENTER_COUNT, 0) + 1
    WHEN NOT MATCHED THEN INSERT (END_DATE, END_HOURLY , DNIS, QUEUE_ID, CENTER_ID, MEDIA_ID, CALL_KIND) VALUES (b.END_DATE, b.END_HOURLY , b.DNIS, b.QUEUE_ID, b.CENTER_ID, b.MEDIA_ID, b.CALL_KIND)
  • ?
    권호일 2018.03.16 17:22
    ○ 내부 테스트 절차

    # 테이블 생성

    CREATE TABLE temp_case_1 (END_DATE VARCHAR(20) , END_HOURLY VARCHAR(20) , DNIS INTEGER, ALLENTER_COUNT INTEGER, QUEUE_ID INTEGER , CENTER_ID INTEGER, MEDIA_ID INTEGER, CALL_KIND INTEGER ) ;
    CREATE TABLE temp_case_2 (END_DATE INTEGER , END_HOURLY INTEGER , DNIS INTEGER, ALLENTER_COUNT INTEGER, QUEUE_ID INTEGER , CENTER_ID INTEGER, MEDIA_ID INTEGER, CALL_KIND INTEGER ) ;


    # 테스트 쿼리 1
    MERGE INTO temp_case_1 a USING (SELECT '20180101' END_DATE, '00' END_HOURLY , 1 DNIS, 1 QUEUE_ID, 1 CENTER_ID, 1 MEDIA_ID, 1 CALL_KIND) b
    ON (a.END_DATE = b.END_DATE AND a.END_HOURLY=b.END_HOURLY AND a.DNIS=b.DNIS AND a.QUEUE_ID=b.QUEUE_ID AND a.CENTER_ID=b.CENTER_ID AND a.MEDIA_ID=b.MEDIA_ID AND a.CALL_KIND=b.CALL_KIND)
    WHEN MATCHED THEN UPDATE SET a.ALLENTER_COUNT = NVL(a.ALLENTER_COUNT, 0) + 1
    WHEN NOT MATCHED THEN INSERT (END_DATE, END_HOURLY , DNIS, QUEUE_ID, CENTER_ID, MEDIA_ID, CALL_KIND) VALUES (b.END_DATE, b.END_HOURLY , b.DNIS, b.QUEUE_ID, b.CENTER_ID, b.MEDIA_ID, b.CALL_KIND)


    # 테스트 쿼리 2

    MERGE INTO temp_case_2 a USING (SELECT '20180101' END_DATE, '00' END_HOURLY , 1 DNIS, 1 QUEUE_ID, 1 CENTER_ID, 1 MEDIA_ID, 1 CALL_KIND) b
    ON (a.END_DATE = b.END_DATE AND a.END_HOURLY=b.END_HOURLY AND a.DNIS=b.DNIS AND a.QUEUE_ID=b.QUEUE_ID AND a.CENTER_ID=b.CENTER_ID AND a.MEDIA_ID=b.MEDIA_ID AND a.CALL_KIND=b.CALL_KIND)
    WHEN MATCHED THEN UPDATE SET a.ALLENTER_COUNT = NVL(a.ALLENTER_COUNT, 0) + 1
    WHEN NOT MATCHED THEN INSERT (END_DATE, END_HOURLY , DNIS, QUEUE_ID, CENTER_ID, MEDIA_ID, CALL_KIND) VALUES (b.END_DATE, b.END_HOURLY , b.DNIS, b.QUEUE_ID, b.CENTER_ID, b.MEDIA_ID, b.CALL_KIND)


    보내주신 쿼리를 참조하여 위와 같이 테스트 해 보았습니다.

    모두 정상적으로 실행 되었습니다.

    정확한 확인을 위해서는 $CUBRID/log 디렉토리 파일을 첨부 해 주시면 확인 하겠습니다.

  • ?
    고늬 2018.03.16 18:02
    확인해보니 캐릭터셋이 다르네요. 감사합니다.

  1. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4442
    read more
  2. 숫자 컬럼 검색 문의드립니다.

    Date2018.03.06 Bystarworld Views715
    Read More
  3. SELECT FETCH 문제

    Date2018.03.07 By초보123 Views550
    Read More
  4. 큐브리드 에러 해결방법 문의드립니다

    Date2018.03.08 By오명일 Views1995
    Read More
  5. 큐브리드관련 질문드립니다.

    Date2018.03.12 ByCJH3320 Views233
    Read More
  6. DELETE 구문시 에러

    Date2018.03.12 Byjiman9944 Views1058
    Read More
  7. MERGE INTO문 관련.

    Date2018.03.13 By고늬 Views1109
    Read More
  8. 2783 게시글 이어서 질문입니다.

    Date2018.03.15 By초보123 Views273
    Read More
  9. 안녕하세요 CentOS repository cubrid에러 질문입니다.

    Date2018.03.16 Byyennikim Views412
    Read More
  10. cubrid 백업 및 복원관련

    Date2018.03.19 By코드보이 Views963
    Read More
  11. 큐브리드 매니저 osx 문의

    Date2018.03.21 By콤트 Views599
    Read More
  12. CUBRID 옵티마이저는 Index Condition Pushdown = ICP 기능을 제공하나요??

    Date2018.03.22 ByOPQR Views208
    Read More
  13. cubrid 설치 쉘스크립트 실행 시 오류

    Date2018.03.23 Byasdf5062 Views439
    Read More
  14. 큐브리드 10점대로 구축된 사이트가 있나요?

    Date2018.03.26 By잉여개발자 Views258
    Read More
  15. cubrid 매니저에서 엑셀로 내보내기 했을때 문제 문의

    Date2018.03.27 Bychrisan Views555
    Read More
  16. 브로커기능이 궁금합니다.?

    Date2018.03.27 Bycoolkkm Views229
    Read More
  17. 컬럼 COMMENT 추가할 수 있는 방법이 있을까요

    Date2018.04.03 By잉여개발자 Views2614
    Read More
  18. Cannot coerce value of domain character to domain " 에러 관련 문의

    Date2018.04.05 By잉여개발자 Views2690
    Read More
  19. 안녕하세요. 레코드 접근시 accessor is invalid 라는 에러가 뜹니다. 도와주세요ㅠ

    Date2018.04.09 ByTopCoder Views215
    Read More
  20. Linux에 설치된 Cubrid 매니저 접속 속도 문제

    Date2018.04.10 Bymcwony Views469
    Read More
  21. 서버 조회 문제 (쿼리 rock)

    Date2018.04.10 Bya4033 Views658
    Read More
Board Pagination Prev 1 ... 135 136 137 138 139 140 141 142 143 144 ... 200 Next
/ 200

Contact Cubrid

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