안녕하세요.

Classic ASP 페이지와 MS-SQL 2000 사용중입니다.


7개의 컬럼이 있는 [테이블A]가 있습니다. (간략하게 컬럼명을 A~G 로 칭하겠습니다.)

[테이블A]

A char(8) Not Null   <-- Clustered Primary Key

B char(8) Null

C char(6) Null

D char(2) Null

E char(1) Null

F char(40) Null

G char(1) Null

Collation은 Korean_Wansung_CI_AS 입니다.


INDEX:

PK__테이블A__7E11CC41 clustered, unique, primary key located on PRIMARY A



위와 같은 테이블이 존재하고, 웹상에서 어떤 페이지를 실행하면 다음과 같은 쿼리가 수행됩니다.


INSERT INTO [테이블A] (A, B, C, D, F) 

(SELECT 'SS000179', convert(char(8), getdate(),112), sale_code, depart_code, '(주)테스트회사@내수@테스트현장 건물 본납' FROM  [테이블B] where pd_code = 'DD000256')


이것은 [테이블2]라는 임시 테이블에 있는 레코드 값을 가져와서 [테이블A]에 등록해 주는 작업입니다.

이 때 오류가 나는데 오류 내용은 바이너리 값이 잘렸다는 내용입니다.

보통 이러한 에러는 컬럼의 크기보다 입력하려는 데이터의 크기가 클 경우 발생하는 것으로 알고 있습니다.

그런데 문제는 입력하려는 데이터의 크기가 컬럼의 크기를 초과하지 않는다는 것입니다.


동일한 작업을 하는 다른 건들은 모두 잘 입력되고 있는데 지금 위에 써 놓은 건만 에러를 발생 시킵니다.

더욱 이상한 점은 문제가 되는 저 쿼리문을 Response.write하여 웹상에 출력한 뒤 그 쿼리를 그대로 복사해서

쿼리분석기에 놓고 실행을 하면 정상적으로 Insert가 된다는 것입니다.


미칠 노릇이죠..ㅜㅜ

이럴 수가 있나요? ASP페이지에서는 오류를 내면서 문제가 되는 해당 쿼리문을 출력해 쿼리분석기에서 실행해보면

정상 처리되는 ... 이런경우... 



그래서 혹시 ASP 페이지에서 사용하는 DBHelper쪽의 문제가 아닐까 생각도 드는데.. 소스 내용은 다음과 같습니다.

Public Sub RunSQL(strSQL, params, connectionString)      

connectionString 설정부문 생략 ...

      

Set cmd = CreateObject("ADODB.Command")


cmd.ActiveConnection = connectionString

cmd.CommandText = strSQL 

cmd.CommandType = adCmdText

Set cmd = collectParams(cmd, params)


cmd.Execute , , adExecuteNoRecords       <--- 요기서 에러발생 


Set cmd.ActiveConnection = Nothing

Set cmd = Nothing

End Sub


에러 구문은 다음과 같습니다.

Microsoft OLE DB Provider for SQL Server error '80040e57'

String or binary data would be truncated.


이걸 DB쪽 문제로 봐야할지 ASP 쪽 문제라고 봐야할지... 난감하네요..

ASP쪽 문제라고 하기엔 다른 건들은 잘 처리가 되고 있고...

DB쪽 문제라고 하기엔 문제가 되는 저 건에 대한 입력 값들은 컬럼의 사이즈를 초과하지 않거든요...


소중한 조언 기다려 봅니다 ^^:




No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1199
8460 권한 오류 문의 드립니다. 나는짱이야 2015.01.09 2453
8459 asp에서 DB 컨넥션... [7] 전혜연 2015.01.08 3464
8458 고정IP가 변경되었는데 접속이 안되네요.... [2] 곰탱이아빠 2015.01.08 2927
8457 작업 모니터 실행 시 오류 포탱이 2015.01.07 3517
» 문자열 길이 초과 하지 않았는데 String or binary data would be trunccated 문제 [2] Larry 2015.01.07 5472
8455 프로시저 실행중에 데이타를 입력받아 처리할 수 있을까요? [2] 뽀지티브 2015.01.07 2739
8454 트랜잭션 로그 백업을 진행하고 있는데... [2] 라니린 2015.01.07 2407
8453 뷰 저장시 문제 [3] hhhh 2015.01.07 2743
8452 조인문제..? [2] 문상연 2015.01.06 2247
8451 숫자 순번 초과시 영문을 추가하여 순번 추가하기 [2] 정담씨 2015.01.06 2603
8450 원격지서버 자료등록 [2] 달려보세 2015.01.05 2413
8449 row_number() 로 페이징 할 때 질문입니다. [6] 흑흑 2015.01.05 7305
8448 특정 컬럼값 기준으로 날짜별 합계 쿼리 [2] embster 2015.01.04 7855
8447 표준모델 [2] 더따뜻한 2015.01.04 2391
8446 mssql paging(페이징) 문제..? [4] 문상연 2015.01.04 2761
8445 번호 생성 [3] hhhh 2015.01.02 3355
8444 mssql서버를 설치할려면 os를 뭘 설치해야하나요? [2] 문상연 2015.01.01 2848
8443 join하면 데이타가 안나와요 [9] 문상연 2015.01.01 3135
8442 항목값이 구분자로 들어가 있을 때 검색 [1] 냥냥 2014.12.30 2786
8441 SELECT 컬럼수에 따른 속도 [7] mr-choi 2014.12.30 5273





XE Login