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 밖에 없는데.. 왜 저런 에러메시지가 나오는 걸까요?
도움 부탁드립니다
values 는 값만 들어올수 있습니다.
values (:as_col1, :as_col2, :as_col3);
이런식이죠
테이블 넣고 싶으시면
select col1, col2, col3
from v_abc;
이런식으로 하시면 될듯합니다.
컬럼 명시를 제외하세요.
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;
소스 테스트 해보기