Background Image

FORUM

2020.10.29 14:50

MSSQL DBLink INSERT

조회 수 1405 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

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

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Docker CentOS7 64bit 
CUBRID Ver.
CUBRID 10.2 (10.2.2.8874-f681dd9) (64bit release build for Linux) (Sep  1 2020 09:41:17)
CUBRID TOOL Ver.
CUBRID Admin 10.2.0.0002 (64bit)
응용 환경(API)
ssms

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


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


안녕하세요. 


https://www.cubrid.com/qna/3804477 의 글을보면서

mssql 에서 dblink로 cubrid를 연결하려고 에러가납니다.


OLEDB와 ODBC는 설치하고 


select 까지는 되는데 insert문이 안됨니다.

다른 설정을 해야하는 것이 있는지 궁굼합니다.


cubrid error.png




  • ?
    오명환 2020.10.29 16:34
    CUBRID의 table schema와 mssql에서 사용한 insert 구문을 올려주세요.
    에러 메세지로는 특정 필드의 값 구조가 다른 것처럼 보입니다.
  • ?
    흥노 2020.10.29 18:15

    --테스트에 사용한 쿼리입니다.
    DROP TABLE [IF_EPIS_CROPS_CODE]

    CREATE TABLE [IF_EPIS_CROPS_CODE]
    (
    [CROP_CD] VARCHAR(10),
    [USE_KND] VARCHAR(80),
    [CROP_NM_KOR] VARCHAR(1000) ,
    [CROP_NM_ENG] VARCHAR(1000) ,
    [TECH_NM] VARCHAR(1000) ,
    [UPOV_CD] VARCHAR(20) ,
    [TRN_ID] VARCHAR(50) ,
    [MSG_ID] VARCHAR(50) ,
    [TRN_STATS] VARCHAR(2) ,
    [TRN_DT] DATETIME ,
    [TRN_MSG] VARCHAR(2000) ,
    --, CONSTRAINT PK_IF_EPIS_CROPS_CODE PRIMARY KEY([CROP_CD])
    )

    INSERT INTO if_epis_crops_code ( crop_cd,use_knd,crop_nm_kor,crop_nm_eng,tech_nm,upov_cd,trn_id,msg_id,trn_stats,trn_dt,trn_msg )
    VALUES ( '2', '','' ,'' ,'' ,'' ,'' ,'' , '', sys_datetime, '' )


    --- mssql 구문 입니다.
    select * from lnk_test...if_epis_crops_code


    INSERT INTO lnk_test...if_epis_crops_code ( crop_cd,use_knd,crop_nm_kor,crop_nm_eng,tech_nm,upov_cd,trn_id,msg_id,trn_stats,trn_dt,trn_msg )
    VALUES ( '', '','' ,'' ,'' ,'' ,'' ,'' , '', null, '' )


    빠른답변 부탁드려요

    감사합니다.

  • ?
    권호일 2020.11.02 15:02
    내부 확인 결과 입력하는 값에 NULL이 있는 경우에 오류가 발생합니다.

    우회 방법으로는는 NVL함수를 사용하여 NULL값이 입력되지 않도록 하는 방법이 있습니다.

    해당 오류사항은 내부 오류로 등록하여 차기버젼에 수정하도록 하겠습니다.

    감사합니다.
  • ?
    흥노 2020.11.02 17:52
    확인 감사드립니다.

    NULL값을 안넣으니깐 입력되는건 확인했습니다.

    그런데 테이블에 기본키를 설정하면 다른에러가 발생합니다. 키값을 설정하면

    SELECT, INSERT 둘다 작동하지 않습니다.

    메시지 7356, 수준 16, 상태 1, 줄 9
    연결된 서버 "lnk_test"의 OLE DB 공급자 "MSDASQL"이(가) 열에 대해 일관성이 없는 메타데이터를 제공했습니다. 개체 "if_epis_crops_code"의 열 "crop_cd"(컴파일 시 서수 1)이(가) 컴파일 중에는 "DBCOLUMNFLAGS_ISNULLABLE"/0이(가) 있고 런타임 중에는 32이(가) 있는 것으로 보고되었습니다.
  • ?
    민순 2020.11.05 14:38

    OPENQUERY를 사용해 보시기 바랍니다.

    SELECT * FROM OPENQUERY( [ linked_server 이름], '[실행할 쿼리]' );

    SELECT * FROM OPENQUERY (lnk_test, 'select * from if_epis_crops_code');

    INSERT 구문에서 NULL 값을 넣을 컬럼 빼고 실행해 주시면 정상적으로 실행이 되고 NULL 값이 INSERT 되는 것 확인했습니다.

    INSERT INTO OPENQUERY(lnk_test, 'select crop_cd, use_knd, crop_nm_kor, crop_nm_eng, tech_nm, upov_cd, trn_id, msg_id, trn_stats, trn_msg from if_epis_crops_code') VALUES ( '', '','' ,'' ,'' ,'' ,'' ,'' , '', '' );


    보내주신 테스트 코드 모두 실행 정상적으로 되는 것 확인했습니다.


    --테스트에 사용한 쿼리입니다.
    DROP TABLE [IF_EPIS_CROPS_CODE]

    CREATE TABLE [IF_EPIS_CROPS_CODE]
    (
    [CROP_CD] VARCHAR(10),
    [USE_KND] VARCHAR(80),
    [CROP_NM_KOR] VARCHAR(1000) ,
    [CROP_NM_ENG] VARCHAR(1000) ,
    [TECH_NM] VARCHAR(1000) ,
    [UPOV_CD] VARCHAR(20) ,
    [TRN_ID] VARCHAR(50) ,
    [MSG_ID] VARCHAR(50) ,
    [TRN_STATS] VARCHAR(2) ,
    [TRN_DT] DATETIME ,
    [TRN_MSG] VARCHAR(2000) ,
    --, CONSTRAINT PK_IF_EPIS_CROPS_CODE PRIMARY KEY([CROP_CD])
    )

    INSERT INTO if_epis_crops_code ( crop_cd,use_knd,crop_nm_kor,crop_nm_eng,tech_nm,upov_cd,trn_id,msg_id,trn_stats,trn_dt,trn_msg )
    VALUES ( '2', '','' ,'' ,'' ,'' ,'' ,'' , '', sys_datetime, '' )


    --mssql 에서 실행한 쿼리



    INSERT INTO OPENQUERY(lnk_test, 'select crop_cd, use_knd, crop_nm_kor, crop_nm_eng, tech_nm, upov_cd, trn_id, msg_id, trn_stats, trn_msg from if_epis_crops_code') VALUES ( '', '','' ,'' ,'' ,'' ,'' ,'' , '', '' );

    SELECT * FROM OPENQUERY (lnk_test, 'select * from if_epis_crops_code');





    또한, KEY 값이 있는 테이블도 정상적으로 조회가 됩니다.



    OPENQUERY 관련해서는 아래 링크 참고해주시기 바랍니다.

    https://docs.microsoft.com/ko-kr/sql/t-sql/functions/openquery-transact-sql?view=sql-server-ver15

    감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 48
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3974 mysql로 DB연동 문의 3 연동테스트용 2024.03.20 74
3973 특정DB만 접근 시간이 현저하게 오래 걸리는 문제 1 file 그로구 2024.03.20 64
3972 jdbc 연동시의 charset 강제 변경 방법 1 file gwak 2024.03.14 57
3971 도커로 HA환경 구성 테스트중 hb start.. 1 wodud0170 2024.03.12 63
3970 이중화 관련 문의드립니다. 1 adqwdqwd123412 2024.03.12 67
3969 큐브리드 마스터 복제 관련 문의 드립니다. 2 이지혜 2024.03.11 61
3968 큐브리드 다운로드 에러 1 file 나래아빠 2024.03.08 85
3967 CUBRID Migration Toolkit "orai18n.jar" 추가 방법 1 가을이아빠 2024.03.07 59
3966 CUBRID 에러 로그 관련 확인 요청 2 jnj570244 2024.03.07 95
3965 DB링크로 조회시 문자타입이 조회되지 않고 있습니다. 2 file 원샷 2024.03.06 93
3964 다른 사용자 계정에서 csql로 localhost 접근 문제 4 가을이아빠 2024.03.05 79
3963 [성능이슈] 큐브리드 함수 사용으로 인한 성능이슈 3 레고 2024.03.04 113
3962 CUBRID 11.2 rpm 설치시 cubrid 계정 패스워드 2 가을이아빠 2024.03.04 54
3961 Cubrid JDBC 버전에 따라 출력되는 결과가 다릅니다. 1 엘L 2024.02.28 89
3960 select 질의문 문의 2 태리 2024.02.26 119
3959 cubrid statdump 기술 문의드립니다. 5 secret 이건우 2024.02.19 11
3958 날짜 형식 변환에 대해서 궁금해서 올립니다. 1 김용용 2024.02.14 56
3957 컬럼의 Enum DataType 가져오는것 문의 3 엘L 2024.01.30 75
3956 Redhat 8버전 tls 1.0 에러 9 11시38분 2024.01.30 120
3955 테이블이 어떤 스키마(데이터베이스)에 속해있는지 알 수 있는 방법이 있나요? 3 엘L 2024.01.29 117
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

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