2017-10-30 6 views
-2

나는 TABLE_A (user, book, msdin)을 가졌습니다. 및 TABLE_B (car_id, user, book, msdin);오류 SQL : ORA-00907 : "오른쪽 괄호가 없습니다"

내가이 삽입

INSERT INTO TABLE_B (car_id, user, book, msdin) 
values 
(11, (select user, book, msdin from TABLE_A)); 

를 만들기 위해 노력하고 있지만이 오류가있어 : ORA-00907: "missing right parenthesis"을하지만, 왼쪽/오른쪽 괄호의 수는 같은

+0

저 11 값은 무엇입니까? –

+3

4 열에 삽입하고 싶지만 1 + 4 값을 지정하십시오. – jarlh

+0

4 개 이상의 값을 삽입했습니다 –

답변

1

귀하 헤아 렸어요 열을 삽입의 값 필드에 헤아 렸어요 열을 일치하지 않습니다. 시도해보십시오 ..

INSERT INTO TABLE_B (car_id, user, book, msdin) 
select 11, user, book, msdin from TABLE_A ; 
+0

'TABLE_A'에는'car_id' 컬럼이 없습니다. 이것은 숫자 리터럴 인'11'이어야합니다. – MT0

+0

완료! pls 한 번 확인 ... –

1

입니다 당신은 아마 INSERT SELECT 문을 필요

INSERT INTO TABLE_B (car_id, user, book, msdin) 
select 11, user, book, msdin from TABLE_A; 

SELECT에 의해 반환 된 값 및 데이터 형식의 수는 다음과 같은 특성에 해당해야합니다. INSERT 뒤에있는 테이블. 그것을 시도 할 때 VALUES 뒤의 subselect를 INSERT에 사용할 수 없습니다. 당신의 TABLE_A 만 한 기록이있는 경우

-2

, 당신은 다음을 수행해야합니다 -

INSERT INTO TABLE_B (car_id, user, book, msdin) 
values 
    (11, 
    (select user from TABLE_A), 
    (select book from TABLE_A), 
    (select msdin from TABLE_A), 
); 
+0

@Dear Downvoters - 댓글을 추가 할 수 있다면 좋을 것입니다. 나 한테서, 위의 대답은 확실히 작동합니다. –

+0

그 대답에 내 첫 번째 줄은 무엇입니까, 만약 당신의'TABLE_A'는 단 하나의 레코드가 있습니다. –