[ 커서(Cursor) ]
- 실행한 SQL문의 단위
1) 커서의 단계
- 커서선언하기
- 커서오픈하기
- 커서에서 추출한 결과 저장하기
- 커서닫기
- 커서오픈하기
- 커서에서 추출한 결과 저장하기
- 커서닫기
예)
DECLARE VEMPNO NUMBER(4); VENAME VARCHAR2(20); VSAL NUMBER(7,2); CURSOR C1 IS SELECT EMPNO,ENAME,SAL FROM EMP WHERE DEPTNO=30; BEGIN OPEN C1; --커서오픈하기 LOOP FETCH C1 INTO VEMPNO,VENAME,VSAL; EXIT WHEN C1%NOTFOUND; DBMS_OUTPUT.PUT_LINE(VEMPNO||' '||VENAME||' '||VSAL); END LOOP; CLOSE C1; --커서닫기 END; /
DECLARE CURSOR EMP_CURSOR IS SELECT ENAME,SAL FROM EMP ORDER BY SAL DESC; STAR VARCHAR2(100); CNT NUMBER:=0; BEGIN DBMS_OUTPUT.PUT_LINE(' ======= 사원별 급여 현황 ======='); FOR CURVAL IN EMP_CURSOR LOOP STAR:=NULL; CNT:=TRUNC(CURVAL.SAL/100); FOR I IN 1..CNT LOOP STAR:=STAR||'*'; END LOOP; DBMS_OUTPUT.PUT_LINE(CURVAL.ENAME); DBMS_OUTPUT.PUT_LINE(STAR||' '||CURVAL.SAL); END LOOP; END; /
[ 사용자 계정관리 ]
1) 계정생성
CREATE USER 아이디 IDENTIFIED BY 비밀번호;
예)
CREATE USER TEST IDENTIFIED BY TEST1234;
-- 사용자 생성권한이 있는 시스템계정으로 로그인
SQL> conn / as sysdba Connected. SQL> create user test identified by test1234; User created.
-- test계정에 접속과 리소스사용권한부여하기
SQL> grant connect,resource to test; Grant succeeded. SQL> conn test/test1234
2) 비밀번호 변경하기
ALTER USER 아이디 IDENTIFIED BY 수정할 비밀번호;
SQL> conn / as sysdba Connected. SQL> alter user test identified by test0000; User altered
3) 계정삭제하기
DROP USER 아이디;
예)
drop user test; -- 데이터가 하나라도 존재하면 계정삭제가 안됨.이때 CASCADE옵션 사용 SQL> drop user test CASCADE;
[ 계층형 쿼리 ]
- 계층적구조로 값을 출력
형식)
SELECT 컬럼명,..
FROM 테이블명
START WITH 시작조건 -- 루트설정
CONNECT BY PRIOR 참조조건; -- 참조관계설정
FROM 테이블명
START WITH 시작조건 -- 루트설정
CONNECT BY PRIOR 참조조건; -- 참조관계설정
( 자식쪽에 prior )
예1)
SELECT * FROM EMP START WITH ENAME='KING' -- 시작조건(루트설정) CONNECT BY PRIOR EMPNO=MGR; -- 참조관계설정 조건예2)
SELECT LPAD(' ',(LEVEL-1)*2)||EMPNO,ENAME,MGR FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR;
'DBMS > 오라클기초' 카테고리의 다른 글
오라클 기초#11(Trigger) (0) | 2013.01.27 |
---|---|
오라클 기초 #9(sequence,view) (0) | 2013.01.27 |
오라클 기초#8(제약조건:constraint) (0) | 2013.01.27 |
오라클 기초 #7(table) (0) | 2013.01.27 |
오라클 기초#6(Transaction Control Language) (0) | 2013.01.27 |