++An error was encountered performing the requested operation:++
++ORA-00604: error occurred at recursive SQL level 1++
++ORA-01882: timezone region not found++
++00604. 00000 - "error occurred at recursive SQL level %s"++
++*Cause: An error occurred while processing a recursive SQL statement++
++(a statement applying to internal dictionary tables).++
++*Action: If the situation described in the next error on the stack++
++can be corrected, do so; otherwise contact Oracle Support.++
++Vendor code 604++
JAVA VM 옵션에서 시간대 설정이 안되어있기 때문임
아래 파일에 아래 옵션을 추가해주면 된다.
file;
D:\oracle\sqldeveloper\ver3.1.07.42\sqldeveloper\bin\sqldeveloper.conf
java VM option;
AddVMOption -Duser.timezone="+07:00"
2012년 7월 24일 화요일
2012년 7월 7일 토요일
[Android] 안드로이드 앱에서 Activity label 제거
1. AndroidMenifest.xml 을 연다
2. Activity 에 다음 줄을 추가한다.
2. Activity 에 다음 줄을 추가한다.
android:theme="@android:style/Theme.NoTitleBar"
<activity android:name=".Activity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
[Git] Git 활용한 Android project 관리 ( Git + Eclipse + Android + Google Code)
여기서 정리해보려고 하는 것은
- 1. 안드로이드 프로젝트
- 2. 이클립스에서 개발
- 3. 구글 코드프로젝트를 사용
- 4. 버전관리 시스템으로는 Git
전체적인 순서는
- A1. 구글 코드에서 프로젝트 생성
- A2. 이클립스에서 EGit 플러그인 설치
- A3. Clone Git repository
- A4. 기존의 안드로이드 프로젝트를 Git Repository로 커밋
- A5. Push 로 전체 소스 업데이트
A1. 구글코드에서 프로젝트 생성
먼저 code.google.com 에서 android 프로젝트를 생성한다.
생성 시에는 버전관리 시스템을 Git로 선택한다.
그러면 다음과 같은 Git Repository 정보를 얻을 수 있다.
git clone https://[project name]@code.google.com/p/[project name] /
A2. 이클립스에서 EGit 플러그인 설치
A3. Clone Git repository
![]() |
그림1. code.google.com 에서 받은 repository URI 정보를 이클립스에 입력한다. |
![]() |
그림2. 브랜치를 선택한다. |
커밋하기 위해 기존의 프로젝트를 share project 한다.
![]() |
그림3. 기존의 안드로이드 프로젝트를 share project 한다. |
![]() |
그림4. 로컬저장소를 지정한다. |
![]() |
그림5. 프로젝트를 커밋한다. |
![]() |
그림6. 프로젝트를 Push 해서 소스코드를 업데이트한다. |
2012년 7월 4일 수요일
[jQuery] attr() 과 prop() 차이점
Attribute/Property | .attr() | .prop() | |
---|---|---|---|
accesskey | ✓ | ||
align | ✓ | ||
async | ✓ | ✓ | |
autofocus | ✓ | ✓ | |
checked | ✓ | ✓ | |
class | ✓ | ||
contenteditable | ✓ | ||
defaultValue | ✓ | ||
draggable | ✓ | ||
href | ✓ | ||
id | ✓ | ||
label | ✓ | ||
location * | ✓ | ✓ | |
multiple | ✓ | ✓ | |
nodeName | ✓ | ||
nodeType | ✓ | ||
readOnly | ✓ | ✓ | |
rel | ✓ | ||
selected | ✓ | ✓ | |
selectedIndex | ✓ | ||
src | ✓ | ||
style | ✓ | ||
tabindex | ✓ | ||
tagName | ✓ | ||
title | ✓ | ||
type | ✓ | ||
width ** | ✓ |
http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/ 에서 퍼옴
2012년 6월 30일 토요일
2012년 6월 29일 금요일
2012년 6월 17일 일요일
[Android] DB에서 데이터 가져와 스피너에 업데이트하기
// 디비에접속해서 데이터를 가져와 커서에 넣는다.
Cursor itemCursor = mDbHelperTable.fetchAllAvailTables();
// 안드로이드 특성상 앱/데이터의 life cycle을 지키기 위해 startmanagingcursor를 호출한다.
startManagingCursor(itemCursor);
Listlist = new ArrayList ();
// create the string array.
while(itemCursor.moveToNext()){
String eng = itemCursor.getString(0);
list.add(eng);
}
// 스피너 객체생성
Spinner s = (Spinner) findViewById(R.id.spinner_table);
ArrayAdapterdataAdapter = new ArrayAdapter (this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(dataAdapter);
[Android] adb로 sqlite 테이블 select 하기
안드로이드 앱 개발시 sqlite를 사용하면 DB는 다음 위치에 저장되게 된다.
/data/data//databases
예> #cd /data/data/com.android.project-name/databases
데이터베이스 이름을 확인하고 sqlite를 실행한다.
#sqlite3
sqlite 커맨드 프롬프트가 보이면 sql을 실행할 수 있다.
테이블을 셀렉트
sqlite>select * from table_name;
테이블 목록을 확인하는 명령어
sqlite>.tables
/data/data/
예> #cd /data/data/com.android.project-name/databases
데이터베이스 이름을 확인하고 sqlite를 실행한다.
#sqlite3
sqlite 커맨드 프롬프트가 보이면 sql을 실행할 수 있다.
테이블을 셀렉트
sqlite>select * from table_name;
테이블 목록을 확인하는 명령어
sqlite>.tables
2012년 3월 26일 월요일
[Oracle] DBMS Job 관리
Oracle 9i 기준
잡 추가
Interval 업데이트
잡 추가
BEGINNext Date 업데이트
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;
/
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
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;
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;
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;
2012년 2월 26일 일요일
[Python] Python 예외처리 예제
만약 프로그램에서 어떤 파일이 있는지 여부를 파악하고 만약 파일이 존재하지 않을때 예외처리를 하고 싶다면
try:
# check script file
vScriptFileName = "d:\\backup\\db\\201202"+xx+".bzs"
f = open(vScriptFileName,'r')
except IOError:
print("File Not Found exception" )
try:
# check script file
vScriptFileName = "d:\\backup\\db\\201202"+xx+".bzs"
f = open(vScriptFileName,'r')
except IOError:
print("File Not Found exception" )
2012년 2월 22일 수요일
[JAVA] 톰캣 구동 자바 명령어 에러 원인 확인방법
인터넷을 통해 찾아봤는데 쉽게 답을 얻을 수 없었던 문제
catalina.bat을 통해 생성된 톰캣 구동명령어를 실행 시 만약 문제가 생겨서 에러가 발생한다면 자바콘솔이 바로 닫혀버려서 에러를 확인할 수 없는 문제가 있는데 이때 확인 방법.
catalina.bat을 실행하면 마지막에 아래와 같은 자바명령어를 리턴하는데
start "Tomcat" "D:\Java\jdk1.6.0_14\jre\bin\java" -server -XX:+DisableExplicitGC ... org.apache.catalina.startup.Bootstrap start
이때 앞에 start "Tomcat"를 제거하고 실행하면 현재 화면에 그대로 에러까지 볼 수 있다.
참고로 start는 새창을 연다는 의미임
알고 있었다면 패쓰~!
catalina.bat을 통해 생성된 톰캣 구동명령어를 실행 시 만약 문제가 생겨서 에러가 발생한다면 자바콘솔이 바로 닫혀버려서 에러를 확인할 수 없는 문제가 있는데 이때 확인 방법.
catalina.bat을 실행하면 마지막에 아래와 같은 자바명령어를 리턴하는데
start "Tomcat" "D:\Java\jdk1.6.0_14\jre\bin\java" -server -XX:+DisableExplicitGC ... org.apache.catalina.startup.Bootstrap start
이때 앞에 start "Tomcat"를 제거하고 실행하면 현재 화면에 그대로 에러까지 볼 수 있다.
참고로 start는 새창을 연다는 의미임
알고 있었다면 패쓰~!
[JAVA] JVM 서버모드로 기동 시 윈도에서 확인할것
JVM의 클라이언트버전과 서버버전을 골라서 실행할 수 있다.
단 윈도 JRE를 설치하면 서버버전은 포함되어있지 않다.
윈도 SDK를 설치하면 서버버전은 포함되어있다.
간혹 SDK를 설치하였지만 JRE 또한 별도로 설치했고 JRE_HOME을 SDK를 지정하지 않아서 서버모드로 기동이 안되는 경우가 있다.
서버모드로 기동하는 방법(톰캣에서)
set JAVA_OPTS=%JAVA_OPTS% -server
확인하는 방법(서버모드로 기동되었는지)
String s = System.getProperty("java.vm.name");
System.out.println(s);
아래와 같이 표시되면 성공!
Java HotSpot(TM) Server VM
서버 모드와 클라이언트 모드와의 차이점이 알고 싶다면
http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#compiler_types
단 윈도 JRE를 설치하면 서버버전은 포함되어있지 않다.
윈도 SDK를 설치하면 서버버전은 포함되어있다.
간혹 SDK를 설치하였지만 JRE 또한 별도로 설치했고 JRE_HOME을 SDK를 지정하지 않아서 서버모드로 기동이 안되는 경우가 있다.
서버모드로 기동하는 방법(톰캣에서)
set JAVA_OPTS=%JAVA_OPTS% -server
확인하는 방법(서버모드로 기동되었는지)
String s = System.getProperty("java.vm.name");
System.out.println(s);
아래와 같이 표시되면 성공!
Java HotSpot(TM) Server VM
서버 모드와 클라이언트 모드와의 차이점이 알고 싶다면
http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#compiler_types
2012년 2월 6일 월요일
[Oracle] 점진 누적 합계
고객의 채권잔액 처럼 시간이 지나면서 변동되는 추이를 밸런스로 보여줄때 쓸 수 있다.
select msg_id, base_amt,
sum(base_amt) over(order by msg_id rows between unbounded preceding and current row)
from cdr_data ;
select msg_id, base_amt,
sum(base_amt) over(order by msg_id rows between unbounded preceding and current row)
from cdr_data ;
2012년 1월 17일 화요일
[Excel] 엑셀 함수안에서 두가지 이상 조건 걸기
만약 IF 함수안에서 A는 B보다 크면서 C보다도 큰경우를 만들고 싶다면
if(AND(AND(A>B),AND(A>C)), TRUE, FALSE)
if(AND(AND(A>B),AND(A>C)), TRUE, FALSE)
피드 구독하기:
글 (Atom)