Background Image

FORUM

2020.10.29 14:50

MSSQL DBLink INSERT

조회 수 1399 추천 수 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 4443
3987 회원가입이 3명이상 안돼요.. 1 딩이 2010.07.08 7846
3986 회사 서버에 접속을 할려면 설정이 다른가요? 2 후니 2009.07.14 10577
3985 홈경로 databases.txt 질문드립니다 1 큐브리드드 2023.07.17 92
3984 홀따옴표 처리 문의 1 초보 2010.04.15 14679
3983 혼합형 데이터 정렬방법 1 큐키 2021.06.11 85
3982 혼합형 데이터 정렬 방법 1 큐키 2021.06.14 264
3981 혹시 큐브리드매니저 자동완성 끄는 기능 있나요 2 안지민 2012.09.05 6035
3980 혹시 큐브리드 매니져 기본글꼴을 고정폭으로 해주실 생각은 없으신가요... 1 안지민 2012.12.20 5767
3979 혹시 PHP5.3.0 버전에서 모듈 설치되신분 계신가요??? 4 senseplus 2009.07.13 9394
3978 혹시 MMDB 지원하나요? 1 tekkal 2009.01.31 17480
3977 호스트 추가시 발생되는 오류에 대해 문의 합니다. 1 거북이사촌 2015.01.06 5259
3976 호스트 추가 질문입니다. 7 몽유객 2010.12.21 13808
3975 호스트 추가 1 karay2k 2011.12.17 17928
3974 호스트 연결이 안됩니다. 3 file 미드소나 2013.01.01 7752
3973 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13916
3972 호스트 연결이 무한 로딩도네요 1 file 큐브리드사용자 2022.10.20 118
3971 호스트 연결이 되지 않습니다. 3 file Juooon 2013.07.24 9235
3970 호스트 연결 에러 3 secret PJEPJE 2016.01.28 10
3969 형변환 오류 문의 1 삽질중 2009.12.30 12969
3968 현재 큐브리드 7.1 을 사용하고 있는데요 1 헬리 2009.10.01 8770
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