본문 바로가기

2017/0510

[Oracle] 날마다 시퀀스가 초기화되는 오라클 날짜 시퀀스(Sequence) 만들기 날짜를 포함한 시퀀스가 필요해서 만들어 봤습니다.날마다 시퀀스가 1로 초기화 돼야 해서 생각보다는 복잡합니다.1. 시퀀스 생성 2. 시퀀스를 1로 초기화하는 프로시저 생성 3. 프로시저를 오라클 job에 등록 4. 날짜를 포함한 시퀀스 값을 가져오는 함수를 생성 1. 시퀀스 생성 - 저는 3자리 시퀀스가 필요해서 MAX 999까지만 설정했습니다.123456789/* 배치키 시퀀스 */CREATE SEQUENCE SEQ_BATCHKEYSTART WITH 1MAXVALUE 999MINVALUE 1CYCLECACHE 10NOORDER;cs 2. 시퀀스를 1로 초기화하는 프로시저 생성한다.123456789101112131415/* 시퀀스 초기화 Procedure */CREATE OR REPLACE PROCEDU.. 2017. 5. 30.
[Oracle] 오라클 함수(Function)에서 DML(Insert/update/delete)문 사용하기 오라클 함수(Function)에서는 기본적으로 DML(Insert/update/delete)문을 사용할 수 없습니다.하지만, 기본적으로 그렇다는 것이지 사용할 방법이 없다는 건 아니랍니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253CREATE OR REPLACE FUNCTION ZBF_GET_BARNUM ( p_bartyp in NUMBER, p_bardat in varchar2, p_gubun in varchar2 -- CUR/NEW) RETURN VARCHAR IS v_returnValue VARCHAR2(60); v_curnum NUMBER(10); v_cnt NUMB.. 2017. 5. 26.
[Oracle] 오라클 export 배치 스크립트 만들어 윈도우 스케쥴러에 등록하여 자동 백업하고 삭제하는 방법 개발서버 오라클 DB를 주기적으로 백업해야 해서 윈도우 배치 스크립트를 만들어 봤습니다.그리고, 백업 배치파일을 새벽에 동작하도록 윈도우 스케줄러에 등록했습니다. 1. 오라클 DB 백업 : 매일 새벽 1시에 실행2. 오라클 백업된 DB 삭제 : 매주 수요일 자정(밤 12시)에 실행 * oracle_export.bat (오라클 백업 스크립트):: ---------------------------------- :: 형식 : 윈도우 BAT 파일 :: 스케줄러에 등록하여 매일매일 오라클 DB를 백업한다. :: ---------------------------------- @echo off:: SET R_PATH=E:\BACKUP SET BACKUP_PATH=D:\백업\oracle_backup\daily\1 SE.. 2017. 5. 25.
[Tomcat] 톰캣 서버 재시작 배치파일(restart.bat) 만들기 톰캣을 설치하거나 다운로드 받으면...기본적으로 bin 폴더에 톰캣서버 시작(startup.bat)/중지(shutdown.bat)하는 배치 파일이 들어 있습니다.그런데, 재시작하는 배치 파일은 없죠. 가끔인 restart.bat 파일이 필요합니다.이걸 어렵게 짤 필요는 없구요.단지, 기존에 있는 shutdown.bat, startup.bat 파일을 실행해주는 스크립트만 넣어주면 됩니다. restart.bat@echo offset "CATALINA_HOME=C:\Dev\server\apache-tomcat-6.0.33-80" set "STOP=%CATALINA_HOME%\bin\shutdown.bat" set "START=%CATALINA_HOME%\bin\startup.bat"@echo on call %.. 2017. 5. 24.
[ErWin] Subject Area(주제영역) 만들기 ERD를 그렸는데 관계가 너무 복잡하여 한꺼번에 다 볼 수 없다면Subject Area를 만들어서 필요한 업무나 주제로 나누어 볼 필요가 있습니다. 제가 지금 투입되어 작업하고 있는 프로젝트에는 200개가 넘는 테이블이 있기 때문에업무별로 구분해서 볼 수 있는 Subject Area가 반드시 필요하답니다. 메뉴에서 [Model > Subject Areas...]를 클릭해서 만들 수 있습니다. [New...] 버튼을 클릭해서 이름을 입력하면 됩니다. '마스터'라는 Subject Area가 만들어졌습니다.는 기본적으로 모든 오브젝트를 담고 있는 영역이며 자동으로 생성됩니다. ErWin의 좌측 트리에서 Subject Areas를 찾아서 마우스 오른쪽 클릭해서 새로운 Subject Area를 만들수도 있습니다... 2017. 5. 22.
[ERWin] Reverse Engineer 기능으로 오라클(Oracle)에 연결해서 자동으로 ERD 생성하기 현재 진행중인 프로젝트의 솔루션이 ERD를 제공하고는 있지만 파워포인트로 워낙 간략하게 돼 있어서 제대로 된 ERD를 만들어 달라는 요구를 받았습니다.솔루션을 설치하면 기본적으로 만들어지는 테이블이 200개가 넘는데 이걸 언제 그리나요? 그래서, 찾아보니 ERWin의 Reverse Engineer를 사용하면 오라클에 연결해서 자동으로 ERD를 그려주더라구요.이걸 다 그렸으면 적어도 2~3일은 걸렸을 것 같은데,,, 10분도 안되는 시간에 뚝딱 ERD를 만들어 버렸네요^^ 이렇게 테이블의 컬럼과 comment를 가지고 자동으로 ERD를 만들어 준답니다.그럼, 시작해 볼까요? [Tools > Reverse Engineer...]를 클릭합니다. [Logical/Physical]을 클릭하시고, 오라클 버전을 선.. 2017. 5. 22.
[오라클] Oracle에서 모든 테이블 목록 가져오는 쿼리 현재 진행하는 프로젝트는 솔루션을 가지고 작업을 하는데요.테이블이 엄청나게 많더라구요. 테이블 수를 보고 깜짝 놀랐는데...도대체 테이블 수가 몇 개나 되는지 궁금한데 어떻게 알 수 있을까요? select object_name from user_objects where object_type = 'TABLE'; -- 테이블 목록 select object_name from user_objects where object_type = ‘SEQUENCE’; -- 시퀀스 목록 이 쿼리를 사용하면 테이블 목록을 가져올 수 있답니다. 테이블 개수가 224개나 된다니... 정말 엄청나네요~ ㄷㄷㄷ 2017. 5. 22.
[오라클] PK(Primary Key)만 가져오는 Oracle 쿼리 1234567SELECT C.POSITION ,C.COLUMN_NAMEFROM USER_CONS_COLUMNS C INNER JOIN USER_CONSTRAINTS S ON C.CONSTRAINT_NAME = S.CONSTRAINT_NAME AND S.CONSTRAINT_TYPE = 'P'WHERE C.TABLE_NAME = 'SKUWC'ORDER BY 1Colored by Color Scriptercs 해당 테이블의 primary key(프라이머리 키)만 가져오는 쿼리랍니다.이 쿼리를 응용해서 DB 상의 모든 테이블의 Primary Key만 뽑을수도 있겠죠. 1234567891011121314151617181920212223242526272829303132333435363738394041WITH LIS.. 2017. 5. 12.
[이클립스] eclipse 콘솔(console)의 버퍼 제한 풀기 이클립스를 사용할 때 console은 중요한 역할을 합니다.실행 및 오류 현황을 볼 뿐 아니라 실행된 쿼리까지도 보여주기 때문에 프로그래밍에 없어서는 안 될 중요한 부분이죠.하지만, console에서 보여주는 버퍼가 기본적으로 80,000자로 제한이 돼 있더군요. 그래서, 실행된 쿼리를 보고 싶은데 앞부분의 쿼리는 잘려서 볼 수가 없더라구요.콘솔의 버퍼 크기를 늘리거나 제한하지 않으려면 어떻게 해야 할까요? 이클립스 메뉴의 [Window > Preferences] 창을 열어서....[Run/Debug > Console > Limit console output]의 체크를 해제하시면 됩니다. Limit console output의 제한을 풀지 않고버퍼 크기를 늘리면 더 많은 양의 콘솔을 확인할 수 있겠죠. .. 2017. 5. 11.
[오라클] 테이블정의서 자동으로 만들어주는 Oracle 쿼리 테이블정의서 자동으로 만들어주는 오라클 쿼리입니다. 12345678910111213SELECT A.TABLE_NAME AS "테이블명", A.COLUMN_NAME AS "컬럼명", A.DATA_TYPE AS "데이터타입", A.DATA_LENGTH AS "길이", A.NULLABLE AS "Null 여부", B.COMMENTS AS "Comments"FROM dba_tab_columns A, all_col_comments BWHERE A.OWNER = B.OWNERAND A.TABLE_NAME = B.TABLE_NAMEAND A.COLUMN_NAME = B.COLUMN_NAMEAND A.OWNER = 'LOTOSDEV' -- DB명ORDER BY A.TABLE_NAMEcs 이거 실행하고 엑셀로 저장하면 .. 2017. 5. 11.