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 38290 게시물 읽기
No. 38290
서브쿼리시 invalid number에러
작성자
박판규(ppk0505)
작성일
2011-01-04 14:18ⓒ
2011-01-04 14:20ⓜ
조회수
3,697

안녕하세요.

오라클 서브쿼리중에서 궁금중이 있어 질문합니다.

 

CC컬럼은 INTEGER형입니다.

데이타는 1

BB컬럼은 VARCHAR2(200) 이고요..

데이타는 1,2,67,45 이런형식입니다.

질의시 invalid number에러가 나는뎅... 어떤 식으로 수정을 해야 데이타가 나오는지요?

SELECT * FROM  A_TABLE

 WHERE CC IN 
 (

SELECT  BB   FROM B_TABLE  WHERE ROLEID=289

 

)
 

 

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

to_number(bb)

...님이 2011-01-04 14:44에 작성한 댓글입니다. Edit

서브쿼리 문제라기 보다는

BB 컬럼에 숫자외에 다른 문자가 있다는 뜻입니다.

값에 대한 검증을 하는게 좋을듯 합니다.

김대훈(willtuner)님이 2011-01-05 09:20에 작성한 댓글입니다.

WITH a_table AS
(
SELECT 1 cc FROM dual
UNION ALL SELECT 67 FROM dual
)
, b_table AS
(
SELECT 289 roleid, '1,2,67,45' bb FROM dual
UNION ALL SELECT 290, '3,4,5,6,7' FROM dual
)
SELECT *
  FROM a_table
 WHERE cc IN (SELECT REGEXP_SUBSTR(bb, '[^,]+', 1, LEVEL) cc
                FROM (SELECT bb FROM b_table WHERE roleid = 289)
               CONNECT BY LEVEL <= LENGTH(bb) - LENGTH(REPLACE(bb,',')) + 1
              )
;

마농(manon94)님이 2011-01-06 12:49에 작성한 댓글입니다.
이 댓글은 2011-01-06 12:49에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
3829310g xe 프리컴파일 환경 구성
무대리
2011-01-06
2871
38292/ 구분된 숫자의 합을 구하고 싶은데.. [2]
김한조
2011-01-05
3708
38291쿼리를 어떻게 해야 할지 알려주세요 [1]
알려주세요
2011-01-05
2922
38290서브쿼리시 invalid number에러 [3]
박판규
2011-01-04
3697
38289일요일과 토요일날짜 구하기 [1]
김철겸
2011-01-03
3770
38288GROUP BY로 카운트를 할려고 합니다.
조형래
2011-01-03
3084
38287to_date관련 문의 [3]
임우빈
2011-01-03
3834
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다