2012년 3월 26일 월요일

[WordPress] WAMP 설치 및 초기세팅

  1. WAMP 설치
  2. WordPress 설치
  3. 윈도(xp)에서 설정해 줘야 할 것들
    1. 방화벽 포트열기
    2. httpd.conf 에서 allow for all 변경할 것
    3. 권한설정에서 'everyone' 모두 추가해서 하위 폴더까지 모두 읽을 수 있게 변경
    4. php 설정파일에서 allow for all 변경
  4. WordPress 설정
    1. 호스트 이름은 127.0.0.1로 하지 말고 지정할 것

[Oracle] DBMS Job 관리

Oracle 9i 기준

잡 추가

BEGIN
 DBMS_JOB.iSUBMIT (
   job => 341
  ,what => 'BEGIN PROCEDURE_NAME(to_char(sysdate-1,''YYYYMMDD''), '''',''SYSTEM''); END;'
  ,next_date => sysdate
  ,interval => 'TRUNC(SYSDATE+1)+23/24'
);
COMMIT;
END;
/
Next Date 업데이트

BEGIN DBMS_JOB.next_date(341, to_date('20120327 04:00','YYYYMMDD HH24:MI')); END;

Interval 업데이트

BEGIN DBMS_JOB.interval(342, 'trunc(sysdate+1)+3/24'); END;
  •  interval 은 다음 실행 시간을 지정해 준다.
  • 'trunc(sysdate+1)+3/24') 의미는 다음날 새벽 3시로 next date을 설정하라는 의미

2012년 3월 10일 토요일

[Python] 오늘 날짜 출력 예제

import os
import datetime

# get today and try to return as string
today = datetime.datetime.now()

print "Current year: %d" % today.year
print "Current year: %d" % today.month
print "Current year: %d" % today.day

month_str = str(today.month)
day_str = str(today.day)

# months manipulation
if len(month_str) == 1:
month_str = "0" + month_str
else:
month_str = month_str

# day manipulation
if len(day_str) == 1:
day_str = "0" + day_str
else:
day_str = day_str

today_str = str(today.year) + month_str + day_str
tm_str = str(today.year) + month_str

print today_str

2012년 3월 8일 목요일

[Oracle] function number to thai character

create or replace
FUNCTION FUNC_NUM2THAI (iAmount NUMBER)
RETURN VARCHAR2 AS
RtnValue VARCHAR2(300) := '';
vFloatVal NUMBER(15,2) := 0;
vIntVal NUMBER(25) := 0;
vDigit NUMBER(1) := 0;
vLetter1 VARCHAR2(50) := '';
vLetter2 VARCHAR2(50) := '';
vLength NUMBER(25) := 0;
vLength2 NUMBER(25) := 0;
vSubRtnVal1 VARCHAR2(300) := '';
vSubRtnVal2 VARCHAR2(300) := '';
iAmount2 NUMBER(15,2) :=0;
BEGIN
iAmount2 := iAmount;
-- check negative number --
IF iAmount2 < 0 THEN
iAmount2 := iAmount2*(-1);

END IF;

vFloatVal := REPLACE(iAmount2,',','')*100;
vIntVal := trunc(REPLACE(iAmount2,',',''))*100;
vFloatVal := vFloatVal - vIntVal;

IF vIntVal = 0 AND vFloatVal = 0 THEN
RETURN 'ศูนย์บาท';
END IF;

vLength := LENGTH(vIntVal/100);
FOR i IN 1..vLength LOOP
vLetter1 := '';
vDigit := SUBSTR(vIntVal/100,vLength-i+1,1);

IF vDigit = '1' AND i = 2 THEN
vLetter1 := 'สิบ';
ELSIF vDigit = '1' AND i = 1 THEN
IF SUBSTR(vIntVal/100,-2,1) <> '0' THEN
vLetter1 := 'เอ็ด';
ELSE
vLetter1 := 'หนึ่ง';
END IF;
ELSIF vDigit = '1' THEN
vLetter1 := 'หนึ่ง';
END IF;

IF vDigit = '2' AND i = 2 THEN
vLetter1 := 'ยี่สิบ';
-- ELSIF vDigit = '2' AND i = 1 THEN
-- IF SUBSTR(vIntVal/100,-2,1) <> '0' THEN
-- vLetter1 := 'เอ็ด';
-- ELSE
-- vLetter1 := 'สอง';
-- END IF;
ELSIF vDigit = '2' THEN
vLetter1 := 'สอง';
END IF;

IF vDigit = '3' AND i = 2 THEN
vLetter1 := 'สามสิบ';
ELSIF vDigit = '3' THEN
vLetter1 := 'สาม';
END IF;

IF vDigit = '4' AND i = 2 THEN
vLetter1 := 'สี่สิบ';
ELSIF vDigit = '4' THEN
vLetter1 := 'สี่';
END IF;

IF vDigit = '5' AND i = 2 THEN
vLetter1 := 'ห้าสิบ';
ELSIF vDigit = '5' THEN
vLetter1 := 'ห้า';
END IF;

IF vDigit = '6' AND i = 2 THEN
vLetter1 := 'หกสิบ';
ELSIF vDigit = '6' THEN
vLetter1 := 'หก';
END IF;

IF vDigit = '7' AND i = 2 THEN
vLetter1 := 'เจ็ดสิบ';
ELSIF vDigit = '7' THEN
vLetter1 := 'เจ็ด';
END IF;

IF vDigit = '8' AND i = 2 THEN
vLetter1 := 'แปดสิบ';
ELSIF vDigit = '8' THEN
vLetter1 := 'แปด';
END IF;

IF vDigit = '9' AND i = 2 THEN
vLetter1 := 'เก้าสิบ';
ELSIF vDigit = '9' THEN
vLetter1 := 'เก้า';
END IF;

IF vDigit = '0' THEN vLetter1 := NULL; END IF;

IF i = 3 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'ร้อย';
ELSIF i = 4 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'พัน';
ELSIF i = 5 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'หมื่น';
ELSIF i = 6 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'แสน';
ELSIF i = 7 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'ล้าน';
ELSIF i = 8 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || 'ล้าน';
END IF;

vSubRtnVal1 := vLetter1 || vSubRtnVal1;
END LOOP;

-- section for decimal point vFloatVal
vLength2 := LENGTH(vFloatVal);
FOR i IN 1..vLength2 LOOP
vLetter2 := '';
vDigit := SUBSTR(vFloatVal,vLength2-i+1,1);

IF vDigit = '1' AND i = 2 THEN
vLetter2 := 'สิบ';
ELSIF vDigit = '1' AND i = 1 THEN
IF SUBSTR(vFloatVal,-2,1) <> '0' THEN
vLetter2 := 'เอ็ด';
ELSE
vLetter2 := 'หนึ่ง';
END IF;
ELSIF vDigit = '1' THEN
vLetter2 := 'หนึ่ง';
END IF;

IF vDigit = '2' AND i = 2 THEN
vLetter2 := 'ยี่สิบ';
-- ELSIF vDigit = '2' AND i = 1 THEN
-- vLetter1 := 'สอง';
ELSIF vDigit = '2' THEN
vLetter2 := 'สอง';
END IF;

IF vDigit = '3' AND i = 2 THEN
vLetter2 := 'สามสิบ';
ELSIF vDigit = '3' THEN
vLetter2 := 'สาม';
END IF;

IF vDigit = '4' AND i = 2 THEN
vLetter2 := 'สี่สิบ';
ELSIF vDigit = '4' THEN
vLetter2 := 'สี่';
END IF;

IF vDigit = '5' AND i = 2 THEN
vLetter2 := 'ห้าสิบ';
ELSIF vDigit = '5' THEN
vLetter2 := 'ห้า';
END IF;

IF vDigit = '6' AND i = 2 THEN
vLetter2 := 'หกสิบ';
ELSIF vDigit = '6' THEN
vLetter2 := 'หก';
END IF;

IF vDigit = '7' AND i = 2 THEN
vLetter2 := 'เจ็ดสิบ';
ELSIF vDigit = '7' THEN
vLetter2 := 'เจ็ด';
END IF;

IF vDigit = '8' AND i = 2 THEN
vLetter2 := 'แปดสิบ';
ELSIF vDigit = '8' THEN
vLetter2 := 'แปด';
END IF;

IF vDigit = '9' AND i = 2 THEN
vLetter2 := 'เก้าสิบ';
ELSIF vDigit = '9' THEN
vLetter2 := 'เก้า';
END IF;

IF vDigit = '0' THEN vLetter2 := NULL; END IF;

vSubRtnVal2 := vLetter2 || vSubRtnVal2;
END LOOP;

IF vFloatVal = 0 THEN
RtnValue := vSubRtnVal1 || 'บาทถ้วน';
ELSIF vIntVal = 0 THEN
RtnValue := '-' || vSubRtnVal2 || 'สตางค์-';
ELSE
RtnValue := '-' || vSubRtnVal1 || 'บาท' || vSubRtnVal2 || 'สตางค์-';
END IF;

RETURN RtnValue;
END FUNC_NUM2THAI;

[Oracle] function number to english characters

create or replace
FUNCTION FUNC_NUM2ENG (iAmount NUMBER)
RETURN VARCHAR2 AS
RtnValue VARCHAR2(300) := '';
vFloatVal NUMBER(15,2) := 0;
vIntVal NUMBER(25) := 0;
vDigit NUMBER(1) := 0;
vLetter1 VARCHAR2(50) := '';
vLetter2 VARCHAR2(50) := '';
vLength NUMBER(25) := 0;
vLength2 NUMBER(25) := 0;
vSubRtnVal1 VARCHAR2(300) := '';
vSubRtnVal2 VARCHAR2(300) := '';
bLock_Digit Char(1) :='N';
iAmount2 NUMBER(15,2) :=0;
BEGIN

iAmount2 := iAmount;
-- check negative number --
IF iAmount2 < 0 THEN
iAmount2 := iAmount2*(-1);

END IF;

vFloatVal := REPLACE(iAmount2,',','')*100;
vIntVal := trunc(REPLACE(iAmount2,',',''))*100;
vFloatVal := vFloatVal - vIntVal;

IF vIntVal = 0 AND vFloatVal = 0 THEN
RETURN 'Zero Bath.-';
END IF;

vLength := LENGTH(vIntVal/100);
FOR i IN 1..vLength LOOP
vLetter1 := '';
vDigit := SUBSTR(vIntVal/100,vLength-i+1,1);

IF vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
bLock_Digit :='Y' ;
-- IF vDigit = '1' AND (i-1 = 1 OR i-1 = 4 OR i-1 = 7 ) THEN
-- vLetter2 := 'Ten';
-- ELSIF vDigit = '1' AND (i = 1 OR i = 4 OR i = 7 ) THEN
IF SUBSTR(vIntVal/100,-i+1,1) = '0' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Ten';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '1' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Eleven';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '2' AND vDigit = '1'AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Twelve';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '3' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Thirteen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '4' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Fourteen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '5' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Fifteen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '6' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Sixteen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '7' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Seventeen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '8' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Eighteen';
ELSIF SUBSTR(vIntVal/100,-i+1,1) = '9' AND vDigit = '1' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Nineteen';
END IF;
-- ELSIF vDigit = '1' THEN
-- vLetter1 := 'One';
-- END IF;
ELSIF vDigit = '1' AND SUBSTR(vIntVal/100,-i-1,1) = '1' AND (i = 1 OR i = 3 OR i = 4 OR i = 6 OR i = 7 OR i = 9) THEN
vLetter1 := 'One' ;
ELSIF vDigit = '1' AND SUBSTR(vIntVal/100,-i-1,1) is null THEN
vLetter1 := 'One' ||(SUBSTR(vIntVal/100,-i-1,1)) ;
ELSIF vDigit = '1' THEN
vLetter1 := 'One' ;
END IF;


IF vDigit = '2' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Twenty ';

ELSIF vDigit = '2' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Two';
ELSIF vDigit = '2' THEN
vLetter1 := 'Two';
END IF;

IF vDigit = '3' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Therty ';
ELSIF vDigit = '3' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Three';
ELSIF vDigit = '3' THEN
vLetter1 := 'Three';
END IF;

IF vDigit = '4' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Forty ';
ELSIF vDigit = '4' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Four';
ELSIF vDigit = '4' THEN
vLetter1 := 'Four';
END IF;

IF vDigit = '5' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Fifty ';
ELSIF vDigit = '5' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Five';
ELSIF vDigit = '5' THEN
vLetter1 := 'Five';
END IF;

IF vDigit = '6' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Sixty ';
ELSIF vDigit = '6' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Six';
ELSIF vDigit = '6' THEN
vLetter1 := 'Six';
END IF;

IF vDigit = '7' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Seventy ';
ELSIF vDigit = '7' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Seven ';
ELSIF vDigit = '7' THEN
vLetter1 := 'Seven ';
END IF;

IF vDigit = '8' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Eighty ';
ELSIF vDigit = '8' AND (SUBSTR(vIntVal/100,-i-1,1) <> '1' or SUBSTR(vIntVal/100,-i-1,1) is null) THEN
vLetter1 := 'Eight';
ELSIF vDigit = '8' THEN
vLetter1 := 'Eight';
END IF;

IF vDigit = '9' AND (i = 2 OR i = 5 OR i = 8 ) THEN
vLetter1 := 'Ninty ';
ELSIF vDigit = '9' AND SUBSTR(vIntVal/100,-i-1,1) <> '1' THEN
vLetter1 := 'Nine';
ELSIF vDigit = '9' THEN
vLetter1 := 'Nine';
END IF;

IF vDigit = '0' THEN vLetter1 := NULL; END IF;


IF i = 3 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || ' Hundred ';

-- IF i = 3 THEN
-- IF vDigit <> '0' THEN
-- IF MOD((vIntVal/100),100) >'0' THEN
-- vLetter1 := vLetter1 || ' Hundred And ';
-- ELSE
-- vLetter1 := vLetter1 || ' Hundred ';
-- END IF;
-- ELSIF MOD((vIntVal/100),100) >'0' THEN
-- vLetter1 := vLetter1 || ' And ';
-- END IF;


ELSIF i = 4 THEN
IF vDigit <> '0' THEN
vLetter1 := vLetter1 || ' Thousand ';
ELSIF (vIntVal/1000000) >= 1 AND (vIntVal/100000000) < 100 THEN
vLetter1 := vLetter1 || ' Thousand ';
END IF;

ELSIF i = 6 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || ' Hundred ';


ELSIF i = 7 THEN
IF vDigit <> '0' THEN
vLetter1 := vLetter1 || ' Million ';
ELSIF (vIntVal/1000000000) >= 1 AND (vIntVal/100000000000) < 100 THEN
vLetter1 := vLetter1 || ' Million ';
END IF;


ELSIF i = 9 AND vDigit <> '0' THEN
vLetter1 := vLetter1 || ' Hundred ';
END IF;

vSubRtnVal1 := vLetter1 || vSubRtnVal1 ;
END LOOP;

-- section for decimal point vFloatVal
vLength2 := LENGTH(vFloatVal);
FOR i IN 1..vLength2 LOOP
vLetter2 := '';
vDigit := SUBSTR(vFloatVal,vLength2-i+1,1);

IF vDigit = '1' AND i = 2 THEN
IF SUBSTR(vFloatVal,-1,1) =0 THEN
vLetter2 := 'Ten' ;
ELSIF SUBSTR(vFloatVal,-1,1) = '1' THEN
vLetter2 := 'Eleven';
ELSIF SUBSTR(vFloatVal,-1,1) = '2' THEN
vLetter2 := 'Twelve';
ELSIF SUBSTR(vFloatVal,-1,1) = '3' THEN
vLetter2 := 'Thirteen';
ELSIF SUBSTR(vFloatVal,-1,1) = '4' THEN
vLetter2 := 'Fourteen';
ELSIF SUBSTR(vFloatVal,-1,1) = '5' THEN
vLetter2 := 'Fifteen';
ELSIF SUBSTR(vFloatVal,-1,1) = '6' THEN
vLetter2 := 'Sixteen';
ELSIF SUBSTR(vFloatVal,-1,1) = '7' THEN
vLetter2 := 'Seventeen';
ELSIF SUBSTR(vFloatVal,-1,1) = '8' THEN
vLetter2 := 'Eighteen';
ELSIF SUBSTR(vFloatVal,-1,1) = '9' THEN
vLetter2 := 'Nineteen';
END IF;
ELSIF vDigit = '1' And i = 1 AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '1' THEN
vLetter2 := 'One';
END IF;


IF vDigit = '2' AND i = 2 THEN
vLetter2 := ' Twenty ';
ELSIF vDigit = '2' AND i = 2 AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '2' THEN
vLetter2 := 'Two';
END IF;

IF vDigit = '3' AND i = 2 THEN
vLetter2 := ' Thirty ';
ELSIF vDigit = '3' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '3' THEN
vLetter2 := 'Three';
END IF;

IF vDigit = '4' AND i = 2 THEN
vLetter2 := ' Forty ';
ELSIF vDigit = '4' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '4' THEN
vLetter2 := 'Four';
END IF;

IF vDigit = '5' AND i = 2 THEN
vLetter2 := ' Fifty ';
ELSIF vDigit = '5' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '5' THEN
vLetter2 := 'Five';
END IF;

IF vDigit = '6' AND i = 2 THEN
vLetter2 := ' Sixty ';
ELSIF vDigit = '6' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '6' THEN
vLetter2 := 'Six';
END IF;

IF vDigit = '7' AND i = 2 THEN
vLetter2 := ' Seventy ';
ELSIF vDigit = '7' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '7' THEN
vLetter2 := 'Seven';
END IF;


IF vDigit = '8' AND i = 2 THEN
vLetter2 := ' Eighty ';
ELSIF vDigit = '8' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '8' THEN
vLetter2 := 'Eight';
END IF;


IF vDigit = '9' AND i = 2 THEN
vLetter2 := ' Ninety ';
ELSIF vDigit = '9' AND SUBSTR(vFloatVal,-2,1) = 1 THEN
vLetter2 := '';
ELSIF vDigit = '9' THEN
vLetter2 := 'Nine';
END IF;


IF vDigit = '0' THEN vLetter2 := NULL; END IF;

vSubRtnVal2 := vLetter2 || vSubRtnVal2;
END LOOP;

IF vFloatVal = 0 THEN
RtnValue := vSubRtnVal1 || ' Bath Only';
ELSIF vIntVal = 0 THEN
RtnValue := '-' || vSubRtnVal2 || ' Satang-';
ELSE
RtnValue := '-' || vSubRtnVal1 || ' Bath ' || vSubRtnVal2 || ' Satang-';
END IF;

RETURN RtnValue;
END FUNC_NUM2ENG;