자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
TFDQuery를 사용해 오라클 CLOB형 자료 Read시 ORA-24812 오류 발생
2014.08.06 19:04
CLOB 자료를 가져올려고 하면 ORA-24812 오류가 납니다.(오류하면은 첨부를 참조해주세요.)
SQL.Open을 하면 ORA-24812가 발생하기 때문에
qryClob.FetchOptions.Items := qryClob.FetchOptions.Items - [fiBlobs];를 처리했습니다.
그리고 Blob자료를 가져오기 위해 qryClob.FetchBlobs; 를 실행하면 ORA-24812 오류가 발생합니다.
아래 첫번째 방법에서 FetchBlobs를 하지 않은상태에서 처리하면 Stream.Size가 0이 나옵니다.
FetchBlobs를 하면 오류가 나오
첫번째 방법
var
Stream: TStream;
begin
Stream := CreateBlobStream(FieldByNumber(FieldNo) as TBlobField, bmRead);
try
Result := Stream.Size;
if Result > 0 then
begin
if Length(Buffer) <= Result then
SetLength(Buffer, Result + Result div 4);
Stream.Read(Buffer[0], Result);
end;
finally
Stream.Free;
end;
end;
아래 두번째 방법에서는 SaveToStream에서 ORA-24812 오류가 발생합니다.
두번째 방법
var
MS:TMemoryStream;
begin
ADOQuery1.Open;
MS:=TMemoryStream.Create;
TBlobField(ADOQuery1.Fields[2]).SaveToStream(MS);
end;
며칠째 헤매고 있습니다.
도움 부탁드립니다.
TFDQuery를 사용해 오라클 CLOB형 자료 Read시 ORA-24812 오류 발생
2014.08.06 19:04
CLOB 자료를 가져올려고 하면 ORA-24812 오류가 납니다.(오류하면은 첨부를 참조해주세요.)
SQL.Open을 하면 ORA-24812가 발생하기 때문에
qryClob.FetchOptions.Items := qryClob.FetchOptions.Items - [fiBlobs];를 처리했습니다.
그리고 Blob자료를 가져오기 위해 qryClob.FetchBlobs; 를 실행하면 ORA-24812 오류가 발생합니다.
아래 첫번째 방법에서 FetchBlobs를 하지 않은상태에서 처리하면 Stream.Size가 0이 나옵니다.
FetchBlobs를 하면 오류가 나오
첫번째 방법
var
Stream: TStream;
begin
Stream := CreateBlobStream(FieldByNumber(FieldNo) as TBlobField, bmRead);
try
Result := Stream.Size;
if Result > 0 then
begin
if Length(Buffer) <= Result then
SetLength(Buffer, Result + Result div 4);
Stream.Read(Buffer[0], Result);
end;
finally
Stream.Free;
end;
end;
아래 두번째 방법에서는 SaveToStream에서 ORA-24812 오류가 발생합니다.
두번째 방법
var
MS:TMemoryStream;
begin
ADOQuery1.Open;
MS:=TMemoryStream.Create;
TBlobField(ADOQuery1.Fields[2]).SaveToStream(MS);
end;
며칠째 헤매고 있습니다.
도움 부탁드립니다.
올려주신 내용의 코드 상으로는 잘못된 부분이 없습니다.
ORA-24812 오류의 경우 오라클에서 내뱉는 오류이고 검색한 결과 오라클 설정과 관련이 있는 것으로 보입니다.
오라클 서버의 설정 등을 살펴보시기 바랍니다.