SELECT X.WORK_DATE    AS WORK_DATE

          FROM (SELECT SUBSTR( '201111', 1, 6 )||'01' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'02' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'03' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'04' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'05' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'06' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'07' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'08' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'09' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'10' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'11' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'12' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'13' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'14' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'15' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'16' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'17' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'18' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'19' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'20' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'21' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'22' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'23' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'24' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'25' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'26' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'27' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'28' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'29' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'30' WORK_DATE FROM DUAL UNION ALL

                SELECT SUBSTR( '201111', 1, 6 )||'31' WORK_DATE FROM DUAL 

               ) X

         WHERE X.WORK_DATE <=  TRIM(TO_CHAR(LAST_DAY(TO_DATE('20111101','YYYYMMDD')),'YYYYMMDD'))




[sqlplus] 검색결과 파일로 저장하기.


1. TXT파일 생성 예제


- 오라클에서는 SPOOL기능을 이용해서 TXT파일이나 SAM파일에 검색된 테이터를 저장 할 수 있습니다.

- 먼저 파일에 저장될 검색 결과를 얻기위한 SQL문을 스크립트 파일로 만듭니다.

- 여러번에 SQL문을 돌리는 것보다 하나의 스크립트 파일을 만들어서 실행하는것이 더 효율적입니다.

 



실행시킬 SQL문을 C:\SpoolSelect.sql로 저장 합니다.

---- SpoolSelect.sql 시작 ---

SELECT empno, sal, ename, to_char(hiredate, 'YYYY-MM-DD') FROM emp;

SELECT deptno, dname FROM dept;

---- SpoolSelect.sql 끝 ---


SQLPLUS scott/tiger을 실행 시킵니다.


-- header가 display되지 않고 데이터만 display됩니다. 

SQL>SET HEADING OFF


-- pagesize의 default는 14이며 그대로 하면 14줄마다 1줄씩 공백이 생기므로  그런 현상을 방지하기 위해 크게 지정합니다. 

SQL>SET PAGESIZE 1000


-- linesize도 record 길이만큼 지정하여 아래로 구분되지 않도록 합니다.

SQL>SET LINESIZE 300


-- 명령이 display되지 않도록 합니다.

SQL>SET ECHO OFF


-- 조회 결과가 화면에 나오지 않도록 합니다. 

SQL>SET TERM OFF


-- data가 들어가는 화일 이름을 지정 합니다. 

SQL>SPOOL C:\test.txt


-- 스크립트 파일을 실행 시킵니다. 

SQL>@C:\SpoolSelect.sql


SQL>SPOOL Off

test.txt file이 생성 되었는지 확인 합니다.




2. 필드 값 구분하기.


1-1.select empno||' '||ename from emp; <== Tab으로 구분

1-2.select empno||','||ename from emp; <== 콤마로 구분

2-1.select empno||'"'||ename from emp; <== 필드 값에 큰따옴표 붙이는 방법

(작은 따옴표는 예약어 이기 때문에 에러 남)


'DBMS > 오라클기타' 카테고리의 다른 글

인덱스 Monitoring 기법  (0) 2013.05.05
월별 일자  (0) 2013.05.03
컬럼이 null인 경우는 조회조건  (0) 2013.05.03
oracle character set 변경.  (0) 2013.05.03
주차 구하기  (0) 2013.05.03


Powerbuilder>


table test 의 컬럼이 empno,name,deptname,address,phone (사번,이름,부서명,주소,전화번호) 라고 할때 datawindow를 디자인할때 주소로 검색할 경우 retrieve argument를 r_address 라고 할때


select empno,name,deptname,address,phone

   from test

 where address = :r_address;


로 정의한다.


그런데, 전체를 검색하기 위해 r_address 의 값을 '%'로 주었을 경우 address 컬럼이 null인 경우는 가져오지 못한다.

이럴 경우 다음과 같이 한다.


select empno,name,deptname,address,phone

   from test

 where ((address = :r_address) or (address is null and :r_address = '%'))




'DBMS > 오라클기타' 카테고리의 다른 글

월별 일자  (0) 2013.05.03
sqlplus spool 이용  (0) 2013.05.03
oracle character set 변경.  (0) 2013.05.03
주차 구하기  (0) 2013.05.03
오라클 날짜함수  (0) 2013.05.03




SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL> ALTER DATABASE OPEN;

SQL> ALTER DATABASE CHARACTER SET AL32UTF8;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;



'DBMS > 오라클기타' 카테고리의 다른 글

sqlplus spool 이용  (0) 2013.05.03
컬럼이 null인 경우는 조회조건  (0) 2013.05.03
주차 구하기  (0) 2013.05.03
오라클 날짜함수  (0) 2013.05.03
SYNONYM  (0) 2013.05.03



-- 년

SELECT TO_CHAR( TO_DATE('20090913','YYYYMMDD'),'IW')    WEEK

           , TRUNC( TO_DATE('20090913','YYYYMMDD'),'IW')       STA_YMD

           , TRUNC( TO_DATE('20090913','YYYYMMDD'),'IW')+6    END_YMD

  FROM DUAL

 ;

 

-- 월

SELECT '20090913'  AS YMD

           , CEIL( ( TO_NUMBER(SUBSTRB('20090913', -2, 2)) +7 - TO_NUMBER( TO_CHAR( TO_DATE( '20090913','YYYYMMDD' ), 'D' ) ) ) / 7 )  AS MON_WEEK

  FROM DUAL

  ;


'DBMS > 오라클기타' 카테고리의 다른 글

컬럼이 null인 경우는 조회조건  (0) 2013.05.03
oracle character set 변경.  (0) 2013.05.03
오라클 날짜함수  (0) 2013.05.03
SYNONYM  (0) 2013.05.03
SYS_CONNECT_BY_PATH  (0) 2013.05.03

+ Recent posts