목록Programming/Oracle (41)
C#,Delphi,Oracle,MSSQL 개발자블로그
-- Lock 풀기 (유저가 system 일 경우) ALTER USER SYSTEM account unlock; -- 패스워드 변경 ALTER USER SYSTEM IDENTIFIED BY manager; [출처] http://develop.sunshiny.co.kr/278
[시퀀스 강제로 증가 시키시] 1. INCREMENT BY 값을 2,000 만큼 증가시켜서 설정합니다. ALTER SEQUENCE [SEQUENCE_NAME] INCREMENT BY 2000; 2. NEXTVAL 을 사용하여 시퀀스의 값을 증가 시킵니다. SELECT [SEQUENCE_NAME].NEXTVAL FROM DUAL; 3. 다시 INCREMENT BY 값을 1로 설정합니다. ALTER SEQUENCE [SEQUENCE_NAME] INCREMENT BY 1; 출처: http://enjoydev.tistory.com/3 [행복한 개발자]
PL/SQL문 SHOW ERRORS PL/SQL 문 작성 후 마지막에 SHOW ERRORS 구문을 추가해주면, 어느 곳에 어떤 에러가 있는지 출력해 준다.
자신이 사용하고 있는 오라클 DB의 데이터를 다른 곳으로 옮기고 싶을 때 어떻게 데이터베이스를 덤프(익스포트)/임포트 하는지 알아보겠습니다. DB를 덤프하고 임포트하는 수준에는 크게 3가지 수준이 있습니다. 첫째가 전체 단위, 둘째가 사용자 단위, 셋째가 테이블 단위입니다. 1. 전체 단위(오라클 DB 전체) 덤프(익스포트) | C:\) exp userid=system/비밀번호@SID file='C:\파일명.dmp' full=y 임포트 | C:\) imp userid=system/비밀번호@SID file='C:\파일명.dmp' full=y 2. 사용자 단위(특정 계정/사용자의 DB ) 덤프(익스포트) | C:\) exp userid=계정명/비밀번호@SID file='C:\파일명.dmp' 임포트 | C:\..
1. 현재 주간current week의 첫번째 날TRUNC(sysdate,'IW') 2. 이전 주간prior week의 첫번째 날TRUNC(sysdate-7,'IW') 3. 다음 주간next week의 첫번째 날NEXT_DAY(sysdate,'MONDAY') 4. 현재 달current month의 첫번째 날TRUNC(sysdate,'MM') 5. 이전 달prior month의 첫번째 날ADD_MONTHS( TRUNC(sysdate,'MM'), -1 ) 6. 다음 달next month의 첫번째 날ADD_MONTHS( TRUNC(sysdate,'MM'), 1 ) 7. 현재 달current month의 마지막 날LAST_DAY(sysdate) 출처 : http://jdm.kr/blog/71
DBMS_OUTPUT 패키지는 SQL*Plus 또는 SQL*DBA 에서 디버깅 또는 출력 메시지 그리고 report를 출력하기 위한 패키지이다. PL/SQL은 화면에 별도로 출력하는 기능이 없으며, 오라클에서 화면에 출력하기 위해 DBMS_OUTPUT 패키지를 제공한다. 사용법. 1. DBMS_OUTPUT 패키지의 출력 프로시저를 사용하기 위해 먼저 SERVEROUTPUT 의 값을 설정해야 한다. (DEFAULT로 OFF로 지정 되어 있다.) - SERVEROUTPUT 상태 보는 법. SHOW SERVEROUTPUT; - SERVEROUTPUT 상태를 ON으로 설정한다 SET SERVEROUTPUT ON; 2. 라인 출력 예제 Ex. BEGIN DBMS_OUTPUT.PUT_LINE ('안녕'); END;..
http://wiki.gurubee.net/pages/viewpage.action?pageId=26744652
http://egloos.zum.com/messfilm/v/2166470 오라클에서 Bind 변수를 사용해야 되는 이유 가. 바인드 변수를 사용 시 하드 파싱은 최초 1회 일어나며, 이후 생성된 실행계획(Library Cache)을 재사용한다. 나. 바인드 변수 미사용 시 각 sql문장 수 만큼 하드파싱이 일어난다. 다. 실행속도 및 메모리 공간활용면에서 바인드 변수 사용을 권장한다. 출처 : http://www.jigi.net/entry/%EC%98%A4%EB%9D%BC%ED%81%B4%EC%97%90%EC%84%9C-Bind-%EB%B3%80%EC%88%98%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C..
오라클 SQL은 실행전에 반드시 파싱을 하도록 되어있다. Hard Parsing(이하 하드 파싱)은 기본적으로 다음의 스텝을 가진다. 1. SQL문을 shared pool에 로딩한다. 2. Syntax parsing. 3. Semantic parsing 4. Query Transformation 5. Optimization 6. Create executable 여기서 중요한 것은 soft parsing(소프트 파싱)은 위의 1번 SQL문을 shared pool에 로딩하지 않는 다는 점이다. 정확히 말하면, SQL 문에 대해서 오라클에서는 해싱값을 가지게 되고 그 값을 share pool에서 찾아오게 된다. 그래서 쿼리에 space나 개행문자등이 오면 SQL문의 해싱값이 달라지니 hard parsing이 ..
먼저 오라클에서 쿼리를 날리게 되면, 오라클은 옵티마이저라는 놈을 이용해서 실행계획 즉 plan이라는걸 짜게(?) 됩니다. 이 때 실행계획이 완성되기 전까지는 꽤 많은 리소스들이 사용된다고 합니다. 실행계획이란건 이런거죠. 예를 들어 select empno from student where empno = 100 이렇다면, 오라클은 empno컬럼에 걸린 인덱스를 가지고 empno가 100인것을 찾겠다.. 뭐 이정도 되겠죠. 물론 이건 너무 간단한 예이니깐..머.. 그런데 조금 있다가 누군가가 select empno from student where empno = 100이라고 똑같은 쿼리를 날리게 되면, 오라클은 흠..새로운 쿼리가 들어왔으니 또 계획을 세워야 겠구만..헉헉헉.. 이렇게 한다면 곤란하겠죠? ..