database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41021 게시물 읽기
No. 41021
BLOB 문의드립니다.
작성자
테스트
작성일
2015-12-02 13:35
조회수
9,205

현재 A라는 테이블에 image 라는 컬럼이  BLOB으로 되어있습니다.

다음문장은 잘됩니다.

update A

set

image = @image

where id = @id

@imge는 아규먼트로 넘어오는 값이구요, 잘됩니다.

그런데 이 아규먼트가 null로 넘어오면 기존값을 그냥 다시 업데이트 하고

null 아니면 넘어온 아규먼트를 업데이트 해아하는데요.

update A

set

image = nvl(@image, imge)

where id = @id

이건 안먹습니다.

그래서

update A

set

image = decode( dbms_lob.getlength(@image), null, image, @image )

이렇게 고쳤는데요.

@image가 null 일때는 쿼리가 정상동작을 합니다.

그런데

@image가 null 아니면 @image를 업데이트 해야하는데

다음과 같은 에러가 납니다.

ora-01461 : can bind a LONG value only for insert into a LONG column

이런에러가 나서

deocode 를 전체 to_blob으로 싸줘봐도 안되고

이걸 case when으로 바꿔봐도 안됩니다.

인자값이 문제라면 제일 첫번째 쿼리도 안되어야 하는데

참 난감합니다.

해결방법을 좀 알려주시면 감사하겠습니다.

이 글에 대한 댓글이 총 1건 있습니다.

UPDATE A
   SET image = @image
 WHERE id = @id
   AND @image IS NOT NULL
;

마농(manon94)님이 2015-12-03 11:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41025oracle 통째로 이관?
슈퍼유져
2015-12-09
8930
41023SQL Area Size
오라클초보
2015-12-08
8629
41022원격지db에 대해 조회하는 방법? [1]
2015-12-07
8932
41021BLOB 문의드립니다. [1]
테스트
2015-12-02
9205
41020Paging 처리방법 [1]
김영주
2015-12-01
8575
41016데이터베이스 SQL 작성했는데 어플라이가 보이지 않아요..!!ㅠㅜ
루루루
2015-11-28
8871
41015append parallel 힌트 질문 드립니다. (사용법) [1]
검콤이
2015-11-27
9180
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다