본문 바로가기

database

(19)
GROUPING SETS 다음과 같이 국가별 휴대폰 사용자수에 대한 데이터가 있다고 할 때 국가, OS별 사용자수 합계를 구하기 위해서는 ROLLUP을 이용해 GROUP BY를 하는게 제일 빠른방법입니다.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879WITH TEST AS (SELECT '2009' AS YEAR, 'KOR' AS country, 'IOS' AS os, 100 AS users FROM DUAL UNION ALL SELECT '2009' AS YEAR, 'JPN' AS country, 'IOS' A..
오라클 정규표현식을 이용한 전화번호 포맷팅 오라클 정규표현식중 REGEXP_REPLACE를 이용해서 다음과 같이 전화번호를 원하는 형태로 포맷팅 할 수 있습니다. 다음은 10G에서 돌아가는 쿼리입니다. SELECT tel, REGEXP_REPLACE (REGEXP_REPLACE (tel, '[^[:digit:]]'), '(^02|050[[:digit:]]{1}|[[:digit:]]{3})([[:digit:]]{3,4})([[:digit:]]{4})', '\1-\2-\3') AS format_tel FROM (SELECT '025475847' AS tel FROM DUAL UNION ALL SELECT '0254475847' FROM DUAL UNION ALL SELECT '03144745847' FROM DUAL UNION ALL SELECT '..
주민등록번호로 나이를 구하는 Query Oracle에서 주민등록번호로 나이를 구하는 방법입니다. 주민번호 뒷자리의 첫자리가 1, 2면 1900년대생, 3, 4면 2000년대생임으로, 현재날짜와 주민번호상의 날짜 사이의 MONTHS_BETWEEN()을 구한다음 1년이 12달이므로 나누기 한 다음 TRUNC()으로 소수점 이하 자리를 제거하면 나이가 나옵니다. 물른 만 나이입니다. ^^ -- 나이 구하기 WITH t AS (SELECT '530425-1000000' AS n FROM DUAL UNION ALL SELECT '740906-2000000' AS n FROM DUAL UNION ALL SELECT '060608-3000000' AS n FROM DUAL UNION ALL SELECT '020306-4000000' AS n FROM DU..
날짜 포함 비교 Query 다음과 같은 데이터가 존재하고 NAME START_DATE END_DATE 비교날자 20080701 20080730 테스트1 20080702 20080710 테스트2 20080624 20080831 테스트3 20070601 20080630 테스트4 20080801 20080831 테스트5 20080630 20080702 테스트6 20080730 20080801 두개의 날짜를 입력받아 디비에 있는 시작일과 종료일에 포함되는 데이터를 가져오고자 할 때, 즉, 위 경우에서는 비교기간과 비교대상기간이 하나라도 중복되면 데이터를 가져오면 되는것이다. 위 표에서는 1,2,5,6만을 가져오면 되는것이다. 다음과 같이 쿼리를 실행하면 원하는 값을 얻을 수 있다. 이걸 왜 할때마다 까먹을까.. 맨날 위 그림 그려놓고 고..
Database 버전 확인 Oracle SELECT * FROM v$version; SELECT * FROM product_component_version; MS-SQL SELECT @@VERSION SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition') MySql SELECT VERSION(); Altibase SELECT * FROM V$VERSION;
ORACLE에서 한글을 지원하는 캐릭터셋 KO16KSC5601 KS 표준 완성형 코드 : KSC5601-1987 이름에서 알 수 있는 바와 같이 이 캐릭터셋은 표준 한글 완성형 코드와 일치한다. 완성형은 일반적으로 많이 사용되는 2350자의 한글을 25*94 매트릭스에 배열한 문자셋이며, 4888자의 한자와 히라카나, 카타카나, 그리고 영문 및 각종 기호들을 포함하고 있다. HTML : JSP : KO16MSWIN949 MS-Windows 확장 완성형 한글 : MS949 Windows-949 캐릭터셋은 마이크로소프트사의 Windows Codepage 949번, 즉 한글 코드 페이지를 따른 코드셋이다. 이는 완성형(KO16KSC5601)을 그대로 포함하고 있으며, 추가로 현대 한글 조합으로 표현할 수 있는 모든 가짓수에 해당하는 8822자의 한글..
ORACLE dictionary (user_updatable_columns) View에 대해 select를 제외한 dml문장이 적용될수 있는지를 볼수 있는 oracle dictionary가 있습니다. PORTAL이라는 오라클 계정이 있고.. 그 계정에 다음과 같이 뷰를 생성할 수 있는 시스템 권한과, EMP, USER_INFO 테이블에 대한 오브젝트 권한을 줍니다. -- System Privileges for PORTAL GRANT CREATE VIEW TO PORTAL; -- Object Privileges for PORTAL GRANT SELECT, UPDATE ON SCOTT.EMP TO PORTAL; GRANT SELECT, UPDATE ON SCOTT.USER_INFO TO PORTAL; PORTAL계정으로 다음과 같이 view를 생성하면 CREATE OR REPLACE..
ORACLE dictionary (all_tab_cols) CREATE OR REPLACE PROCEDURE sp_search_all_column (v_owner IN VARCHAR, v_search IN VARCHAR, v_type IN VARCHAR) IS v_sql LONG; v_search_count NUMBER := 0; CURSOR v_cursor_info IS SELECT table_name, column_name, data_type FROM all_tab_cols WHERE owner = v_owner; /****************************************************************************** NAME: sp_search_all_column PURPOSE: 오라클 딕셔네리로 부터 해당되는 값이 존..