본문 바로가기
반응형

Oracle48

[Query] SELECT시 자주 쓰는 컬럼 정보 변환 --시스템 날짜(DATETIME)를 년월일로 변환 TO_CHAR(SYSDATE,'YYYYMMDD') --시스템 날짜(DATETIME)를 시간을 24시간제로 변환 , TO_CHAR(SYSDATE,'HH24MI') --시스템 날짜 시간까지 변환 , TO_CHAR(SYSDATE,'yyyymmddhh24miss') --주민번호에서 성별가져오기(여러 조건별 값 case when) , DECODE(SUBSTR(A.JUMIN_NO,7,1),'1','M','2','F','3','M','4','F','M') --201405 같은 날짜에서 한달 더하기 , TO_CHAR(ADD_MONTHS(TO_DATE(CLS_MTH || '01', 'yyyy-MM-dd'), 1), 'yyyyMM') --해당일자에서 특정일수를 더한 결과를.. 2015. 7. 29.
ODP.net에서 IIS ODP 에러 날 경우 ODP가 32비트 일 때 웹사이트 페이지(서비스)가 안 열릴 때는 IIS에서 응용프로그램 풀에서 고급설정의 32비트 응용 프로그램 사용dmf true로 변경한다. 2015. 7. 29.
제어 구조 LOOP문 EXIT 키워드의 사용 IF를 사용하여 EXIT를 써도 된다. LOOP result := 2 * test_number EXIT WHEN result > 20; dbms_output.put_line(result); test_number := test_number +1; END LOOP; IF THEN ELSE END IF;IF condition1 THEN {...statements to execute when condition1 is TRUE...} ELSIF condition2 THEN {...statements to execute when condition2 is TRUE...} END IF; 조회헤서 변수에 데이터를 넣었을 때, 에러가 발생한다. 데이터가 없다면 다음과 같이 해야된다. BE.. 2015. 7. 29.
[Query] JOIN Oracle에서 사용하는 join--inner join SELECT * FROM table1 TA , table2 TB WHERE TA.column1 = column1 --outer join SELECT * FROM table1 TA , table2 TB WHERE TA.column1 = column1(+) --두 테이블의 키 이름이 같은 경우 ON대신에 USING를 사용해도 된다. SELECT * FROM employees emp JOIN departments dep USING(department_id); 2015. 7. 29.
계정만료 http://cafe.naver.com/prodba/29533 2015. 7. 29.
11g 리스너 변경 Oracle 11g LISTENER OS: Windows Server 2008 DB: Oracle 11g Network: Private Network (Public IP 공유기 사용) ㅁ 특정포트로 리스너를 세팅 후 Database 연결 * 시나리오 환경 - 전역 데이터 베이스 명으로 'dbnet.XXX.com' - 데이터 베이스 SID : dbnet - Private IP : 10.0.0.4 - 리스너명 : LISTENR_DBNET - 리스너포트: 1550 (default 1521를 사용하지 않음) A. 리스너 생성 1. Oracle Net Manager 실행 2. 리스너를 선택 후 [+] 버튼으로 리스너생성 3. [수신위치] 에 탭에 호스트 및 포트 지정 * 서비스 이름 지정의 dbnet은 Datab.. 2015. 7. 29.
[CMD] 명령어 오라클 SQLPlUS 접속하기 $ sqlplus "/as sysdba" SQL>startup shutdown abort exit $ lsnrctl LSNRCTL>start stop exit 2015. 7. 29.
[윈도우 함수] ratio_to_report로 특정 비율 구하기 select bb.last_name , sum(aa.order_total) , round(ratio_to_report(sum(aa.order_total)) over (partition by to_char(aa.order_date, 'YYYY')),2) aa from orders aa left outer join employees bb on aa.sales_rep_id = bb.employee_id where to_char(aa.order_date, 'YYYY') = '2008' group by bb.last_name, to_char(aa.order_date, 'YYYY') order by bb.last_name; 2015. 7. 29.
[윈도우 함수] LAG 바로 이전 쿼리의 특정 열의 값을 가져옴 select to_char(hire_date, 'YYYY') , count(*) , LAG(count(*)) over (order by to_char(hire_date, 'YYYY')) from employees group by to_char(hire_date, 'YYYY') order by to_char(hire_date, 'YYYY'); 2015. 7. 29.
[윈도우 함수] 범위를 주어서 집계값을 조회 select employee_id ,salary ,sum(salary) over(partition by department_id order by employee_id rows between unbounded preceding and unbounded following) w1 ,sum(salary) over(partition by department_id order by employee_id rows between unbounded preceding and current row) w1 ,sum(salary) over(partition by department_id order by employee_id rows between current row and unbounded following) w1 from e.. 2015. 7. 29.
[ntile]레코드를 일정 비율로 분할해준다. --전체 로우를 ntile의 숫자만큼 분할하여 순위를 줌 select customer_id , ntile(5) over (order by sum(order_total) desc) rank , sum(order_total) from orders where to_char(order_date, 'YYYY') ='2007' group by customer_id; 2015. 7. 29.
컬럼당 최대값 최소값 구하기 keep(dense_rank first order by salary desc) --부서별 최소값과 최대값 구하기 select department_id , max(employee_id || ' ' || last_name) keep(dense_rank first order by salary desc) maxsalary , max(salary) maxxx , min(employee_id || ' ' || last_name) keep(dense_rank last order by salary desc) minsalary , min(salary) minxxx from employees group by department_id; 2015. 7. 29.
순위함수 --순위 함수 select employee_id , salary , rank() over(order by salary desc) salary_ranking--공동 순위 표시됨. 공동 만큼 건너 뜀. , dense_rank() over(order by salary desc) ranking2--공동 표시되나 공동만큼 건너 뛰지 않음 , row_number() over(order by salary desc) ranking3--그냥 순번 from employees; 2015. 7. 29.
분석 함수 sum() over(partition by ---) --sum()이 두번 쓰임 이유는?? select years , customer_id , sub_amt from ( select to_char(order_date, 'YYYY') years , customer_id , sum(order_total) sub_amt , sum(sum(order_total)) over (partition by to_char(order_date, 'YYYY')) total_amt from orders group by to_char(order_date, 'YYYY'), customer_id ) a where a.sub_amt > a.total_amt * 0.2; --뒤에 order by가 있을 때랑 없을 때랑 값이 다름. --partition을 한 후에 정렬을 해야 제대로 값이 .. 2015. 7. 29.
시스템 뷰 및 테이블 정보 조회 시스템 뷰 --오브젝트 정보 select * from all_objects where owner = 'HR' --데이터베이스 관리자를 위한 정보를 제공하는 테이블(DBA관리자로 로그인해야 볼 수 있음) select * from dba_objects; --소유한 테이블을 조회 select * from user_tables; --테이블의 컬럼 정보 desc departments; --테이블 컬럼 정보 조회 select * from user_tab_cols a join user_col_comments b on a.table_name = b.table_name and a.column_name = b.column_name where a.table_name = 'DEPARTMENTS' order by a.colum.. 2015. 7. 29.
Package 만들기 기본형 create or replace package employee_process as type emprecord is record(emp_id int, salary real); type deptrecord is record(dept_id int, loc_id int); cursor salaries return emprecord; invalid_salary exception; procedure hire_employee( first_name varchar2, last_name varchar2, emils varchar2, job_id varchar2, mgr_id real, salary real, commission real, dept_id real); procedure fire_employee(emp_id i.. 2015. 7. 29.
자주 사용하는 명령어 DBMS_OUTPUT 패키지의 메세지를 사용하려면 다음 명령어를 실행해야됨. SET SERVEROUTPUT ON ; 테이블의 컬럼 자료형을 조회한다. DESC EMPLOYEES 2015. 7. 29.
참고 URL http://mirwebma.tistory.com/ http://mainia.tistory.com/637 설치등의 정보(비번은 언제나 1111) http://www.allsoft.co.kr/bbs/board.php?bo_table=study4_2&wr_id=22 설치 클라이언트 http://moonslife.tistory.com/8 http://rosenbean.egloos.com/252256 강좌 http://www.oracleclub.com/lecture/1003 sql developer 사용법 http://blog.naver.com/PostView.nhn?blogId=ssky6579&logNo=30106657587&parentCategoryNo=&categoryNo=&viewDate=&isShowP.. 2015. 7. 29.
반응형