본문 바로가기
반응형

개발자의 삶/DB24

[ORACLE] [SQL] SELECT 해서 INSERT 하기 동기프로젝트를 진행 중에 예기치 못한 요구사항으로 인한 DB 변경이 이루어질 때가 있다.이때, 컬럼만 추가해서 NULL 값이 들어가도 되거나, 그냥 기본 값 = (예를 들어) 1 이 들어간다면 얼마나 좋을까?하지만, 그룹으로 묶어서 값을 넣어주어야 한다면 좀 더 복잡해지기 마련이다.그룹으로 묶어서 LEVEL 값을 넣어주어야 했다. 방법 UPDATE /*+ BYPASS_UJVC */( SELECT A.COLUMN1 UPD_COL , B.RNUM SEL_COL FROM TABLE_A A , ( SELECT KEY_COLUMN, ROW_NUMBER() OVER(PARTITION BY GROUP_COLUMN1, GROUP_COLUMN2 ORDER BY ORDER_COLUMN) AS RNUM FROM TABLE_.. 2017. 1. 2.
[Oracle] 버전 확인 들어가기 전개발을 하면서 개발에 필요한 DB, 서버 등 버전을 확인해야 할 일이 생긴다. 문서 작업을 하면서... 그리고 문서 작업뿐만 아니라 기본적으로 제공되는 함수들의 사용 여부도 알 수 있기 때문에 버전은 중요하다. 예를 들면, 11g 에서 제공하는 문자열 붙이는 함수에 LISTAGG(ENAME, ', ') WITHIN GROUP (ORDER BY HIREDATE) AS AGGREGATED_ENAMES 하지만, 10g에서는 listagg 함수가 없다.... 이럴 때 10g 에서 사용할 수 있는 함수를 찾아야 한다. SUBSTR(XMLAGG(XMLELEMENT(a, '@@', NVL(COLUMN1,'_')||':'||NVL(COLUMN2,'_')) ORDER BY COLUMN3).EXTRACT ('/.. 2016. 12. 9.
[오라클] primary key 추가 삭제 들어가기 전 기본키를 추가 할 일이 생겼다. 기존에 키가 등록이 되어 있는데, 수정하고 싶었던 것이다. 그럼 일단 지우고, 다시 등록을 해야 한다. 근데 지워지지 않았다. ALTER TABLE TEST_TABLE DROP PRIMARY KEY; ORA-02441: Cannot drop nonexistent primary key 삭제 할 수 없단다. 다시 테이블 description 을 봤다. 분명 우리가 사용하는 pk 사용 네이밍룰로 된 key 값이 등록 되어 있었다. '이상하다.' 싶어서 다시 지웠는데도 없단다. 다시 description 을 봤다. 머리가 아파왔다. 자세히 보니.... CREATE UNIQUE INDEX [PK명] ON [TABLE명]([KEY1],[KEY2],[...]) 위와 같이 .. 2016. 12. 2.
[ORACLE] INDEX 목록 조회 동기산출물을 작성 해야 한다. 그럼 뽑아야지. 쿼리 SELECT B.TABLE_NAME, B.INDEX_NAME, B.COLUMN_NAME, A.UNIQUENESSFROM ALL_INDEXES A, ALL_IND_COLUMNS BWHERE A.INDEX_NAME = B.INDEX_NAMEORDER BY B.TABLE_NAME, B.INDEX_NAME, B.COLUMN_POSITION 참고용https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_1069.htm#i1578369http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_1064.htm#i1577532 궁시렁형식은 각 형식에 맞춰.. 2016. 9. 20.
[ORACLE] [SQL PLUS] sql script 실행 몇 줄 되지 않은 데이터를 넣을 때는 GUI가 잘 되어 있는 툴을 이용해서 데이터를 넣어도 되지만, 엄청나게 많은 데이터를 넣을 때 GUI 가 잘 되어 있는 툴을 이용하여 넣을 때엔 상당히 오랜 시간이 걸려서 스크립트를 실행한다. oracle은 기본적(? - 기본옵션, 뺏다면 어쩔 수 없지만...)으로 sqlplus 를 이용하여 CUI 로 빠르게 넣을 수 있다. SQL 문으로 작성된 파일 실행하기 SQL> @c:\my_scripts\my_sql_script.sql 참고 : https://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_sqlplus.htm 2016. 7. 26.
[ORACLE] 컬럼 코멘트 조회, 테이블 생성 시 편리한 쿼리, 코멘트 쿼리 알고 있으면 편리한 쿼리 SELECT ( CASE WHEN COLUMN_ID=1 THEN ' ' ELSE ', ' END ) || ATC.COLUMN_NAME AS COLUMN_NAME /* 컬럼명 */, '/* ' || ACC.COMMENTS || ' */' AS COLUMN_NAME_COMMENT, DATA_TYPE/* 데이터타입 */, CASE --WHEN DATA_TYPE='VARCHAR2' THEN '(' || DATA_LENGTH || ')'--WHEN DATA_TYPE='CHAR' THEN '(' || DATA_LENGTH || ')'WHEN DATA_TYPE='NUMBER' THEN '(' || DATA_PRECISION || ')'ELSE '(' || DATA_LENGTH || ')' E.. 2016. 7. 26.
[CUBRID] 함수 사용하기 들어가기 전.... 큐브리드 홈페이지에 다 나와있는 내용이다. 하지만 살짝 이해를 돕기 위해, 처음 사용해보는 사람들을 위해, 사용해 봤는데 까먹은 사람을 위해(나처럼....) 큐브리드에서는 함수를 사용할 때 불편하게????? 자바로 만들어서 사용해야 한다. 에이 설마???? 정말 그렇다. 하지만, 누군가에겐 편리하게 느껴질 수도 있다. 큐브리드 도큐먼트 참조 : http://www.cubrid.org/manual/91/ko/sql/jsp.html 근래 개발환경에서는 시스템 환경변수를 사용하지 않아서 충분히 개발을 원활하게 할 수 있었는데, 큐브리드 함수 때문에 시스템 환경변수를 다시 설정하게 됐다. 큐브리드에서 컴파일된 자바를 로드하기 위해서.... 1. 시스템 환경변수 설정 1) 자바 홈 설정 2) .. 2016. 6. 3.
[ORACLE] 컬럼 추가, 수정, 변경, 삭제 컬럼 추가 ALTER TABLE 테이블명 ADD (컬럼명 데이터타입(숫자)); ex) ALTER TABLE T_TEST ADD ( SESSION_ID VARCHAR2(8) ) ; 컬럼 수정 ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입(숫자)); ex) ALTER TABLE T_TEST MODIFY ( SESSION_ID VARCHAR2(32) ) ; 컬럼명 변경 ALTER TABLE 테이블명 RENAME COLUMN (구)컬럼명 TO (신)컬럼명 ; ex) ALTER TABLE T_TEST RENAME C_PRV_COL TO NEW_COL ; 컬럼 삭제 ALTER TABLE 테이블명 DROP (컬럼명); ex) ALTER TABLE T_TEST DROP ( COL1 ) ; 2016. 4. 6.
[SQL] create table 로 테이블 단위 간단 백업하기 CREATE TABLE [TABLE명] AS SELECT * FROM [TABLE명] [WHERE 절] 필자의 경우, 기존 테이블의 데이터를 수정할 때,잘못 수정할 경우를 대비해서 기존 데이터를 살리기 위한 하나의 방법으로 사용하고 있다. CREATE TABLE = 백업된 데이터AS 뒤에 SELECT 로 조회해오는 테이블은 기존 데이터 데이터를 백업하는 방법은 여러가지 방법이 있겠지만, 필자는 이 방법을 사용하고 있다. 서버의 저장공간이 부족한 환경이라면 이 방법은 추천하지 않는다. 2016. 3. 15.
[Tool Tip] Oracle Orange 로 Export & Import 하기 오라클 디비 툴로 토드를 많이 사용했었는데, 오렌지가 토드 보다 가볍고, UX가 좀 더 편한 부분이 있어서 오렌지를 쓰게 되었는데, 이번에 데이터 백업을 하게 되어 찾아본 결과 좋은 동영상이 있어서 링크를 걸어본다. https://youtu.be/UGsedNDBW0Y 테이블 전체를 export 할 것이 아니라면where 버튼을 클릭해보자. 아래와 같이 나오는데, 안에 해당 조건문만 잘 넣어주면 된다. 2016. 2. 23.
반응형