프로그래밍 썸네일형 리스트형 [oracle] %TYPE과 %ROWTYPE %TYPE 데이터형 ⊙ %TYPE 데이터형은 기술한 데이터베이스 테이블의 컬럼 데이터 타입을 모를 경우 사용할 수 있고, ⊙ 또. 코딩이후 데이터베이스 컬럼의 데이터 타입이 변경될 경우 다시 수정할 필요가 없습니다. ⊙ 이미 선언된 다른 변수나 데이터베이스 컬럼의 데이터 타입을 이용하여 선언합니다. ⊙ 데이터 베이스 테이블과 컬럼 그리고 이미 선언한 변수명이 %TYPE앞에 올수 있습니다. %TYPE 속성을 이용하여 얻을 수 있는 장점 - 기술한 DB column definition을 정확히 알지 못하는 경우에 사용할 수 있다. - 기술한 DB column definition이 변경 되어도 다시 PL/SQL을 고칠 필요가 없다. 예제 v_empno emp.empno%TYPE := 7900 ; v_ename.. 더보기 [MFC] CString에서 한글 깨짐현상, UTF-8 to ANSI 보호되어 있는 글입니다. 더보기 [Oracle] 인덱스의 구조 [출처]http://www.gurubee.net/pages/viewpage.action?pageId=688161& B*Tree 방식으로 조건을 만족하는 첫 번째 인덱스 ROW를 찾는다. 조건에 해당하는 처리가 끝날 때까지 차례대로 다음 ROW를 스캔한다. 인덱스 ROW에 있는 ROWID 정보를 이용하여 테이블에 있는 실제 ROW를 랜덤하게 액세스 한다. 결국 액세스되는 테이블 ROW의 순서는 인덱스 ROW의 순서와 일치한다. 그러므로 인덱스를 이용하여 처리함으로써 정렬작업 없이 동일한 결과를 추출할 수 있다. 더보기 [Oracle] 인덱스 란? [출처]http://www.gurubee.net/pages/viewpage.action?pageId=688159 [인덱스 란?] 인덱스는 일반 테이블이나 클러스터에서 쓰여지는 선택적인 객체로서, 오라클 데이터 베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조. 옵티마이저가 최적의 경로를 결정하기 위해 사용하는 요소(Factor) 테이블 로우(Row)에 하나씩 대응되는 별도의 객체(Object) 인덱스는 하나의 테이블에 여러개를 지정할 수 있고, 하나의 컬럼은 여러개의 인덱스에 포함 될 수도 있다. 테이블과 무관하게 생성 및 삭제를 독립적으로 할 수 있다. 자동 인덱스 : 프라이머리 키 또는 UNIQUE 제약조건에 의해 자동적으로 생성되는 인덱스 수동 인덱스 : CREATE .. 더보기 [Oracle] 명시적 커서와 암시적 커서 커서는 PL/SQL에 내장된 일종의 포인터이며, 데이터베이스 쿼리와 레코드들의 세트를 얻는 작업, 그리고 결과셋의 행들을 하나씩 얻는 작업에 이용될 수 있다. 즉, 커서는 데이터에 대한 프로그래밍적인 접근을 가능하게 해준다. [명시적 커서] 명시적 커서는 커서를 관리하는데 필요한 PL/SQL코드를 PL/SQL 프로그래머가 직접 작성하는 커서이다. declare vempno number(4); vename varchar2(20); vsal number(7, 2); cursor c1 is select empno, ename, sal from emp where deptno = 20; begin open c1; dbms_output.put_line('empno ename slal'); loop fetch c1 .. 더보기 [Oracle] OUTER JOIN OUTER JOIN은 JOIN조건을 만족하지 않는 경우에도 모든 행들을 다 보고자 할 경우에 사용하는 JOIN방법이다 EMP 테이블의 EMP_NUM 컬럼과 EMP_SKILL 테이블의 EMP_NUM 컬럼을 보자. EMP_SKILL 케이블의 EMP_NUM중에 10005. 10007이 없다. 그럼 다음과 같이 검색을 하면 어떤 결과가 나올까? SELECT A.EMP_NUM, LAST_NAME, B.SKILL_NO FROM EMP A, EMP_SKILL B WHERE A.EMP_NUM = B.EMP_NUM; 만약 위의 식을 정확하게 입력했다면 7개의 검색 결과가 나타날 것이다. 중복된 것은 한번만 나타내라는 조건이 없으니 10005,10007이 없는 값들이 출력될 것이다. 그럼, 다음과 같이 검색을 해보자. S.. 더보기 [Oracle] NON-EQUJOIN NON_EQUJOIN은 등호(=)를 이용한 조건식을 사용하지 않는 경우를 말한다. 예를 들어 다음과 같이 BETWEEN를 사용하여 특정 범위를 지정할 수도 있다. SELECT A.EMP_NUM, A.DNAME, B.AMOUNT FROM DEPT A, DEPT_SALES B WHERE A.DEPTNO BETWEEN '100' AND '300'; 더보기 [Oracle] EquJoin [출처]http://www.itmembers.net/board/view.php?id=oracle&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=subject&desc=desc&no=30&PHPSESSID=0a6380ea559aaf4e033ed638baf52b0c 두개 이상의 테이블로부터 원하는 정보를 검색하기 위해서는 JOIN문을 사용한다. 그러나 JOIN이 반드시 두 개 이상의 테이블에서만 사용되는 것은 아니다. 하나의 테이블에서도 JOIN을 사용하여 마치 두개의 테이블 인 것처럼 사용할 수 있다. (이것을 Self Join이라고 한다.) EMP_NUM, SKILL_NO, SKILL_NAME을 한번에 표시하고 싶다. 그런데 EMP_NUM 컬럼은 EM.. 더보기 [Template Method design pattern 2] [활용성] - 어떤 한 알고리즘을 이루는 부분 중 변하지 않는 부분을 한번 정의해 놓고 다양해질 수 있는 부분은 서브 클래스에서 정의할 수 있도록 남겨두고자 할때 - 서브클래스 사이의 공통적인 행동을 추출하여 하나의 공통 클래스에 몰아둠으로써 코드 중복을 피하고 싶을때 - 서브 클래스의 확장을 제어할 수 있고, 특정 시점에서만 확장되도록 할 수 있다 더보기 [Template Method design pattern 1] 의도 : 객체의 연산에는 알고리즘의 뼈대만을 정의하고 각 단계에서 수행할 구체적 처리는 서브 클래스 쪽으로 미룹니다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계 처리를 서브 클래스에서 재정의할 수 있게 합니다. [수정 전 코드] [수정 후 코드] virtual ph1과 ph2 함수를 재정의 함으로 인해서 해당하는 객체에 맞게 출력을 해 줄 수 있다. 더보기 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음