--숫자가 아니면 -1(단, '4.' 같은 경우는 0으로 표기)
CREATE OR REPLACE FUNCTION isDECIMALPOINT (p_num IN VARCHAR2) RETURN NUMBER 
AS 
l_tst NUMBER;
BEGIN
   l_tst := TO_NUMBER(p_num);
   if INSTR(p_num,'.')>0 then
       if SUBSTR(p_num,INSTR(p_num,'.')+1) is null then
        return 0;
       else 
        RETURN length(SUBSTR(p_num,INSTR(p_num,'.')+1));    
       end if;
   else
       RETURN 0;
   end if;
EXCEPTION
   WHEN OTHERS THEN
      RETURN -1;
END;
/

SELECT length('AABA') - length(replace('AABA', 'A', ''))  FROM DUAL

특정문자열을 빈값으로 치환하고 전체 길이에서 치환된 길이를 구한다.
아...머리를 굴려야 하는데....

출처:http://cafe.naver.com/litave.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=334&
SELECT LPAD(LEVEL,2,'0') MONTH FROM DUAL CONNECT BY LEVEL <= 12

필요시 JOIN해서 사용하기 위한 TABLE.

UPDATE A SET VALUE=(SELECT B.VALUE FROM B WHERE A.KEY=B.KEY) WHERE EXISTS (SELECT 'X' FROM B WHERE A.KEY=B.KEY)

A와 B의 키를 비교하여 B의 VALUE값으로 해당 컬럼의 A VALUE값 치환.
:'X'는 TRUE라는 의미(의미없음)

1. NLS_CHARACTER 확인 (한글 문제)
- select name , value$ from props$ where name like 'NLS%';
으로 import할 oracle의 NLS_CHARACTER확인
- update props$ set value$ = '확인된 NLS_CHARACTERSET' where name = 'NLS_CHARACTERSET'
export할 oracle의 NLS_CHARACTER을 import할 oracle의 NLS_CHARACTER으로 맞쳐준다.(단, 기존 데이터가 있을 경우는 형식이 틀려지기 때문에 하지 말 것.)
- 바꾼 후 반드시 Oracle 재시작.

2.export
- grant exp_full_database to ID;
(export 권한이 없는 경우)
- exp id/pw file="파일경로\파일명" full=y
(해당 유저의 datafile export)

3.tablespace 생성
- create tablespace tablespace명 datafile '경로/tabledspace명01.dbf' size 1024m reuse autoextend on next 10M maxsize 4096m
-
최대 용량 4G의 현재 기본 1G의 tablespace를 만든다.(꽉찰때마다 10M만큼 늘린다.)
- 웬만하면 export할 db와 동일 명칭으로 생성
-
기존 용량을 따져 미리 만들어놓는다.(4G를 최대로 하여 필요한 경우 02.dbf로 추가 생성)
- Oracle에서 최대 사이즈는 4G를 권장.

4.user생성
- create user ID identified by PWD default tablespace "tablespace명";
grant connect,resource,(dba), imp_full_database to ID;

5.import
- imp id/pw file="파일경로\파일명" fromuser='export한 user' touser='import할 user'

**기존에 DB가 있어 NLS_CHARACTERSET를 바꿀 수 없는 경우
- alter table TABLE_NAME modify (COLUMN_NAME DATATYPE SIZE);
으로 column크기를 늘려 import한다.

function chkDays(){
    var f = document.form;
    var year = f.year.value;
    var month = parseInt(f.month.value,10);
    var length = 0;
   
    if (month == 4 || month == 6 || month == 9 || month == 11) {
        length=30;
    }else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
        length=31;
    }else if ( (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0) ) {
        length=29;
    }else{
        length=28;
    }

    f.day.length = length;
    for ( var i = 1; i <= length; i++) {
        if(i<10){
            f.day.options[i - 1].text = "0"+i;
            f.day.options[i - 1].value = "0"+i;
        }
        else{
            f.day.options[i - 1].text = i;
            f.day.options[i - 1].value = i;
        }
    }
}

+ Recent posts