2013년 12월 23일 월요일
2013년 12월 11일 수요일
SAP 디비 링크 추가하기
[출처 : http://wiki.sdn.sap.com/ ]
- Added by spantaleoni, last edited by spantaleoni on Aug 25, 2011 (view change)
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.
Note: Insert the same TNSNames Alias into
file TNSNames.ora under Sap Profile Directory
(C:\usr\sap\<SID>\SYS\profile\oracle\ tnsnames.ora )
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
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) ) )
ADMINISTRATION STEPS
DBACOCKPIT Transaction -> DB Connections Tab -> Addhttp://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/ ]
■ Windows 및 Linux, Mac 가상 OS 무료로 다운로드 방법
마이크로소프트에서는 다양한 인터넷 익스플로러에서 크로스 브라우징 테스트를 하는 사이트를 운영하고 있습니다. 해당 사이트에서는 Windows 제품군에 이전 버전 인터넷 익스플로러가 설치된 가상 OS를 다운로드 받을 수 있도록 제공하고 있는데요. 해당 사이트에서 OS를 다운로드 받아 사용하기 위해서는 VMware나 VirtualBox, Parallels 등 가상 OS를 마운트에서 설치할 수 있는 프로그램이 필요합니다.
2. 크로스 브라우징 테스트도 할 수 있지만, 해당 링크로 이동하면 위 이미지와 같은 가상 시스템을 다운로드 할 수 있는 페이지로 이동하게 됩니다.
3. 원하는 테스트 OS 메뉴를 눌러 Windows 및 Mac, Linux 등 다운로드 할 OS를 선택해줍니다. Windows XP 버전을 다운로드 한 번 해볼께요!
5. OS 종류와 플랫폼을 선택하면 세부 OS 버전을 선택할 수 있습니다. 이 사이트에서 무료 다운로드를 제공하는 이유 중 하나가 IE 버전별 OS를 설치해 테스트를 쉽게 하라는 의미가 있는 것이라 IE6 부터 IE11까지 설치된 Windows XP와 Vista, Win7 등을 선택해 다운로드 할 수 있습니다.
6. 저는 IE8 이 설치된 Windows XP를 설치하기 위해 다운로드 해봤습니다. 다운로드 속도는 1기가 정도에 1분도 안걸릴 정도로 굉장히 빠르네요! (물론 사용자 인터넷 환경에 따라 다르겠죠~)
7. 실행 파일로 된 파일을 다운로드한 경우, 해당 파일 실행 시 위 이미지처럼 압축 해제하는 과정을 거칩니다.
10. 압축 해제한 가상 OS 폴더로 이동합니다. 자동으로 vmc 파일을 찾아주는데요. 이 파일을 그대로
VMware에서 사용할 수 없기 때문에 VMware vCenter Converter 프로그램으로 변환하는 과정을 거치게 됩니다.
11. VMware vCenter Converter Standalone 으로 변환 과정을 마치고 다시 VMware로 돌아와 [File] - [Open] 을 선택해주고 해당 파일을 다시 찾아 마운트 해주면 됩니다.
12. VMware에 내가 원하던 OS 환경이 리스트로 추가된 것을 확인할 수 있습니다. 이제 IE8가 설치된 Windows XP에서 테스트할 때는 이 가상 OS를 사용하면 되겠네요!
인터넷 익스플로러 8 외에는 아무것도 설치되지 않은 깨끗한 상태의 Windows XP가 실행되는 것을 확인할 수 있습니다. 클린 PC에서 프로그램 테스트를 해야 하는 경우, 매번 다양한 OS CD로 설치하는 과정을 거쳤는데, 마이크로소프트에서 운영하는 이 사이트에서 다운로드만 받으면 간단하게 마운트해서 사용할 수 있을 것 같습니다.
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] 을 선택합니다.
▲ 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.
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월 18일 월요일
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)
1. 바이두(baidu)
소개 : 중국의 구글이라 불리는 중국 대표 검색 포털 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 2TB
제한 : 업로드 최대 4GB
속도 : (웹기준) 다운로드 1MB/S 정도, 업로드 1MB/S 정도
특징 : 미디어 파일을 웹에서 별도 설치 없이 스트리밍 하는 것이 가능하다
한글파일을 다운받으면 파일명이 깨진다
추가 요금을 내고 15GB, 30GB, 50GB, 100GB 단위로 추가용량을 구입 할 수 있다
2. 텐센트(Tencent)
소개 : 야후나 네이버와 비슷한 성격의 종합 포털 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 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)
소개 : 안랩과 같은 보안 관련 서비스가 주력이며 최근 검색 포털 및 게임 서비스 분야로 확장 중인 업체
환경 : 윈도우, 웹, 안드로이드, 아이폰, 아이패드
용량 : 무제한 (자동 확장)
제한 : 업로드 최대 웹 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 시킨다.
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.
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.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
VALUE = CH.
ABAP에서 오라클 힌트 사용하기
SELECT *
FROM 테이블
WHERE 조건
%HINTS ORACLE 'INDEX(''테이블1'' ''인덱스명1'', ''테이블2'' ''인덱스명2'').
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을 삭제 처리 하면 된다.
② 실행 후 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;
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비트 버전에서 진행하였습니다.
기본적으로 Ubuntu에서 지원하는 apt를 가지고 설치를 할 수 있습니다.
apt 로 설치할 수 있는 항목은 openjdk입니다.
Ubuntu Desktop 버전에서는 우분투 소프트웨어 센터에서 UI 화면을 보면서 설치할 수 있습니다.
터미널에서는 아래와 같이 명령을 주면 됩니다.
openjdk 도 jdk 역할을 하지만, oracle에서 제공하는 jdk를 사용하는 분들은 아래와 같이 진행하면 됩니다.
apt-get 으로 oracle에서 제공하는 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
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer
하지만, 위의 방법보다 직접 해당 버전을 받아서 설치하길 원한다면 아래와 같이 진행하면 됩니다.
2013년 8월 31일 토요일
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
귀찮으면 그냥...
빠르고 좋은 크롬을 쓰시면 됩니다. ㅎㅎ
플래쉬 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;
((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;
피드 구독하기:
글 (Atom)