전체 글
-
ROWNUM을 이용한 페이지네이션Database 2008. 9. 3. 15:16
ROWNUM을 이용한 페이지네이션 - 결과 셋의 로우 N 에서 로우 M까지를 가져오기 위해 ROWNUM을 사용 - 일반적인 형식 SELECT * FROM ( SELECT a.*, ROWNUM rnum FROM ( your_query_goes_here, with order by ) a WHERE ROWNUM = :MIN_ROW_TO_FETCH; → :MAX_ROW_TO_FETCH는 결과 셋에서 가져올 마지막 로우로 설정, 결과 셋에서 50 번째 ~ 60 번째 로우만을 가져오려 한다면 이 값은 60이 된다. → :MIN_ROW_TO_FETCH는 결과 셋에서 가져올 첫 번째 로우로 설정, 결과 셋에서 50 번째 ~ 60 번째 로우만을 가져오려 한다면 이 값은 50이 된다. - 사용 예 SELECT num, n..
-
ROWNUM의 동작 원리와 활용 방법Database 2008. 9. 3. 15:01
ROWNUM의 동작 원리 - ROWNUM은 쿼리 내에서 사용 가능한 (실제 컬럼이 아닌) 가상 컬럼(pseudo column) - ROWNUM에는 숫자 1, 2, 3, 4, ... N의 값이 할당, 여기서 N 은 ROWNUM과 함께 사용하는 로우의 수를 의미 - ROWNUM 값은 쿼리의 조건절이 처리되고 난 이후, sort, aggregation(GROUP BY)이 수행되기 이전에 할당 - ROWNUM 값은 할당된 이후에만 증가(increment)될수 있다. - 처리 순서 1. FROM/WHERE 절이 먼저 처리 2. ROWNUM이 할당되고 FROM/WHERE 절에서 전달되는 각각의 출력 로우에 대해 증가(increment) 3. SELECT가 적용 4. GROUP BY 조건이 적용 5. HAVING이 ..
-
쿼리를 자바코드로 변환[Toad-Make Code Statement]Database 2008. 9. 3. 14:48
기준 버전 - Toad for Oracle 9.0 View > Toad Options > Editor > Code Assist 의 MakeCode 탭에서 Java 선택 쿼리를 입력하고 Editor > Make Code Statement (단축키 Ctrl + m) 를 실행, 다른 에디터에서 붙여넣기 "SELECT a.empno, a.ename, a.job, b.deptno, b.dname " + "FROM emp a, dept b " + "WHERE a.deptno = b.deptno AND a.sal >= 2000 " 위와 같은 자바코드가 생성된다.
-
오라클 - 시퀀스(SEQUENCE)Database 2008. 9. 3. 14:19
ORACLE SEQUENCE - 유일(UNIQUE)한 값을 생성해주는 오라클 객체 - 시퀀스를 생성하면 기본키와 같이 순차적으로 증가하는 컬럼을 자동적으로 생성할 수 있다. - 시퀀스는 테이블과 독립적으로 저장되고 생성된다. 따라서 하나의 시퀀스를 여러 테이블에서 사용할 수 있다. 시퀀스 생성 문법[Syntax] CREATE SEQUENCE sequence_name [START WITH n] -- n은 시퀀스 시작 값 지정 [INCREMENT BY n] -- n은 시퀀스 증가 값 지정 [MAXVALUE n | NOMAXVALUE] -- 시퀀스 최대값, NOMAXVALUE는 무한대 [MINVALUE n | NOMINVALUE] -- 시퀀스 최소값, NOMINVALUE는 무한대 [CYCLE | NOCYCLE..
-
PL/SQL SQLCODE, SQLERRMDatabase 2008. 9. 3. 13:47
WHEN OTHERS문으로 트랩(Trap)되는 오류들의 실제 오류 코드와 설명을 볼때 사용한다. - SQLCODE : 실행된 프로그램이 성공적으로 종료하였을때는 오류번호 0을 포함하며, 그렇지 못 할 경우에는 해당 오류코드 번호를 포함한다. - SQLERRM : SQLCODE에 포함된 오라클 오류 번호에 해당하는 메세지를 가진다. SQLCODE Value Description 0 오류 없이 성공적으로 종료 1 사용자 정의 예외 번호 +100 NO_DATA_FOUND 예외 번호 음수 위에 것을 제외한 오라클 서버 에러 번호 SQLCODE, SQLERRM 예제 프로시저 SQL> CREATE OR REPLACE PROCEDURE Errcode_Exception (v_deptno IN emp.deptno%typ..
-
Oracle CursorDatabase 2008. 9. 3. 11:25
Oracle Cursor 오라클 서버에 의해 실행되는 모든 SQL문은 연관된 각각의 커서를 소유하고 있다. 오라클 서버는 명령문의 구문을 분석한 뒤 메모리에 가져오는 행을 임시 저장하는데, 이 메모리 영역을 커서(Cursor)라고 한다. 즉, 커서는 Private SQL의 작업영역이다. 커서에는 암시적 커서(Implicit Cursor)와 명시적 커서(Explicit Cursor)가 있다. 우리가 사용하는 모든 SQL은 자동으로 커서를 사용하고 있으며, 이것을 암시적 커서라고 한다. 암시적 커서를 명명된 이름을 붙여 여러 용도로 사용할 수 있으며, 이것을 명시적 커서라고 한다. - 암시적 커서 : 모든 DML과 PL/SQL SELECT문에 대해 선언 - 명시적 커서 : 프로그래머에 의해 선언되며 이름이 ..
-
구글 vs MS 인터넷전쟁 `2라운드` …3일 웹브라우저 `크롬` 출시IT 일반 2008. 9. 3. 08:53
세계 최대 인터넷 검색 업체인 구글이 약 2년간 개발해 온 새 웹브라우저 '구글 크롬(Google Chrome)'을 3일 내놓는다. 글로벌 1위 소프트웨어 기업이자 인터넷 익스플로러(IE)로 세계 웹 브라우저 시장의 70%가량을 점유하고 있는 마이크로소프트(MS)의 텃밭을 빼앗겠다며 선전포고를 한 것이다. 구글이 워드,엑셀 등 MS산(産) 소프트웨어를 구매하지 않고도 웹을 통해 문서 작업을 할 수 있는 '구글 웹오피스'를 선보인 이래 두 번째 격돌이다. ◆구글의 선전포고 구글은 '크롬'의 베타 버전(정식 버전 이전에 테스트용으로 출시되는 것)을 한국을 포함한 세계 100여개국에서 공개할 예정이라고 2일 밝혔다. '크롬'은 소프트웨어 개발의 핵심인 소스 코드를 공개해 누구나 개발 과정에 참여할 수 있는 오..
-
구글, 드디어 웹브라우저 시장 진출IT 일반 2008. 9. 3. 08:39
[지디넷코리아]소문으로만 무성하던 '검색황제' 구글의 웹브라우저 시장 진출이 마침내 현실화됐다. 이에 따라 마이크로소프트(MS) 익스플로러와 오픈소스 기반 파이어폭스가 이끄는 웹브라우저 시장 판세가 어떻게 변화할지 비상한 관심이 쏠리고 있다. 구글은 회사 블로그를 통해 화요일(현지시간) 세계 100여개 여개국에서 오픈소스에 기반한 웹브라우저 '구글 크롬' 베타 버전을 선보일 것이라고 밝혔다. 구글은 웹브라우저를 선보이는 것에 대해 사용자들에게 가치를 제공하는 동시에 웹에서의 혁신을 도울 수 있기 때문이라고 설명했다. 구글은 지난 2년간 구글 크롬 프로젝트를 진행해온 것으로 알려졌다. 2006년 10월 있었던 MS의 익스플로러7 출시가 웹브라우저 개발에 큰 영향을 미쳤다고 한다. 구글에 따르면 '구글 크롬..