본문 바로가기
반응형

4. Database40

[Oracle] sysdate와 systimestamp 정리 및 예제 [Oracle] sysdate와 systimestamp 정리 및 예제 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [오라클] sysdate, systimestamp 정리 ] 입니다. : ) 자바 웹 개발을 하다보면 밀리세컨즈 까지 시간단위를 가져와 활용할 때가 있다. 그럼 오라클에서 밀리세컨드까지 시간단위를 가져올 수 있는 방법도 정리 해보려 한다. sysdate1. sysdate의 경우 년월일시분초 까지 표현 가능 ex) select sysdate from dual; 2. SYSDATE 활용 - 날짜를 포맷 적용하여 문자열로 변환 1번 2번 같은 결과 /* 1. 결과 2018-10-04 10:49:52 */ select to_char(sysdate, 'YYYY-MM-DD HH:MI:SS') from .. 2018. 10. 4.
[Oracle] 시스템 테이블 정리 [Oracle] 시스템 테이블 정리 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 시스템 테이블 ] 입니다. : ) 오라클 System 테이블 USER_TAB_COLUMNS컬럼 정보테이블의 열(COLUMN) 정보를 알 수 있다.(COLUMN_NAME / DATA_TYPE / NULLABLE 등) USER_TAB_COMMENTS테이블/뷰에 대한 주석 정보 USER_COL_COMMENTS열에 대한 주석정보 다음 System테이블중 3가지 테이블을 활용하여 테이블 정보를 한눈에 볼 수 있는 테이블을 만들 수 있다. /******************************************** 1. 테이블정보 넣을 테이블 생성 *****************************************.. 2018. 6. 14.
[Oracle] PL/SQL 기초3 - 커서 [Oracle] PL/SQL 기초3 - 커서 (CURSOR) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 커서 ] 입니다. : ) 개인적으론 PL / SQL 의 꽃은 "커서"가 아닐까 생각합니다. 커서 (CURSOR) [정의] - SQL 커서는 Oracle 서버에서 할당한 전용 메모리 영역에 대한 포인터이다. - 질의의 결과로 얻어진 여러 행이 저장된 메모리상의 위치. - 커서는 SELECT 문의 결과 집합을 처리하는데 사용된다. ※ 사전적 정의만 보자면 전혀 이해가 안가는 부분이 많다. 그래도 일단 한번 보고 넘어가자. 사전적 정의 필요없이 맨밑의 예제부터 확인 해보아도 무방할 듯 하다. [종류] 1) 암시적 커서 (Implicit Cursor) 1.1) 정의 - 오라클 DB에서 실행.. 2018. 6. 14.
[Oracle] PL/SQL 기초2 - 반복문, 제어문 [Oracle] PL/SQL 기초2 - 반복문 (FOR LOOP, LOOP, WHILE LOOP) 및 제어문 (IF, CASE) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 반복문, 제어문 ] 입니다. : ) 1. 반복문 PL / SQL 에서도 반복문을 사용할 수 있는데, 크게는 2가지로 볼 수 있다. (LOOP, FOR) ▶ 1.1 FOR LOOP [문법] FOR index in [REVERSE] 시작값 .. END값 LOOP STATEMENT 1 STATEMENT 2 ...END LOOP; - index는 자동 선언되는 binary_integer형 변수이고, 1씩 증가 한다.- REVERSE 옵션이 사용 될 경우 index 는 upper_bound에서 lower_bound로 1씩 감.. 2018. 6. 3.
[Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법) [Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [PL/SQL 기초] 입니다. :) ▶ PL/SQL (Procedural Language extension to SQL) - SQL을 확장한 절차적 언어(Procedural Language)이다. - 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어로, 프로시저 생성자를 SQL과 완벽하게 통합한다. - 유저 프로세스가 PL/SQL 블록을 보내면, 서버 프로세서는 PL/SQL Engine에서 해당 블록을 받고 SQL과 Procedural를 나눠서 SQL은 SQL Statement Executer로 보낸다. - PL/SQL 프로그램의 종류는 크게 Procedure, F.. 2018. 5. 24.
[Oracle] Dual 테이블이란? [Oracle] Dual 테이블이란? 안녕하세요. 갓대희 입니다. 이번 포스팅은 [Oracle Dual] 입니다. :) ▶ Dual 테이블의 정의 1. 오라클 자체에서 제공되는 테이블 2. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블 3. SYS사용자가 소유하는 오라클의 표준 테이블 (그림 참조) 4. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함 (그림 참조) 5. 오직 한행, 한컬럼을 담고 있는 dummy 테이블 ▶ Dual 테이블의 사용용도 - dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다. - 함수에 대한 쓰임을 알고 싶을때 특정 테이블을 생성할 필요없이 dual 테이블을 이용하여 함수의 값을 리턴(return)받을 수 있다. ex) .. 2018. 5. 10.
[Oracle] ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다. [Oracle] ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다. MERGE INTO를 하는 중 다음과 같은 오류 메세지가 발생하였다. ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다. ORA-30926 : unable to get a stable set of rows in the source tables MERGE INTO 구문 ====================================================================MERGE INTO table_name alias -- (실제 데이터를 INSERT 또는 UPDATE할 테이블)USING (table | view | subquery) alias -- 실제 데이터를 조회할 대상 .. 2017. 12. 19.
오라클 비밀번호 만료기간 해제 오라클 비밀번호 만료기간 해제 한번씩 스키마 접근시 다음과 같은 메세지를 확인 할 수 있다. oracle: the password has expired.-오라클 계정의 비밀번호 만료일이 지남. 이는 다음과 같이 해결 할 수 있다. 1. 단순 비번 변경 SQL> alter user 계정명 identified by 새비밀번호;-만료된 비밀번호 다른 비밀번호로 변경. 2. 보통 비밀번호는 180일 후 자동 만료, 이를 무제한 으로 변경해준다.# sqlplus 실행 2.1 sys계정 접속SQL> connect sys as sysdba-비번 입력-dba 접속 2.2 default 비번 만료 기한 확인SQL> select * from dba_profiles where profile = 'DEFAULT';-passw.. 2017. 12. 3.
[Oracle] 오라클에서 Java를 이용하여 함수 만들기 (샘플) 자바개발자로 SQL에서 지원하지 않는 기능을 SQL로 구현해야 할 때가 있다. 이럴 땐 어떻게 해야 할까? - SQL에 없는 기능을 자바 프로그램 소스를 활용해서 만들어 본다. 1. 자바 소스를 이용하여 오라클 내장 자바 클래스 생성 Syntax) - CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "클래스이름" AS 자바문법 EX) 샘플 자바 소스- 문자열 SHA-256 암호화 CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "PasswordEncoder{" AS import java.lang.*;import java.io.*;public class PasswordEncoder{public static String encode(.. 2017. 11. 30.
[Oracle] 사업자번호 유효성 체크 Function (오라클) 사업자번호 유효성 체크Function 1. 먼저 정규식을 통해 특수문자 제거 2. 자리수 체크 하여 10자리가 아닌경우 오류 3. 유효성 체크에서 걸러져도 오류 PARAMETER : 체크할 사업자번호RETURN : 문자열 'FALSE' 또는 'TRUE' --------------------------------------------------------------------------------------------------------------------------------------- CREATE OR REPLACE FUNCTION FCHECK_BIZ_NO( p_bizno IN VARCHAR2) RETURN VARCHAR2 ISv_ret_val VARCHAR2(30);v_bizno VARCHAR2.. 2017. 11. 29.
[Oracle] PGA (Program Global Area) PGA (Program Global Area : 개별 프로세스들이 독립적으로 사용하는 비 공유 메모리) PGA SGA는 프로세스들이 공유하여 사용할 수 있는 공유 메모리 ) PGA는 서버 프로세스가 시작할 때 Oracle에 의해 생성된다. PGA의 총 크기는 Oracle Instance에 속한 각 프로세스에 의해 할당된다. PGA는 개별 세션에 대한 바인드 변수 (Bind Variable) 정보, SORT AREA, 커서(CURSOR) 처리 등의 작업을 할 때 서버 프로세스를 돕는 역할을 한다. 1. 바인드 변수(Bind Variable) 다음의 예를 보자. select emp_id from emp where department = ‘10’; select emp_id from emp where depar.. 2017. 8. 31.
[Oracle] SGA (System Global Area, 시스템 공유 영역) SGA (System Global Area : 시스템 공유 영역) SGA는 Oracle이 시스템으로부터 자원을 할당 받아 관리하는 Oracle 시스템 영역이다. 데이터 베이스의 Instance가 시작되면 시스템으로부터 자원을 할당 받고, 데이터베이스 Instance가 종료되면 할당 받은 자원을 시스템에 반환한다. 즉 Instance가 시작된다는 것은 메모리의 일부를 SGA의 영역으로 할당 받고, CPU로부터 PROCESS 자원도 할당 받았음을 의미한다. 메모리 영역 관리 Oracle데이터 베이스 서버는 자주 사용하는 데이터를 메모리에 오래 저장하여 I/O 효율을 높이고, 자주 사용하지 않는 데이터는 데이터 파일에 물리적으로 저장하여 SGA영역을 효율적으로 관리한다. 이를 LRU (Least Recentl.. 2017. 8. 31.
[Oracle] 정규 표현식(Regular Expression) 정규 표현식(Regular Expression) - Oracle 10g에서 새로 도입 1. REGEXP_LIKE 함수 - 문법 : REGEXP_LIKE (srcstr, pattern [, match_option ] ) - scrstr : 검색하고자 하는 값 - pattern : Regualr Expression Operation - match_option : 찾고자 하는 문자의 대소문자 구분이 기본으로 설정되어 있다. 대소문자를 구분할 필요가 없다면 'i' 옵션 사용을 지정한다. SELECT ADDR1 FROM 주소테이블 WHERE REGEXP_LIKE (ADDR1, '불광[^2]'); [^expression] => expression이 부정되는 경우 즉 '2'를 포함하는 주소는 제외. SELECT NA.. 2017. 8. 30.
[Oracle] 조인 (JOIN), 아우터 조인(Outer Join) 조인 (JOIN) - JOIN은 각 테이블간에 공통된 걸럼(조건)으로 데이터를 합쳐 표현하는 것이다. - JOIN에는 크게 INNER JOIN, OUTER JOIN이 있다. ▶ 예제 테이블을 통해 이해해보자. TABLE 1) MEM : 회원테이블 (회원번호, 이름, 이메일, 부서번호) TABLE 2) DEPART : 부서테이블 (부서번호, 부서명) ▶ 1. SELECT FROM을 이용한 조인 1.1) 회원 테이블과 부서 테이블의 조인 => DEPART_ID가 공통 컬럼 => MEM테이블의 DEPART_ID와 DEPART테이블의 DEPART_ID를 연결하여 준다. ex) SELECT MEM.MEM_ID, MEM.NAME, MEM.DEPART_ID, DEPART.DEPART_NAME FROM MEM , DE.. 2017. 8. 30.
[Oracle] 오라클 Index 기초 오라클 Index 기초 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Oracle Index 기본 개념, 기본 활용 방법 ] 입니다. :) INDEX 인덱스는 인덱스 칼럼에 속해 있는 레코두에 대한 디스크의 물리적인 저장 위치를 나타내는 ROWID와 해당 칼럼 값의 집합으로 이루어 져있다. 그러므로 Oracle은 인덱스의 ROWID의 주소를 가지고 원하는 테이블의 데이터를 접근할 수 있다. ( ※ROWID = ROW(행)의 ID(Identity) 즉 행과 행을 구분하는 식별자, 디스크에 저장된 행의 물리적 위치를 나타내는 정보 ) Oracle에서 지원하는 인덱스의 보편적인 형태는 B*Tree 구조에서의 데이터 접근 방법이다. 오라클에서 인덱스 생성 시 기본으로 설정되어 있다. Oracle Optimize.. 2017. 8. 30.
반응형