작은따옴표나 Oracle에 데이터 형식의 필드를 내보낼 때 액세스 하면 오류가 발생

보통: 기본적인 매크로, 코딩 및 상호 운용성 기술이 필요 합니다.

이 문서에는 Microsoft Access 데이터베이스 (.mdb)와 Microsoft Access 프로젝트 (.adp)에 적용 됩니다.

증상

Oracle ODBC 드라이버를 사용 하 여 Access 테이블을 내보낼 때 단일 데이터 형식의 필드에는 여부가 결정 Double 드라이버 다음과 같이 해당 필드를 내보낼 수 있습니다.
Microsoft Oracle 드라이버 다음 오류 메시지가 표시 됩니다.
Microsoft Access 테이블에 모든 데이터를 추가할 수 없습니다.

< 숫자 > 레코드의 필드 내용이 삭제 된 및 0 레코드가 키 위반 때문에 손실 되었습니다.
  • 데이터가 삭제 된 경우 붙여넣거나 가져온 데이터가 필드 데이터 형식이 나 대상 테이블의 FieldSize 속성이 일치 하지 않습니다.
  • 레코드가 손실 된 경우 붙여 넣은 레코드가 이미 대상 테이블에 있는 기본 키 값을 포함 하거나 테이블 간에 정의 된 관계에 대 한 참조 무결성 규칙을 위반 합니다.
    그래도 계속 하 시겠습니까?
Oracle ODBC 드라이버 및 8.1.6 버전까지 다음과 같은 오류 메시지가 표시 됩니다.
ODBC-호출이 실패
[Oracle] [ODBC] [ORA] ORA-01401: 삽입 열에 비해 너무 큰 값 (#1401)

원인

Microsoft Access 97 내보내기 프로세스 VarChar2(40)를 단일 및 이중 데이터 형식 필드를 변환합니다. 그러나 Microsoft Access 2000 이상과, VarChar2(4), 어떤 게 너무 작아서 데이터를 저장할 수 필드 변환 됩니다.

해결 방법

데이터 성공적으로 Oracle로 내보낼 관련 테이블을 기반으로 쿼리를 사용 합니다. CStr() 함수를 사용 하 여 데이터 형식을 문자열로 변환.

예를 들어, 다음 SQL 구문을 살펴보겠습니다.
SELECT tblExample.pkeyDataID, tblExample.dblTestFROM tblExample;

여기서 dblTest는 Double 데이터 형식의 필드입니다. DblTest SQL 구문을 다음과 같이 변경 하 여 문자열 데이터 형식 변환:
SELECT tblExample.pkeyDataID, CStr([dblTest]) AS Expr1FROM tblExample;

쿼리는 Oracle에 성공적으로 내보냈습니다 이제 수 있습니다.

이 문제는 Microsoft Jet 4.0 데이터베이스 엔진 서비스 팩 8 (SP8)에서 확인 됩니다. Microsoft Jet 4.0 데이터베이스 엔진 s p 8에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.:

Jet 4.0 서비스 팩 8에 대 한 829558 정보

상태

Microsoft는 이 문서의 시작 부분에 나열한 제품에서 문제인지 확인했습니다.

자세한 내용

이 문서에서 논의된 타사 제품은 Microsoft와는 별개의 회사에서 제조된 것입니다. Microsoft는 이러한 제품의 성능 또는 안정성에 대해 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.
속성

문서 ID: 301915 - 마지막 검토: 2017. 2. 6. - 수정: 1

피드백