https://woorishistory.tistory.com/26

 

[DBeaver]DML, DDL쿼리 추출

데이터를 일괄적으로 Insert 해야할 일이 있이 생겼다. 기존 데이터를 generate query로 뽑아 필요한 부분만 수정하여 쓰려했다. result 창에서 우클릭을 하면 나왔던 generate query 어쩌구가 안 보인다. htt

woorishistory.tistory.com

에서 계속

대충 Insert를 뽑아서 일괄적으로 Data를 Insert 하려했다.

INSERT INTO Table_NM (Col1, Col2, ...) VALUES
(Val1, Val2, ...)
,  (Val1, Val2, ...)
...;

 

하지만 Oracle은 (Val1, Val2, ...),  (Val1, Val2, ...) 이렇게 입력이 되지 않는 단다.

 

INSERT INTO Table_NM (Col1, Col2, ...)
SELECT Val1, Val2, ... FROM DUAL
UNION ALL
SELECT Val1, Val2, ... FROM DUAL
UNION ALL
...
SELECT Val1, Val2, ... FROM DUAL;

그래서 위같은 방법을 쓰려고 했다. 아무리 복붙이지만 Col 쓰는 것만이라도 줄이고 싶었다.

ORA-02287: sequence number not allowed here
ORA-02287: 시퀀스 번호는 이 위치에 사용할 수 없습니다.

이번에는 Val1에 ID값을 입력을 위해서 넣은 OBJECT_SEQUENCE.NEXTVAL은 Union과 함께 사용할수 없단다.

 

결국 하나하나 따로 생성;;

INSERT INTO Table_NM (Col1, Col2, ...) VALUES
(Val1, Val2, ... );
INSERT INTO Table_NM (Col1, Col2, ...) VALUES
(Val1, Val2, ... );
...
INSERT INTO Table_NM (Col1, Col2, ...) VALUES
(Val1, Val2, ... );

하지만 우리에게 DB Tool이 있다!

대충 쭉 복붙복붙 후  [   ;   ]  만 잘 찍어준다음

ALT+X => Execute Script 로 한방에 실행이 가능하다.

 

개발에서 Test 후 운영에 실제 Insert하려 했더니 이번에는 OBJECT_SEQUENCE.NEXTVAL에 접근 권한이 없다.

 

Insert하나 하는데 뭐이렇게 빙빙 돌아 왔는지

 

 

 

===참고

https://0and.tistory.com/37

 

[ORACLE] oracle insert 여러개하기

일을하다가 다중행을 insert할 일이 생겼다. (insert-select말고...) 일일히 insert하면 되지만 더 효율적인 방법이 없을까 고민하다가 쿼리를 만들어서 날렸다. INSERT INTO table (column1, column2, ...) VALUES (valu

0and.tistory.com

https://devjeon.tistory.com/entry/ora01

 

[Oracle] ORA-02287 에러 해결방법

에러메시지 ORA-02287: sequence number not allowed here ORA-02287: 시퀀스 번호는 이 위치에 사용할 수 없습니다. 현상 INSERT INTO T_MNG (CODE, SEQ) SELECT A.CODE , SEQ_T_MNG.NEXTVAL FROM T_MNG_INFO GROUP BY CODE ; SELECT 결과를 INS

devjeon.tistory.com

 

+ Recent posts