WITH T AS ( SELECT 'AA' AS "A", 'AA' AS "B", 10 AS VALUE FROM DUAL UNION ALL SELECT 'AA' AS "A", 'CC' AS "B", 20 AS VALUE FROM DUAL UNION ALL SELECT 'AA' AS "A", 'AA' AS "B", 30 AS VALUE FROM DUAL UNION ALL SELECT 'AA' AS "A", 'CC' AS "B", 30 AS VALUE FROM DUAL ) SELECT A.A ,A.B ,A.VALUE ,RATIO_TO_REPORT(A.VALUE) OVER (PARTITION BY A.A, A.B) AS RATIO FROM T A ORDER BY A.A, A.B 설명 RATIO_TO_REPORT..
전체 글
모든건 나의 마음으로부터 나오는 것임을...NTITLE() 함수를 사용시 레코드 수에 대해서 NTITLE()에 파라미터에 세팅된 값으로 나눈 비율로 순위를 구함 레코드가 100개이고 NTITLE(5)이면 100/5 = 20개씩 그룹으로 묶어 순위를 출력 이때 나머지가 없을경우와 / 있을경우가 배분 차이 있음으로 이 내용에 대해서 알아보기로 한다. 나머지가 없을경우 레코드 : 20, NTITLE(5) SELECT V, NTILE(5) OVER(ORDER BY V) X FROM (SELECT LEVEL V FROM DUAL CONNECT BY LEVEL
부분명칭설명http://scheme통신에 사용되는 방식, 프로토콜codingeverybody.comhosts자원이 위치하고 있는 웹서버의 이름, 도메인이나 IP가 사용된다./codingeverybody_html_tutorial/url_72/example2.htmlurl-path루트 디렉토리부터 자원이 위치한 장소까지의 디렉토리와 파일명?mode=viewquery웹서버에 넘기는 추가적인 질문#book markbook mark하이퍼링크를 클릭했을 때 특정 위치로 이동하기 위해서 사용 book mark 보충설명- http://codingeverybody.com/codingeverybody_html_tutorial/url_72/example2.html?mode=view#book mark 위의 url을 호출 했을..
set timing on select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 경 과: 00:00:00.01 실행시간 시작 : set timing on 실행시간 종료 : set timing off
/* PIVOT/UNPIVOT 사용 (오라클 11g부터 지원) 열을 행으로 SUM(CNT) : 집계 MM 데이터를 가지고 피벗함 '01', '02','03'으로 집계하면서 '01','02','03'이 컬럼 타이틀이 됨 컬럼명을 바꾸고 싶을때는 ALIAS를 주어 변경함 */ WITH T AS ( SELECT '2013' AS BAS_YM, '01' AS MM, 1 AS CNT FROM DUAL UNION ALL SELECT '2013' AS BAS_YM, '01' AS MM, 1 AS CNT FROM DUAL UNION ALL SELECT '2013' AS BAS_YM, '02' AS MM, 1 AS CNT FROM DUAL UNION ALL SELECT '2013' AS BAS_YM, '03' AS MM..
--ROLLUP 과 GROUPING을 이용하여 그룹지어진 소계와 합계를 출력해보자 SELECT DEPTNO ,EMPNO ,DECODE(GROUPING(DEPTNO),1,'합계',DECODE(GROUPING(EMPNO),1,'소계')) TOT ,SUM(SAL) S_SAL ,GROUPING(DEPTNO) GRP_DEPT ,GROUPING(EMPNO) GRP_EMP ,GROUPING_ID(DEPTNO, EMPNO) GID FROM EMP GROUP BY ROLLUP(DEPTNO, EMPNO); 결과 1. DECODE(GROUPING(DEPTNO),1,'합계',DECODE(GROUPING(EMPNO),1,'소계')) TOT DECODE를 이용하여 GROUPING(DEPTNO)이 1이면 '합계', DECODE(G..
WITH T AS ( SELECT '경역기획' AS DEPT_NAME, '200' AS MANAGER_ID FROM DUAL UNION SELECT '경영' AS DEPT_NAME, '201' AS MANAGER_ID FROM DUAL UNION SELECT 'IT' AS DEPT_NAME, NULL AS MANAGER_ID FROM DUAL UNION SELECT '물류' AS DEPT_NAME, NULL AS MANAGER_ID FROM DUAL UNION SELECT '회계' AS DEPT_NAME, '204' AS MANAGER_ID FROM DUAL ) SELECT * FROM T ORDER BY MANAGER_ID NULLS FIRST; WITH T AS ( SELECT '경역기획' AS DE..
CREATE OR REPLACE FUNCTION FN_GET_MACHINE_NO( l_cd IN VARCHAR2 ,m_cd IN VARCHAR2 ,s_cd IN VARCHAR2 ) RETURN VARCHAR IS retval VARCHAR2(14); seqNextVal VARCHAR(7); lCdVal VARCHAR(1); mCdVal VARCHAR(2); sCdVal VARCHAR(3); INPUT_ERR EXCEPTION; OUTPUT_ERR EXCEPTION; BEGIN seqNextVal := 0; lCdVal := TRIM(l_cd); mCdVal := TRIM(m_cd); sCdVal := TRIM(s_cd); BEGIN -- 20100823 LCS 수정 : 소분류가 NULL이면 '99'기본값..
WITH T AS ( SELECT '0001' AS CD, 'S0001' AS ID, 1 AQS ROWNO FROM DUAL UNION ALL SELECT '0002' AS CD, 'S0002' AS ID, 1 AQS ROWNO FROM DUAL UNION ALL SELECT '0003' AS CD, 'S0003' AS ID, 1 AQS ROWNO FROM DUAL ) SELECT SUBSTR(MAX(SYS_CONNECT_BY_PATH(CD,','))), 2) AS CD FROM T START WITH ROWNO = 1 CONNECT BY PRIOR ROWNO = ROWNO - 1 결과 0001,0002,0003
DELETE FROM EMP A WHERE EXISTS ( SELECT 1 FROM DEPT B WHERE A.DEPTNO = B.DEPTNO AND B.DEPTNO = '20' ); DELETE FROM EMP A WHERE A.DEPTNO = ( SELECT B.DEPTNO FROM DEPT B WHERE A.DEPTNO = B.DEPTNO AND B.DEPTNO = '20' ); DELETE FROM EMP A WHERE (A.DEPTNO, A.ENAME) = ( SELECT B.DEPTNO, B.NAME FROM DEPT B WHERE B.DEPTNO = '20' );
공휴일, 토요일, 일요일을 제외한 평일 구하기 SELECT COUNT(1) CNT FROM (SELECT TO_CHAR(SDT + LEVEL - 1, 'YYYYMMDD') DT , TO_CHAR(SDT + LEVEL - 1, 'D') D FROM (SELECT TO_DATE('20150501', 'YYYYMMDD') SDT , TO_DATE('20150531', 'YYYYMMDD') EDT FROM DUAL) CONNECT BY LEVEL
SELECT A.OWNER , A.COLUMN_ID , A.COLUMN_NAME , DECODE(NULLABLE,'N','Not Null') NULLABLE , DATA_TYPE ||'(' ||CASE WHEN DATA_TYPE IN ('NUMBRER') THEN DATA_PRECISION||','||DATA_SCALE WHEN DATA_TYPE IN ('DATE') THEN '' ELSE TO_CHAR(DATA_LENGTH) END ||')' DATA_SIZE , DATA_DEFAULT DATA_DEFAULT , B.COMMENTS COMMENTS FROM ALL_TAB_COLUMNS A , ALL_COL_COMMENTS B WHERE A.TABLE_NAME = '테이블명' AND A.OWNER = '..
CREATE TABLE T AS ( SELECT 123456789012345 AMT FROM DUAL UNION ALL SELECT 29000 FROM DUAL UNION ALL SELECT 309840 FROM DUAL ) ; SELECT AMT , TRANSLATE ( SUBSTR(V, 1,1)||DECODE(SUBSTR(V, 1,1),0,'','천') || SUBSTR(V, 2,1)||DECODE(SUBSTR(V, 2,1),0,'','백') || SUBSTR(V, 3,1)||DECODE(SUBSTR(V, 3,1),0,'','십') || SUBSTR(V, 4,1)||DECODE(SUBSTR(V, 1,4),0,'','조') || SUBSTR(V, 5,1)||DECODE(SUBSTR(V, 5,1),0,'..
import java.text.DecimalFormat; public class Price1000Comma { public static void main(String[] args) { DecimalFormat df = new DecimalFormat("#,###.######"); double amtDouble = 1234567890.123456; String amtString = df.format(amtDouble); System.out.println(amtString); } }
DELETE FROM EMP A WHERE EXISTS ( SELECT 1 FROM DEPT B WHERE A.DEPTNO = B.DEPTNO AND B.DEPTNO = '20' ); DELETE FROM EMP A WHERE A.DEPTNO = ( SELECT B.DEPTNO FROM DEPT B WHERE A.DEPTNO = B.DEPTNO AND B.DEPTNO = '20' ); DELETE FROM EMP A WHERE (A.DEPTNO, A.ENAME) = ( SELECT B.DEPTNO, B.NAME FROM DEPT B WHERE B.DEPTNO = '20' );
#name# : entity에 설정된 값을 가져올 때 선언되는 방식 $name$ : 동적인 문자열을 사용할때 선언되는 방식 넘어온 데이터를 그대로 출력(보안에는 취약) 사용 예제--#PARAM#사용 SELECT E.EMPNO , E.ENAME FROM EMP E WHERE E.EMPNO = #EMPNO#; --$PARAM$ 사용 SELECT E.EMPNO , E.ENAME FROM $TABLENM$ E;
SELECT TO_CHAR(TO_DATE('20150201', 'YYYYMMDD') + NUM - 1, 'YYYY-MM-DD') AS YYYYMMDD FROM ( SELECT ROWNUM AS NUM FROM DUAL CONNECT BY LEVEL
SELECT TO_NUMBER(TO_CHAR(MIN(SUN), 'DD')) "일" , TO_NUMBER(TO_CHAR(MIN(MON), 'DD')) "월" , TO_NUMBER(TO_CHAR(MIN(TUE), 'DD')) "화" , TO_NUMBER(TO_CHAR(MIN(WED), 'DD')) "수" , TO_NUMBER(TO_CHAR(MIN(THU), 'DD')) "목" , TO_NUMBER(TO_CHAR(MIN(FRI), 'DD')) "금" , TO_NUMBER(TO_CHAR(MIN(SAT), 'DD')) "토" FROM ( SELECT TRUNC(MONTH, 'D') GUBN , DECODE(WEEK, 1, MONTH) SUN , DECODE(WEEK, 2, MONTH) MON , DECODE(WE..
테이블생성 CREATE TABLE BOM ( ITEM_ID INTEGER NOT NULL, PARENT_ID INTEGER, ITEM_NAME VARCHAR2(20) NOT NULL, ITEM_QTY INTEGER, PRIMARY KEY (ITEM_ID)); 데이터 저장 INSERT INTO BOM VALUES (1001, NULL, '컴퓨터', 1); INSERT INTO BOM VALUES (1002, 1001, '본체', 1); INSERT INTO BOM VALUES (1003, 1001, '모니터', 1); INSERT INTO BOM VALUES (1004, 1001, '프린터', 1); INSERT INTO BOM VALUES (1005, 1002, 'MOTHER BOARD', 1); INS..
- 다음과 같은 설졍을 통해 구현도구(eclipse)의 성능 및 속도를 높일 수 있다. 아래 설정은 필수 적용사항이 아니므로, 필요한 경우 참고자료로 활용한다. 1. eclipse theme 기능 변경 Window » Preferences » General » Appearance » Theme를 Classic으로 변경. Use mixed fonts and colors for labels 체크를 해지 Apply 후 eclipse 재실행. 2. eclipse.ini 파일 수정 필요에 따라 아래의 설정정보를 수정할 수 있다. 메모리 설정의 경우, 각 컴퓨터의 메모리 용량에 따라 설정하여야한다. (1~2G : 256m, 2~3G, 512m, 4G~ : 1024m 권장) Xverify:none 클래스 검사 생략...
이클립스에서 JAVA 소스 작성시 메서드를 만들고자 하는 소스를 블록지정 하여 Shift + Alt + m 을 누르면 블록으로 지정한 소스를 메서드로 자동으로 만들어준다.
1. 이클립스에서 jar파일 추가하고 build path에 적용 2. jar파일 제대로 구동이 되는지 확인 3. svn에 jar파일 commit 4. 다른 개발자가 소스를 업데이트 하면 WAS가 구동이 안되는 현상 (문제) - 처음 jar파일을 적용한 개발자가 다른 개발자 이클립스 환결설정을 적용해주면 제대로 작동됨 ( 하지만 문제점 발견 ) - 프로젝트 팀원 개발자가 100명이라면 100명다 환결설정을 잡아줄것인가? 원인 : 처음 개발자가 jar파일 추가하고 환결 설정을 적용한다믄 svn에 .classpath파일 commit하지 않아 발생한 문제 해결 : 이클립스에서 jar파일 추가한후 환결설정 적요하고 테스트완료후 변경한 소스를 commit하고 .classpath도 commit해줘야 함 .classp..
produces="text/plain;charset=UTF-8"를 사용하여 응답 페이지에 대한 UTF-8 인코딩이 가능하여 한글 깨짐을 방지.@RequestMapping(value = "/path", produces="text/plain;charset=UTF-8") @ResponseBody public String getJsonSampleList() { 로직.. }
텍스트 형식의 실행계획 SET STATISTICS PROFILE ON --OFF ---------------------------------------------------------------------------------------------------- 입출력 정보 SET STATISTICS IO ON --OFF -------------------------------------------------------------------------------------------------- 테이블 'EMP'. 검색 수 1, 논리적 읽기 수 7, 물리적 읽기 수 0, 미리 읽기 수 0, LOB 논리적 읽기 수 0, LOB 물리적 읽기 수 0, LOB 미리 읽기 수 0. 테이블 'DEPT'. 검색 수 1..
exec sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\excelDataFile.xlsx;', 'SELECT * FROM [Sheet1$]');
기능 1. 대용량 데이터를 엑셀로 내려 받음. 2. 셀 머지 기능 3. 시트별로 데이터를 출력 ※ xml를 사용한 방법 ※ xml를 사용하지 않고 RowHandler만 사용한 방법 ( 이경우는 데이터가 많은경우 Out Of Memory가 발생 하였음) 첨부파일에 컨트롤러 파일을 참고 설명 일반적으로 엑셀로 대용량 데이터를 내려 받을경우 Out Of Memory 가 발생하게 된다. 그래서 Heap Size를 늘려주기도 하고 데이터를 나눠서 엑셀로 내려받는 등 여러가지 방법으로 구현하기도 한다. 이러한 문제점들을 해결할수 있게 XML 형식으로 대용량 처리하여 엑셀로 내려 받을수 있게 되는데 스프링, iBatis(myBatis), poi등을 이용하여 구현하게 된다. 일반적으로 엑셀 내려받기 위하여 10만건을 ..
728x90
반응형