INSERT문, 컬럼명 대신 컬럼번호를 넣으면 안될까요? 0 8 1,925

by 구루씨 [Oracle 기초] [2016.11.14 10:47:00]


오라클에서 insert 기능을 활용하여 테이블에 정보를 넣고싶은데요

insert into '테이블' ('컬럼명') values ('값')

인것까진 성공하였는데,

컬럼명 대신 컬럼 번호를 사용할 수는 없을까 해서

insert into '테이블' (1) values ('1')

을 넣어봤는데 안되더라구요

 

방법이 혹시 없나 싶어 질문드립니다.

by 우리집아찌 [2016.11.14 11:15:12]
dynamic query

by 구루씨 [2016.11.14 17:21:19]

ㄴ초보라ㅠㅋㅋ


by 마농 [2016.11.14 11:19:54]

그런 구문은 없습니다.

번호를 이용해 데이터사전으로부터 컬럼명을 가져와 동적 쿼리로 구성하여 실행하는 방법은 가능합니다.


by 구루씨 [2016.11.14 17:20:48]

ㄴ 해당 테이블의 컬럼값에 번호를 부여하는 작업을 해야하는건가요? 동적쿼리에 대해서 알아봐야겠네요. 감사합니다.


by 마농 [2016.11.14 17:33:12]

번호를 부여하는게 아니라...

컬럼에 이미 번호가 부여되어 있습니다.

SELECT table_name          -- 테이블명
     , column_id           -- 컬럼번호
     , column_name         -- 컬럼명
  FROM user_tab_columns    -- 컬럼 정보가 담긴 데이터 사전 뷰
 WHERE table_name = 'EMP'  -- 특정 테이블 조회
 ORDER BY column_id
;

 


by 구루씨 [2016.11.14 21:47:16]

친절한 답변 감사드립니다.


by 구루씨 [2016.11.15 09:28:03]

 

INSERT INTO DEPT (SELECT column_name 
                           FROM user_tab_columns 
                           WHERE TABLE_NAME = 'DEPT' 
                           AND (COLUMN_ID = 1 || COLUMN_ID = 2 || COLUMN_ID = 3) 
                           ORDER BY column_id) VALUES (1,2,3);

하신거보고 만들어보았는데 잘 안됩니다 ㅠㅠ


by 마농 [2016.11.15 21:35:09]

작성하신 문장은 동적 쿼리가 아닙니다.

동적 쿼리는 쿼리 문장을 프로그램에서 동적으로 만들어 내는 것을 의미합니다.

만들어낸 쿼리문은 일반  Insert 문장과 동일해야 하구요.

동작 가능한 일반적인 쿼리문장을 동적으로 만들어 내는 것입니다.

즉, 쿼리만으로 되는게 아니라 프로그래밍이 들어가야 하는 것입니다.

http://www.gurubee.net/article/19612

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입