2013년 12월 11일 수요일

SAP 디비 링크 추가하기

[출처 : http://wiki.sdn.sap.com/ ]

When you want to set up external database connection, you need to use DBCO or DBACOCKPIT Transaction.
When using these transactions, you are setting up the properties for an external database.

BASIS STEPS

Insert TNSNames Alias into file TNSNames.ora under Oracle Directory (C:\oracle\<SID>\102\network\admin\ tnsnames.ora)
YYY.WORLD =

  (DESCRIPTION =

      (ADDRESS =

        (COMMUNITY = TCP.WORLD)

        (PROTOCOL = TCP)

        (HOST = host.xxxxxxx)

        (PORT = 1521)

    )

    (CONNECT_DATA =

      (SID = YYY)

      (GLOBAL_NAME = YYY.WORLD)

    )

  )
Note: Insert the same TNSNames Alias into file TNSNames.ora under Sap Profile Directory (C:\usr\sap\<SID>\SYS\profile\oracle\ tnsnames.ora )

ADMINISTRATION STEPS

DBACOCKPIT Transaction -> DB Connections Tab -> Add
http://i669.photobucket.com/albums/vv53/simon_djflex/WORK/DBACOCKPIT_DBConnections.jpg
You need to set the following parameters:
DB Connection: Logical name
DBMS: type of database (e.g. oracle, mssql, etc)
User name: user name that connect to the database
DB Password: password
Conn. Info: same target name as in tnsnames
http://i669.photobucket.com/albums/vv53/simon_djflex/WORK/DBACOCKPIT_DBConnections_Settings.jpg
With Test Connection Button you can test if your connection work fine.
http://i669.photobucket.com/albums/vv53/simon_djflex/WORK/DBACOCKPIT_TestSuccessfully.jpg

SAMPLE CODE FOR CONNECTION TO EXTERNAL DB  


  DATA: lv_dbs_connection      TYPE dbcon-con_name VALUE 'BDXXX',
        lv_current_connection  TYPE dbcon-con_name.

  DATA dbtype TYPE dbcon_dbms.

  SELECT SINGLE dbms
         FROM dbcon
         INTO dbtype
         WHERE con_name = lv_dbs_connection.

  IF dbtype = 'ORA'.
    TRY.

      EXEC SQL.
        CONNECT TO :lv_dbs_connection
      ENDEXEC.
      IF sy-subrc <> 0.
        RAISE EXCEPTION TYPE cx_sy_native_sql_error.
      ENDIF.
      EXEC SQL.
        SET CONNECTION :lv_dbs_connection
      ENDEXEC.

      EXEC SQL.
        DISCONNECT :lv_current_connection
      ENDEXEC.
    ENDTRY.
  ENDIF.
 
먼저  /sapmnt/***/profile/oracle/tnsnames.ora를 등록한다.

2013년 12월 9일 월요일

Windows, Linux, Mac 가상 OS 무료로 다운로드 받는 방법

[출처 : http://seeit.kr/ ]

VMware나 VirtualBox, Parallels 를 이용해 Windows와 Linux, Mac 등 다양한 버전의 OS를 설치해 프로그램 테스트 환경을 만들게 됩니다. 몇 번 언급했지만 저는 소프트웨어 품질검사 하는 일을 하고 있는데요. Windows 기반의 프로그램을 테스트 할 때는 Windows XP, Vista, 7, 8을 각각 32비트(x86), 64비트(x64) OS에 설치해서 테스트하게 되고, Linux나 Mac 기반에서 테스트 할 때도 마찬가지입니다.
회사라면 저런 다양한 OS가 정품으로 구입한 상태이 마음껏 사용할 수 있지만, 개인 사용자는 다르죠. (물론 불법 복제품으로 사용하시는 분들이 대부분이긴 하겠지만 ^^;)
그래서 오늘은 Windows와 Linux, Mac OS 등을 VMware, VirtualBox, Parallels 등에 바로 마운트해서 사용할 수 있는 가상 OS들을 무료로 다운로드 하는 방법을 소개해드리도록 하겠습니다. 불법 복제품이 아니라 마이크로소프트에서 운영하는 사이트에서 받는 방법입니다.


■ Windows 및 Linux, Mac 가상 OS 무료로 다운로드 방법
마이크로소프트에서는 다양한 인터넷 익스플로러에서 크로스 브라우징 테스트를 하는 사이트를 운영하고 있습니다. 해당 사이트에서는 Windows 제품군에 이전 버전 인터넷 익스플로러가 설치된 가상 OS를 다운로드 받을 수 있도록 제공하고 있는데요. 해당 사이트에서 OS를 다운로드 받아 사용하기 위해서는 VMware나 VirtualBox, Parallels 등 가상 OS를 마운트에서 설치할 수 있는 프로그램이 필요합니다.
그럼, 다운로드 및 설치하는 방법에 대해 간단히 알아볼까요? 
1. Modern-IE 사이트에 접속 [바로가기] 합니다.

2. 크로스 브라우징 테스트도 할 수 있지만, 해당 링크로 이동하면 위 이미지와 같은 가상 시스템을 다운로드 할 수 있는 페이지로 이동하게 됩니다. 

3. 원하는 테스트 OS 메뉴를 눌러 Windows 및 Mac, Linux 등 다운로드 할 OS를 선택해줍니다. Windows XP 버전을 다운로드 한 번 해볼께요!
4. Windows 를 선택하면 '가상화 플랫폼 선택' 메뉴에서 세부 버전을 선택할 수 있습니다. 현재 다운로드 할 수 있는 버전은 WIndows Server 2008 R2 SP1의 Hyper-V 및 Windows 8 Pro, Windows 7 용 가상 PC 등 다양한 플랫폼이 있습니다. Windows 7용 가상 PC를 선택해보겠습니다.

5. OS 종류와 플랫폼을 선택하면 세부 OS 버전을 선택할 수 있습니다. 이 사이트에서 무료 다운로드를 제공하는 이유 중 하나가 IE 버전별 OS를 설치해 테스트를 쉽게 하라는 의미가 있는 것이라 IE6 부터 IE11까지 설치된 Windows XP와 Vista, Win7 등을 선택해 다운로드 할 수 있습니다.

6. 저는 IE8 이 설치된 Windows XP를 설치하기 위해 다운로드 해봤습니다. 다운로드 속도는 1기가 정도에 1분도 안걸릴 정도로 굉장히 빠르네요! (물론 사용자 인터넷 환경에 따라 다르겠죠~)

7. 실행 파일로 된 파일을 다운로드한 경우, 해당 파일 실행 시 위 이미지처럼 압축 해제하는 과정을 거칩니다.
8. 압축 해제 완료 후, 해당 폴더로 이동해보면 위 이미지처럼 vhd와 vmc 확장자 파일이 두 개 있습니다. VMware 에서 바로 마운트해서 Windows 를 실행할 수 있는 파일이죠.
9. 이제 VMware 를 실행해줍니다. 가상 OS 를 많이 돌려보신 분들이라면 다운로드하는 사이트만 알려드려도 알아서 잘 하시겠지만, 잘 모르는 초보자분들을 위해 가상 OS 실행하는 방법까지 설명해드립니다. VMware에서 [File] - [Open] 을 선택합니다.


10. 압축 해제한 가상 OS 폴더로 이동합니다. 자동으로 vmc 파일을 찾아주는데요. 이 파일을 그대로 VMware에서 사용할 수 없기 때문에 VMware vCenter Converter 프로그램으로 변환하는 과정을 거치게 됩니다.


▲ vmc 파일을 VMware 환경에 맞춰 마운트할 수 있도록 VMware vCenter Conver 가 실행된다.
▲ 설치 언어를 선택해준다. 아쉽게도 한국어가 없다.
 

▲ VMware vCenter Converter Standalone 이 실행되며 vmc 파일을 VMware에서 사용할 수 있는 형태로 변환해준다. 모든 과정이 끝나도 별다른 메시지가 없으니 이상하게 생각하지 않아도 된다.
 

11. VMware vCenter Converter Standalone 으로 변환 과정을 마치고 다시 VMware로 돌아와 [File] - [Open] 을 선택해주고 해당 파일을 다시 찾아 마운트 해주면 됩니다.
▲ IE8 이 설치된 WinXP를 VMware에서 사용할 수 잇도록 마운트 하는 과정이 진행된다.
 

12. VMware에 내가 원하던 OS 환경이 리스트로 추가된 것을 확인할 수 있습니다. 이제 IE8가 설치된 Windows XP에서 테스트할 때는 이 가상 OS를 사용하면 되겠네요!
▲ Play 를 눌러 해당 OS를 실행한다.

인터넷 익스플로러 8 외에는 아무것도 설치되지 않은 깨끗한 상태의 Windows XP가 실행되는 것을 확인할 수 있습니다. 클린 PC에서 프로그램 테스트를 해야 하는 경우, 매번 다양한 OS CD로 설치하는 과정을 거쳤는데, 마이크로소프트에서 운영하는 이 사이트에서 다운로드만 받으면 간단하게 마운트해서 사용할 수 있을 것 같습니다.
이렇게 설치된 OS는 정품이지만 30일만 사용할 수 있으므로 참고하세요.

스마트폼의 pdf를 이메일 첨부 발송

[출처:http://www.e-abap.net/]

DATA :  OUTPUT_OPTIONS       TYPE SSFCOMPOP,
           CONTROL_PARAMETERS   TYPE SSFCTRLOP.

  CLEAR: CONTROL_PARAMETERS, OUTPUT_OPTIONS, TSP03.

  CONTROL_PARAMETERS-NO_DIALOG = 'X'.
  " "otf 전환***
  CONTROL_PARAMETERS-GETOTF    = 'X'.   
  CONTROL_PARAMETERS-LANGU     = SY-LANGU.
  CONTROL_PARAMETERS-DEVICE    = 'PRINTER'.


  OUTPUT_OPTIONS-TDSENDDATE   = SY-DATLO.      
  OUTPUT_OPTIONS-TDSENDTIME   = SY-TIMLO.       
  OUTPUT_OPTIONS-TDDEST       = 'LP01'.         
  OUTPUT_OPTIONS-TDNEWID      = 'X'.            

   CALL FUNCTION P_FUNC_MOD_NAME
     EXPORTING
       CONTROL_PARAMETERS = CONTROL_PARAMETERS
       OUTPUT_OPTIONS     = OUTPUT_OPTIONS
       G_ITAB02_T         = G_ITAB02_T
     IMPORTING
       JOB_OUTPUT_INFO    = G_JOB_OUTPUT_INFO
       JOB_OUTPUT_OPTIONS = G_JOB_OUTPUT_OPTIONS
     TABLES
       G_ITAB03_T         = G_ITAB03_T
       G_ITAB08_T         = G_ITAB08_T
     EXCEPTIONS
       FORMATTING_ERROR   = 1
       INTERNAL_ERROR     = 2
       SEND_ERROR         = 3
       USER_CANCELED      = 4
       OTHERS             = 5.
   IF SY-SUBRC <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     LEAVE PROGRAM.
   ENDIF.

*&
   DATA : OTF_TAB TYPE TSFOTF.

   OTF_TAB[] = G_JOB_OUTPUT_INFO-OTFDATA[].

*&
  DATA: GS_HEAD     LIKE SODOCCHGI1,
        GT_OBJPACK  LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE,
        GT_OBJHEAD  LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,
        GT_OBJBIN   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
        GT_OBJCON   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
        GT_RECEIVER LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
        GV_LINES LIKE SY-TABIX,
        GV_DOC_SIZE LIKE SY-TABIX.

*&
  DATA: LT_PDF            TYPE STANDARD TABLE OF TLINE WITH HEADER LINE,
        L_SIZE           TYPE I,
        L_REG_VALUE(128) TYPE C.
  data: L_FILE       TYPE  XSTRING.


*& OTF 파일을 PDF 파일로 CONVERT.
  CALL FUNCTION 'CONVERT_OTF'
     EXPORTING
       FORMAT                = 'PDF'
    TABLES
      OTF                   = P_OTF[]
      LINES                 = LT_PDF
    EXCEPTIONS
      ERR_MAX_LINEWIDTH     = 1
      ERR_FORMAT            = 2
      ERR_CONV_NOT_POSSIBLE = 3
      OTHERS                = 4.

  DATA: I TYPE I,N TYPE I.
  DATA: L_TXT(1000).

* Convert pdf(134) to binary(255) file.
  LOOP AT LT_PDF.
    L_TXT+I = LT_PDF.
    ADD 134 TO I.
    IF I >= 255.
      GT_OBJBIN = L_TXT.
      APPEND GT_OBJBIN.
      SUBTRACT 255 FROM I.
      L_TXT = L_TXT+255.
    ENDIF.
  ENDLOOP.
  IF I <> 0.
    GT_OBJBIN = L_TXT.
    APPEND GT_OBJBIN.
  ENDIF.


*& 메일 수신자 관련
  GT_RECEIVER-RECEIVER   =  'mychoi@lgcns.com'.
  "수신메일주소
  GT_RECEIVER-REC_TYPE   =  'U'.
  GT_RECEIVER-EXPRESS    =  'X'.
  APPEND GT_RECEIVER. CLEAR GT_RECEIVER.

*& 메일 내용
  GT_OBJCON-LINE = 'Smartforms Mail 확인바랍니다.'.
  APPEND GT_OBJCON. CLEAR GT_OBJCON.
*&
  GT_OBJCON-LINE = '감사합니다'.
  APPEND GT_OBJCON. CLEAR GT_OBJCON.

*&
*& 메일 내용 관련된 사항을 PACKING_LIST에 APPEND
  DESCRIBE TABLE GT_OBJCON LINES GV_LINES.

*& 메일 HEADER
  GS_HEAD-OBJ_NAME     =  'MESSAGE'.
  GS_HEAD-OBJ_DESCR    =  '>>SMART PDF MAIL 확인바랍니다.'.   "메일 제목
  GS_HEAD-OBJ_LANGU    =  'E'.
  GS_HEAD-SENSITIVTY   =  'O'.      "'O' : Standard 'P': Confidential
  GS_HEAD-OBJ_PRIO     =  '1'.
  GS_HEAD-NO_CHANGE    =  'X'.
  GS_HEAD-PRIORITY     =  '1'.
*  gs_head-doc_size = gv_lines * 255.

  GT_OBJPACK-HEAD_START = 1.
  GT_OBJPACK-HEAD_NUM = 0.
  GT_OBJPACK-BODY_START = 1.
  GT_OBJPACK-BODY_NUM = GV_LINES.
  GT_OBJPACK-DOC_TYPE = 'RAW'.

  APPEND GT_OBJPACK. CLEAR GT_OBJPACK.

*& 메일 첨부파일에 관련된 사항을 PACKING LIST에 저장
  DESCRIBE TABLE GT_OBJBIN LINES GV_LINES.
  GT_OBJPACK-TRANSF_BIN = 'X'.
  GT_OBJPACK-HEAD_START = 1.
  GT_OBJPACK-HEAD_NUM = 1.
  GT_OBJPACK-BODY_START = 1.
  GT_OBJPACK-BODY_NUM = GV_LINES.
  GT_OBJPACK-DOC_TYPE = 'PDF'.
* GT_OBJPACK-FILE_EXT = 'PDF'.
  GT_OBJPACK-OBJ_NAME = 'Attachment'.
  GT_OBJPACK-OBJ_DESCR = 'ATT_SMART'.

  READ TABLE GT_OBJBIN INDEX GV_LINES.

  GV_DOC_SIZE = GV_LINES * 255.

* GV_DOC_SIZE = ( GV_LINES - 1 ) * 255 + STRLEN( GT_OBJBIN ).
  GT_OBJPACK-DOC_SIZE = GV_DOC_SIZE.

  APPEND GT_OBJPACK. CLEAR GT_OBJPACK.

*& 메일을 전송하는 Function.....
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      DOCUMENT_DATA              = GS_HEAD      "메일TITLE
      PUT_IN_OUTBOX              = 'X'
      COMMIT_WORK                = 'X'
    TABLES
      PACKING_LIST               = GT_OBJPACK
      CONTENTS_BIN               = GT_OBJBIN     "첨부파일
      CONTENTS_TXT               = GT_OBJCON     "메일내용
      RECEIVERS                  = GT_RECEIVER   "수신정보
    EXCEPTIONS
      TOO_MANY_RECEIVERS         = 1
      DOCUMENT_NOT_SENT          = 2
      DOCUMENT_TYPE_NOT_EXIST    = 3
      OPERATION_NO_AUTHORIZATION = 4
      PARAMETER_ERROR            = 5
      X_ERROR                    = 6
      ENQUEUE_ERROR              = 7
      OTHERS                     = 8.

  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    MESSAGE S002 WITH '메일이 전송 되었습니다.'.
  ENDIF.

2013년 11월 11일 월요일

중국쪽 무료 클라우드 서비스들

[출처 : http://xerror.tistory.com/57 ]
1. 바이두(baidu)
URL : http://yun.baidu.com/1t
소개 : 중국의 구글이라 불리는 중국 대표 검색 포털 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 2TB
제한 : 업로드 최대 4GB
속도 : (웹기준) 다운로드 1MB/S 정도, 업로드 1MB/S 정도
특징 : 미디어 파일을 웹에서 별도 설치 없이 스트리밍 하는 것이 가능하다
         한글파일을 다운받으면 파일명이 깨진다
         추가 요금을 내고 15GB, 30GB, 50GB, 100GB 단위로 추가용량을 구입 할 수 있다

2. 텐센트(Tencent)
URL : http://www.weiyun.com/act/10t.html?WYTAG=weiyun.portal.index
소개 : 야후나 네이버와 비슷한 성격의 종합 포털 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 10TB
제한 : 업로드 최대 4GB (IE 외 다른 웹브라우저에서는 최대 2GB / 플러그인 설치시 최대 36GB)
속도 : (웹기준) 다운로드 1MB/S 이하, 업로드 1MB/S 이하
특징 : 회사가 텐센트 이고 서비스명은 웨이윤(weiyun) 이다
         텐센트 코리아도 있다 (http://www.tencent.co.kr)
         일정기간 로그인을 하지 않으면 자료가 삭제 된다고 한다 (기간은 확실치 않음. 한달 또는 45일)
         개발 API 가 제공된다 (http://www.weiyun.com/api.html?WYTAG=weiyun.portal.download)

3. 치후360(Qihoo360)
URL : http://yunpan.360.cn
소개 : 안랩과 같은 보안 관련 서비스가 주력이며 최근 검색 포털 및 게임 서비스 분야로 확장 중인 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 무제한 (자동 확장)
제한 : 업로드 최대 웹 360MB, PC클라이언트 5GB
속도 : (웹기준) 다운로드 1MB/S 이하, 업로드 1MB/S 정도
특징 : 가입 후 최초 PC 클라이언트를 설치하면 10TB 를 주고 이후 모바일 어플을 설치하면 27TB 를 준다
         초기 사용 가능한 최대 용량은 37TB 이다
         사용 용량이 26TB 부터 최대 용량은 10TB 씩 증가한다 (예로 30TB 를 사용 중이면 최대 용량은 86TB 가 된다)
         사용 용량이 증가함에 따라 최대 용량은 무제한으로 증가한다 (http://p1.qhimg.com/t017746ca443f25ce9e.jpg)

2013년 10월 22일 화요일

Smartforms에서 텍스트 내용을 수정할때 Microsoft Word가 실행되면서 오류발생

Smartforms에서 텍스트 내용을 수정할때 Microsoft Word가 실행되면서 오류발생








SE38에서 RSCPSETEDITOR을 실행하여 Smartforms를 체크 해제 후 Activate 시킨다.















[SAP] Classification의 값 가져오기

품목에 해당되는 Classification의 값들을 가져온다. 

CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
  EXPORTING
    CLASSTYPE    = '001'
    CLINT        = LV_CLINT
    OBJECT       = LV_OBJEK
  TABLES
    T_CLASS      = LT_CLASS
    T_OBJECTDATA = LT_OBJECT.

READ TABLE LT_OBJECT WITH KEY ATNAM = atinn. 

[SAP] 날자 계산하기

- LV_DATUM 날자를 기준으로 10일 전의 날자를 계산하여 준다.

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
  EXPORTING
    DATE           = LV_DATUM
    DAYS           = '10'
    MONTHS      = '00'
    SIGNUM       = '-'
    YEARS         = '00'
  IMPORTING
    CALC_DATE = I_DATE .


- LV_DATUM을 기준으로 XX개월(+/-) 구간의 일자를 구한다.
  CALL FUNCTION 'RE_ADD_MONTH_TO_DATE'
    EXPORTING
      MONTHS        = 'XX'
      OLDDATE       = LV_DATUM
    IMPORTING
      NEWDATE       = GV_SDATE.


-  LV_DATUM일자에 해당되는 월의 마지막 일자를 구한다.
  CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
    EXPORTING
      DAY_IN                  = LV_DATUM
    IMPORTING
      LAST_DAY_OF_MONTH       = GV_EDATE.

[SAP] 함수 뒤에 있는 음수 부호를 앞으로 보내는 함수

1.CH의 변수 유형은 문자 타입이어야 한다.

    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
      CHANGING
        VALUE         = CH.

ABAP에서 오라클 힌트 사용하기

SELECT *
   FROM 테이블
 WHERE 조건
%HINTS ORACLE 'INDEX(''테이블1'' ''인덱스명1'', ''테이블2'' ''인덱스명2'').

Index 관련 sql


1. 테이블에 생성된 Index 확인
SELECT * FROM USER_INDEXES
 WHERE TABLE_NAME = 테이블명;

2.Index되는 필드 조회
SELECT * FROM USER_IND_COLUMNS
 WHERE TABLE_NAME = 테이블명;

3.특정 Index 필드만 조회
SELECT * FROM USER_IND_COLUMNS
 WHERE INDEX_NAME = Index명;

4. Index 추가 하기
CREATE INDEX Index명 ON 테이블명
( 컬럼명 [ASC][DESC] .....);

5. Index 삭제
DROP INDEX Index명;

6. Index 재생성
 ALTER INDEX Index명 REBUILD;

7. PK 생성
 ALTER TABLE 테이블명 ADD CONSTRAINT PK PRIMARY KEY(컬럼명...);

8.PK 삭제
 ALTER TABLE 테이블명 DROP PRIMARY KEY CASCADE;



2013년 10월 21일 월요일

Windows7 인증하기

① 프로그램 압축을 푼 후 Windows Loader.exe를 실행한다.
 

② 실행 후 Install 버튼을 누르면 3가지 선택 메뉴가 표시되고 이중 원하는 메뉴를
    선택하면 된다.
  - Restart :지금 바로 재시작 후 정품 인증 한다.
  - Shutdown : 다음 시작시 정품 인증 한다.
  - Close : 프로그램 종료 후 정품 인증은 다음 부팅 후 수동으로 실시

③ 정품 인증 메세지를 안나오게 할려면 업데이트 중 KB971033을 삭제 처리 하면 된다.

2013년 10월 7일 월요일

Oracle 언어 코드 변경

[출처 : http://zietz.tistory.com ]

1. 현재 설치되어 있는 캐릭터셋 조회
SQL> select * from nls_database_parameters


2. 캐릭터셋 변경

① sysdba 권한으로 접속
C:\Users\Administrator>sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on 월 10월 7 11:34:32 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


다음에 접속됨:
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

② 시스템 정상 종료 및 마운트 접속
SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup mount;
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area 1670221824 bytes
Fixed Size                  2176328 bytes
Variable Size             989858488 bytes
Database Buffers          671088640 bytes
Redo Buffers                7098368 bytes
데이터베이스가 마운트되었습니다.


③ 일반 사용자의 세션 가능 제한 모드
SQL> alter system enable restricted session;

시스템이 변경되었습니다.

④ job_queue_processes에 등록된 JOB 프로세스 정지
SQL> alter system set job_queue_processes=0;

시스템이 변경되었습니다.

⑤ aq_tm_processes에 등록된 JOB 프로세스 정지
SQL> alter system set aq_tm_processes=0;

시스템이 변경되었습니다.








⑥ DB 오픈
SQL> alter database open;

데이타베이스가 변경되었습니다.

⑦ 변경할 캐릭터 셋으로 변경
SQL> alter database character set internal_use UTF8;
데이타베이스가 변경되었습니다.

⑧ DB 정상종료
SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.


⑨ DB 재시작
SQL> startup
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area 1670221824 bytes
Fixed Size                  2176328 bytes
Variable Size             989858488 bytes
Database Buffers          671088640 bytes
Redo Buffers                7098368 bytes


sql>update sys.props$ set value$='UTF8'
        where name='NLS_CHARACTERSET';
sql>update sys.props$ set value$='UTF8'
        where name='NLS_NCHAR_CHARACTERSET';
sql>update sys.props$ set value$='KOREAN_KOREA.UTF8'
         where name='NLS_LANGUAGE';
sql>commit;




2013년 9월 13일 금요일

Ubuntu에 JDK 설치하기

[출처:  http://forum.falinux.com/]

 기본적으로 Java 나 안드로이드를 하려고 한다면 JDK를 설치해야 합니다.
윈도우에서는 설치가 있어서 간편한데, 리눅스에서 JDK를 설치하는 방법이 모르는 경우가 있어서 설명하고자 합니다.

JDK 설치는 Ubuntu 12.04 Desktop 32비트 버전에서 진행하였습니다.


1. apt-get 으로 openjdk 설치

기본적으로 Ubuntu에서 지원하는 apt를 가지고 설치를 할 수 있습니다.
apt 로 설치할 수 있는 항목은 openjdk입니다.

Ubuntu Desktop 버전에서는 우분투 소프트웨어 센터에서 UI 화면을 보면서 설치할 수 있습니다.

터미널에서는 아래와 같이 명령을 주면 됩니다.

$ sudo apt-get install openjdk-7-jdk

openjdk 도 jdk 역할을 하지만, oracle에서 제공하는 jdk를 사용하는 분들은 아래와 같이 진행하면 됩니다.


2. apt-get 으로 oracle-java7 jdk 설치하기

apt-get 으로 oracle에서 제공하는 jdk를 설치하려면 아래와 같이 하면 됩니다.

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

하지만, 위의 방법보다 직접 해당 버전을 받아서 설치하길 원한다면 아래와 같이 진행하면 됩니다.

2013년 8월 31일 토요일

윈도우 패스워드 해제하기

윈도우 패스워드 변경 했는데 분실하였을 경우 아래 사이트에서 파일을 받아
씨디로 해제 가능함.
http://ophcrack.sourceforge.net/download.php

2013년 8월 29일 목요일

파이어폭스에서 최신 버전의 플래시가 충돌이 발생할 경우

[출처: http://ulane.net/freeboard/45285 ]
플래쉬 11.3으로 업뎃되면서 파폭에서 자꾸만 플래쉬 플러그인이 메모리 충돌로 죽는 현상이 발생하고 있습니다.
어도비 포럼에 항의글이 계속해서 올라오고 있는데요.

현재 주 원인이 11.3에 추가된 보안 기능 때문이라고 합니다.
11.3 부터는 파폭에서 보안 향상을 위해서 안전모드를 기본적으로 사용하고 있는데,
사실상 플래쉬를 샌드박스화 해서 구동하는 것으로 생각하시면 됩니다. (그래서 플래쉬 플러그인의 프로세스가 3개가 생성됩니다;;;)

그런데 문제는 이게 파폭과 충돌하고 있다는거...
그래서 현재 어도비 측에서는 문제 해결이 될 때 까지 안전모드를 끄도록 권하고 있습니다.
이게 대체 무슨 삽질이여...


다음 파일에 ProtectedMode = 0 라인을 추가해 줍니다:

32비트: C:\windows\system32\macromed\flash\mms.cfg
64비트: C:\windows\syswow64\macromed\flash\mms.cfg



귀찮으면 그냥...
빠르고 좋은 크롬을 쓰시면 됩니다.  ㅎㅎ

2013년 8월 6일 화요일

[ORACLE] Tablespace Size Check

SELECT TABLESPACE_NAME ,
          ((EXTEND_BYTES/1024)/1024)||'M' EXT,
          ((USED_BYTES/1024)/1024)||'M' USED,
          ROUND(((USED_BYTES)/EXTEND_BYTES)*100,2) || '%' USE_RATE,
          ((FREE_BYTES/1024)/1024) FREE,
          ROUND((1-((USED_BYTES)/EXTEND_BYTES))*100,2) || '%' FREE_RATE
 FROM ( SELECT T1.TABLESPACE_NAME,
                      T1.EXTEND_BYTES,
                      T1.EXTEND_BYTES - T2.FREE_BYTES USED_BYTES,
                      T2.FREE_BYTES
            FROM ( SELECT TABLESPACE_NAME,
                                 SUM(BYTES) EXTEND_BYTES
                        FROM DBA_DATA_FILES
                      GROUP BY TABLESPACE_NAME ) T1,
                     (SELECT TABLESPACE_NAME,
                                SUM(BYTES) FREE_BYTES
                       FROM DBA_FREE_SPACE
                     GROUP BY TABLESPACE_NAME) T2
          WHERE T2.TABLESPACE_NAME = T1.TABLESPACE_NAME )
 ORDER BY TABLESPACE_NAME

SELECT A.TABLESPACE_NAME,
          ROUND(A.BYTES_ALLOC / 1024 / 1024, 2)||'M' CURRENT_SIZE,
          ROUND(NVL(B.BYTES_FREE, 0) / 1024 / 1024, 2)||'M' FREE_SIZE,
          ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) / 1024 / 1024, 2)||'M' USED_SIZE,
          ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2)||'M' FREE_RATE,
          100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2)||'M' USED_RATE,
          ROUND(MAXBYTES/1048576,2)||'M' MAX_SIZE
FROM ( SELECT F.TABLESPACE_NAME,
                     SUM(F.BYTES) BYTES_ALLOC,
                     SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES
          FROM DBA_DATA_FILES F 
         GROUP BY TABLESPACE_NAME) A,
         ( SELECT F.TABLESPACE_NAME,
                     SUM(F.BYTES) BYTES_FREE
            FROM DBA_FREE_SPACE F
           GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
UNION
SELECT TABLESPACE_NAME,
          ROUND(SUM(BYTES_USED + BYTES_FREE) / 1048576, 2),
          ROUND(SUM(BYTES_FREE) / 1048576,2),
          ROUND(SUM(BYTES_USED) / 1048576,2),
          ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) FREE_RATE,
          100 - ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) USED_RATE,
          ROUND(MAX(BYTES_USED + BYTES_FREE) / 1048576, 2)
 FROM SYS.V_$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME
ORDER BY 1;

* Tablespace 파일 위치 포함 보기
SELECT A.TABLESPACE_NAME                      Tablespace_name,
          A.FILE_NAME                                 File_path,
          ROUND((A.BYTES - NVL(B.FREE,0))/1024/1024,0)||'M'  Used_Size,
          ROUND(NVL(B.FREE,0)/1024/1024,0)||'M'                 Free_Size,
          ROUND(A.BYTES/1024/1024,0)||'M'                        Tot_Size,
          TO_CHAR( (NVL(B.FREE,0) / A.BYTES * 100) , '999.99')||'%'  Free_Size_Per,
          A.AUTOEXTENSIBLE
 FROM ( SELECT FILE_ID,
                      TABLESPACE_NAME,
                      FILE_NAME,
                      SUBSTR(FILE_NAME,1,200) FILE_NM,
                      AUTOEXTENSIBLE,
                      SUM(BYTES) BYTES
             FROM DBA_DATA_FILES
            GROUP BY FILE_ID,TABLESPACE_NAME,FILE_NAME,
                      SUBSTR(FILE_NAME,1,200),AUTOEXTENSIBLE ) A,
          ( SELECT TABLESPACE_NAME,
                      FILE_ID,
                      SUM(NVL(BYTES,0)) FREE
             FROM DBA_FREE_SPACE
            GROUP BY TABLESPACE_NAME,FILE_ID ) B
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME(+)
    AND A.FILE_ID = B.FILE_ID(+)
 ORDER BY A.TABLESPACE_NAME


*Tablespace AutoExtened 여부 확인
SELECT FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE
 FROM DBA_DATA_FILES
ORDER BY TABLESPACE_NAME



* Tablespace 확장
Alter TABLESPACE users
ADD DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\USERS03.DBF ' SIZE 2000M
AUTOEXTEND {ON|OFF};


* 이미 생성된 Tablespace에 auto extend On시
ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\USERS02.DBF'
AUTOEXTEND ON;