Background Image

FORUM

2020.10.29 14:50

MSSQL DBLink INSERT

조회 수 1380 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4254
3296 테이블 저장공간 쿼리 질문드립니다. 3 os1414 2020.11.04 131
3295 오브젝트들의 비활성화 기능은 없는 건가요? 메뉴얼 보니 나오지를 안아서요? 2 덴드로비움 2020.10.29 123
» MSSQL DBLink INSERT 5 file 흥노 2020.10.29 1380
3293 큐브리드 마이그레이션 툴 사용법 문의 1 bchlim 2020.10.28 116
3292 cubridmigration 성능 문의 1 bchlim 2020.10.28 94
3291 외래키 적용시 null 에러가 뜹니다. 1 쭌쿰 2020.10.28 56
3290 맥 카타리나에서 큐브리드 매니저 실행 안 됨. 3 김간디 2020.10.27 286
3289 Java VM is not running 에러 관련 16 JustBeNormal 2020.10.23 1971
3288 외래키 관련 질문 드립니다. 1 eunjus 2020.10.22 252
3287 HA를 위한 CUBRIDConnection connectionstring 질문 1 푸르른하늘 2020.10.22 130
3286 현재 구축 중인 사이트에 GROUP_CONCAT 쿼리 최적화 관련 문의드립니다 4 인혁 2020.10.21 697
3285 printf("Hello World") 처럼 HA 테스트를 위한 절차에 대한 메뉴얼을 구할 수 있을까요? 2 푸르른하늘 2020.10.21 84
3284 centos8 64bit 환경에 큐브리드 10.2 서비스 실행 후 db 접속 안됨 3 푸르른하늘 2020.10.21 237
3283 centos8 64bit 환경에 큐브리드 10.2 버전 설치 오류 2 푸르른하늘 2020.10.20 574
3282 replace활용 작은 따옴표 ( ' ) 제거 하기 2 ggnet2 2020.10.19 6909
3281 에러 로그 첨부 합니다. 5 file Philip Park 2020.10.15 161
3280 HA 실행시 발생하는 에러 1 file Philip Park 2020.10.15 125
3279 무슨 에러인지 문의 드립니다. 2 file Philip Park 2020.10.15 85
3278 ORACLE_STYLE_EMPTY_STRING 설정 값에 의한 TRIM 처리에 대한 문의 1 zeroradish 2020.10.14 95
3277 보관로그(아카이브로그) 자동삭제 질문 드립니다 1 T군 2020.10.13 390
Board Pagination Prev 1 ... 30 31 32 33 34 35 36 37 38 39 ... 199 Next
/ 199

Contact Cubrid

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