오라클 - rowtype을 insert할때 이 구문은 잘못된 구문인가요? 0 2 6,474

by 문선린 [SQL Query] [2024.08.01 14:33:49]


table 명 : abc

v_abc abc%rowtype;

 

insert into abc(col1, col2, col3)

values v_abc;

 

insert 절에 반드시 컬럼을 명기해야 할 상황이어서.. 위처럼 쿼리를 만들어야 하는데

프로시저에서 컴파일을 하면 "값의 수가 충분하지 않습니다" 라고 나옵니다.

v_abc에 있는 컬럼도 col1, col2, col3 밖에 없는데.. 왜 저런 에러메시지가 나오는 걸까요?

도움 부탁드립니다

by 임형섭 [2024.08.02 16:26:00]

values 는 값만 들어올수 있습니다.

insert into abc(col1, col2, col3)

values (:as_col1, :as_col2, :as_col3); 

이런식이죠

테이블 넣고 싶으시면

insert into abc(col1, col2, col3)

select col1, col2, col3

from v_abc;

이런식으로 하시면 될듯합니다.


by 신히 [2024.08.05 19:35:04]

컬럼 명시를 제외하세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
create table abc (a varchar(3), b numeric, c numeric)
/
DECLARE
  v_abc abc%rowtype;
BEGIN
  v_abc.a := 'a';
  v_abc.b := 1;
  v_abc.c := 3;
  INSERT INTO abc VALUES v_abc;
END;
/
select * from abc;
drop table abc;
소스 테스트 해보기
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입