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 39177 게시물 읽기
No. 39177
오류가 납니다.(ORA-01722)
작성자
초보
작성일
2011-12-20 19:06
조회수
4,603

아래의 쿼리를 수행하면

ORA-017722 : 수치가 부적합합니다 라는 오류가 납니다.

어떻게 수정하는게 좋을까요? 참고로, a.idx 와 b.idx 는 모두 number type입니다.

         

         p_idxlist := '1,2,3,4,5,';

            update tab1 a
            set col1 = (select col1
               from tab2 b
              where a.idx = b.idx
                  and a.idx in substr(p_idxlist, 1, length(p_idxlist)-1)) ;
 

부탁드립니다. 꾸벅~

 

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

원하시는 모양은 다음과 같을 것입니다.
idx IN (1,2,3,4,5)
그러나 작성하신 모양은 다음과 같습니다.
idx IN '1,2,3,4,5'
괄호도 없지만 괄호가 있다고 해도 에러는 마찬가지입니다.
다섯개의 숫자와 비교하는게 아니라 하나의 문자열과 비교하고 있습니다.
조건도 서브쿼리가 아닌 메인쿼리에 주시는게 맞습니다.

UPDATE tab1 a
   SET col1 = (SELECT col1 FROM tab2 b WHERE a.idx = b.idx)
 WHERE a.idx IN
(
SELECT TO_NUMBER(REGEXP_SUBSTR(p_idxlist, '[^,]+', 1, LEVEL)) v
  FROM dual
CONNECT BY LEVEL <= LENGTH(p_idxlist) - LENGTH(REPLACE(p_idxlist, ','))
)
;

마농(manon94)님이 2011-12-21 09:37에 작성한 댓글입니다.

아.. 그렇군요. 캄사합니다. ㅠㅠ

초보님이 2011-12-21 14:39에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
391809i 작동하는 SQL 이 11g 에서 INDEX 유무에 따라 작동이 안돼요. [2]
박재덕
2011-12-21
4610
39179여러 테이블에 INSERT문 실행 시 순서 [1]
한호연
2011-12-20
3803
39178두개의 Table에서 조건값 구하기 [1]
프돌이
2011-12-20
4568
39177오류가 납니다.(ORA-01722) [2]
초보
2011-12-20
4603
39176컬럼 추가 시간
정용석
2011-12-19
3802
39175toad 설치시(oracle 초보입니다.) [1]
Kim gu
2011-12-19
3821
39174erwin 설치 에러
유닉스
2011-12-19
5089
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다