블로그 이미지
프로그래밍을 위한 블러그
by 괴짐승

NOTICE

CALENDAR

«   2012/01   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
  • Total : 5,120
  • Today : 2  | Yesterday : 3

CATEGORY

분류 전체보기 (8)
Oracle (3)
Java (0)
Eclipse (1)
javascript (2)
tomcat (0)
windows (0)

RECENT COMMENT

RECENT TRACKBACK

ARCHIVE

LINK



// str은 0~9까지 숫자만 가능하다.
function checkNumber(str) {
    var flag=true;
    if (str.length > 0) {
        for (i = 0; i < str.length; i++) {
            if (str.charAt(i) < '0' || str.charAt(i) > '9') {
                flag=false;
            }
        }
    }
    return flag;
}

// str은 모두 소문자여야하고 첫글자는 영문이어야 한다. 영문과 0~9, -, _, ^는 허용한다.
function CheckChar(str) {
    strarr = new Array(str.length);
    var flag = true;
    for (i=0; i<str.length; i++) {
        strarr[i] = str.charAt(i)
        if (i==0) {
            if (!((strarr[i]>='a')&&(strarr[i]<='z'))) {
                flag = false;
            }
        } else {
            if (!((strarr[i]>='a')&&(strarr[i]<='z')||(strarr[i]>='0')&&(strarr[i]<='9')||(strarr[i]=='-')||(strarr[i]=='_')||(strarr[i]=='^'))) {
                flag = false;
            }
        }
    }
    if (flag) {
        return true;
    } else {
        return false;
    }
}

// str은 모두 영문소문자여야 한다.
function CheckChar2(str) {
    strarr = new Array(str.length);
    var flag = true;
    for (i=0; i<str.length; i++) {
        strarr[i] = str.charAt(i)
        if (!((strarr[i]>='a')&&(strarr[i]<='z'))) {
            flag = false;
        }
    }
    if (flag) {
        return true;
    } else {
        return false;
    }
}

// 이메일 체크
function CheckMail(strMail) {
   /** 체크사항
     - @가 2개이상일 경우
     - .이 붙어서 나오는 경우
     -  @.나  .@이 존재하는 경우
     - 맨처음이.인 경우
     - @이전에 하나이상의 문자가 있어야 함
     - @가 하나있어야 함
     - Domain명에 .이 하나 이상 있어야 함
     - Domain명의 마지막 문자는 영문자 2~4개이어야 함 **/

    var check1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;

    var check2 = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4})$/;
    
    if ( !check1.test(strMail) && check2.test(strMail) ) {
        return true;
    } else {
        return false;
    }
}

// str은 한글이어야만 한다.
function CheckHangul(str) {
    strarr = new Array(str.length);
    schar = new Array('/','.','>','<',',','?','}','{',' ','\\','|','(',')','+','=');
    flag = true;
    for (i=0; i<str.length; i++) {
        for (j=0; j<schar.length; j++) {
            if (schar[j] ==str.charAt(i)) {
                flag = false;
            }
        }
        strarr[i] = str.charAt(i)
        if ((strarr[i] >=0) && (strarr[i] <=9)) {
            flag = false;
        } else if ((strarr[i] >='a') && (strarr[i] <='z')) {
            flag = false;
        } else if ((strarr[i] >='A') && (strarr[i] <='Z')) {
            flag = false;
        } else if ((escape(strarr[i]) > '%60') && (escape(strarr[i]) <'%80') ) {
            flag = false;
        }
    }
    if (flag) {
        return true;
    } else {
        return false;
    }
    
}

 

Trackback 0 And Comment 0

//주민번호 자동 탭
 var isNN = (navigator.appName.indexOf("Netscape")!=-1);
 function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
   input.value = input.value.slice(0, len);
   input.form[(getIndex(input)+1) % input.form.length].focus();
  }
  function containsElement(arr, ele) {
   var found = false, index = 0;
   while(!found && index < arr.length)
   if(arr[index] == ele) 
   found = true; 
   else
   index++;
   return found;
  }
  function getIndex(input) {
   var index = -1, i = 0, found = false;
   while (i < input.form.length && index == -1)
   if (input.form[i] == input)index = i;
   else i++; 
   return index;
  }
  return true;
 }
//주민번호 유효성 체크
  function CheckJuminNo(reg1, reg2) { //주민번호 앞,뒤자리 받는다
  var strresidentid1 = reg1.value;
  var strresidentid2 = reg2.value;
  var strresidentid=strresidentid1+strresidentid2;
  var ck;

  if ( strresidentid1.length < 6) {
   alert ("주민등록번호 길이가 정확하지 않습니다.!!");
   document.write.st_strSsn1.focus();
   return false;
  }
 
  if ( strresidentid2.length < 7 ) {
   alert ("주민등록번호 길이가 정확하지 않습니다.!!");
   document.write.st_strSsn2.focus();
   return false;
  }
 
  var chk=0;
  for (var i=0;i<=5;i++){
   chk=chk+((i%8+2)*parseInt(strresidentid1.substring(i,i+1)));
  }
  for (var i=6;i<=11;i++){
   chk=chk+((i%8+2) *parseInt(strresidentid2.substring(i-6,i-5)));
  }
  chk=11-(chk%11);
  chk=chk%10;

  if (chk!=strresidentid2.substring(6,7)){
   alert("잘못된 주민등록번호입니다.");
   document.write.st_strSsn1.value="";
   document.write.st_strSsn2.value="";
   document.write.st_strSsn1.focus();
   return false;
  }
   
  var str19 = '19';
  var yy = strresidentid1.substr(0, 2); //년
  var mm = strresidentid1.substr(2, 2);//월
  var dd = strresidentid1.substr(4, 2);//일
  var yunyear;
  //윤년 2월의 날짜수 지정
  var stryy = str19 + yy; //19??년
  if ((stryy % 4 == 0) && (stryy % 100 != 0) || (stryy % 400 == 0))
   yunyear = 29;
  else
   yunyear = 28;

  //1~12 월
  if ((mm <= 0) || (mm > 12)) {
   alert("생년월일이 맞지 않습니다.");
   document.write.st_strSsn1.select();
   return false;
  }
  //마지막날이 31일인 월체크
  if ((mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12) && (dd > 31 || dd <= 0)) {
   alert("생년월일이 맞지 않습니다.");
   document.write.st_strSsn1.select();
   return false;
  }
  //마지막날이 30일인 월체크
  if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && (dd > 30 || dd <= 0)) {
   alert("생년월일이 맞지 않습니다.");
   document.write.st_strSsn1.select();
   return false;
  }
  //윤년의 경우 2월의 마지막날 체크
  if (mm == 2 && (dd > yunyear || dd <= 0)) {
   alert(stryy + "생년월일이 맞지 않습니다." + yunyear);
   document.write.st_strSsn1.select();
   return false;
  }
  //주민번호 뒤자리 1이나 2,2000년 이후출생자는 3,4
  var first=strresidentid2.substr(0,1);
  if (!((first== 1) || (first == 2) || (first== 3) || (first== 4))) {
   alert("주민등록번호 뒷자리의 시작은 1~4입니다.");
   document.write.st_strSsn2.select();
   return false;
  }
  var tmpname="주민번호";
  //숫자인지 체크  
  var flag=isNum(strresidentid,tmpname);
  if (flag==false){
   document.write.st_strSsn1.value="";
   document.write.st_strSsn2.value="";
   document.write.st_strSsn1.focus();
   return;
  }
 }//CheckJuminNo끝



//주민번호 체크 로직
function CheckSocialNo(socialno)
{
    var i;
    var val0, val1, val2, val3, val4, val5, val6, val7, val8, val9, val10, val11, val12;
    var sum, checkno;

    if (socialno.length != 13)
        return false;

    for (i = 0; i < 13; i++) {
        if ((socialno.charAt(i) < '0') || (socialno.charAt(i) > '9'))
            return false;
    }

    if ((socialno.charAt(6) < '1') || (socialno.charAt(6) > '4'))
        return false;

    month = parseInt(socialno.charAt(2))*10 + parseInt(socialno.charAt(3))
    day = parseInt(socialno.charAt(4))*10 + parseInt(socialno.charAt(5))
    if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12)) {
        if ((day < 0) || (day > 31))
            return false;
    }
    if ((month == 2)) {
        if ((day < 0) || (day > 29))
            return false;
    }
    if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
        if ((day < 0) || (day > 30))
            return false;
    }

    val0  = parseInt(socialno.charAt(0)) * 2;
    val1  = parseInt(socialno.charAt(1)) * 3;
    val2  = parseInt(socialno.charAt(2)) * 4;
    val3  = parseInt(socialno.charAt(3)) * 5;
    val4  = parseInt(socialno.charAt(4)) * 6;
    val5  = parseInt(socialno.charAt(5)) * 7;
    val6  = parseInt(socialno.charAt(6)) * 8;
    val7  = parseInt(socialno.charAt(7)) * 9;
    val8  = parseInt(socialno.charAt(8)) * 2;
    val9  = parseInt(socialno.charAt(9)) * 3;
    val10  = parseInt(socialno.charAt(10)) * 4;
    val11  = parseInt(socialno.charAt(11)) * 5;
    val12  = parseInt(socialno.charAt(12));

    sum = val0 + val1 + val2 + val3 + val4 + val5 + val6 + val7 + val8 + val9 + val10 + val11;

    checkno = (11 - (sum % 11)) % 10;
    if (checkno == val12) {
        return true;
    }
    else {
        return false;
    }
}

 
Trackback 0 And Comment 0
ALTER TABLESPACE (계정명) ADD DATAFILE 'C:\oratest\SOSORI2_1.DBF' SIZE 5M;

C:\oratest\SOSORI2_1.DBF 파일 생성 기존에 sosori.dbf 파일이 꽉 찾기 때문에
sosori2_1.dbf 라고 따로 생성해준다
Trackback 0 And Comment 0

select sequence_name from user_sequences;

drop sequence seq_시퀀스명;

create sequence seq_시퀀스명 increment by 1 start with 1;

Trackback 0 And Comment 0

--------------------------------------------------------------------------------

1.아래의 사이트에서 우편번호 파일을 다운로드 받은 후,

엑셀에서 열고  다시 CSV파일로 변환 저장한다.(파일명-POST.CSV)

---------------------------------------------------------------------------------

   http://www.postman.pe.kr/zipcode/index.html

  


---------------------------------------------------------------------------------

2.컨트롤 파일을 아래와 같이 작성 한 후,  원하는 폴더에 파일명은 POST.CTL 저장한다.

---------------------------------------------------------------------------------

load data
infile 'post.csv'
insert into table post
fields terminated by ','
(zipcode,sido,gugun,dong,bunji,seq)


---------------------------------------------------------------------------------

3.POST 테이블을 생성한다.

---------------------------------------------------------------------------------

CREATE TABLE POST(

zipcode varchar2(10)

,sido varchar2(50)

,gugun varchar2(100)

,dong varchar2(100)

,bunji varchar2(50)

,seq number

,primary key(seq)

)


---------------------------------------------------------------------------------

4.DOS 콘솔에서 SQLLDR 명령어로 SQL로더 프로그램을 수행시킨다.

---------------------------------------------------------------------------------

  SQLLDR USERID=아이디/패스 CONTROL='POST.CTL' DATA='POST.CSV'


---------------------------------------------------------------------------------

5.만일 입력이 수행되다가 중단되면 테이블스페이스의 용량때문일 수 있는데, 

이때는 다음과 같이 데이터베이스 파일 사이즈를  변경시킨다.

---------------------------------------------------------------------------------

   ALTER DATABASE

   DATAFILE 'DBF의 물리적 하드경로'   RESIZE  변경할 크기(숫자) 

Trackback 0 And Comment 0

[출처] 자바놀이터 cafe.naver.com/sikurah

$sqlplus /nolog
sql>connect / as sysdba
sql>create user user1 identifed by user1passwd default tablespace user temporary tablespace temp;
sql>grant connect,resource to user1;


▩ Oracle Setting
---------------------------------------------------------------------------
1. 오라클 계정 설정 전체 작업

※C:\oracle\data\200703 폴더는 미리 만들어야 합니다.

-- 테이블 스페이스 생성
   CREATE TABLESPACE 테이블스페이스이름
   DATAFILE 'C:\oracle\data\200703\TS_ojt_03_239.dbs' size 20M
   DEFAULT STORAGE (initial 128k next 64k pctincrease 10);


-- 테이블 스페이스 자동 증가 생성

    CREATE TABLESPACE auto_seg_ts
    DATAFILE 'C:\ORADATA\auto_seg_ts.dbf' SIZE 1M 
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO ;


-- 테이블 스페이스 목록
   SELECT tablespace_name, status, contents
   FROM dba_tablespaces
   WHERE tablespace_name LIKE '테이블스페이스이름%'
   ORDER BY tablespace_name;

-- 사용자 생성
   CREATE USER 사용자이름 IDENTIFIED BY 비밀번호
   DEFAULT TABLESPACE 테이블스페이스이름
   TEMPORARY TABLESPACE temp;

-- 등록된 계정 목록 보기
   SELECT username, user_id FROM dba_users
   WHERE username LIKE '사용자이름%' ORDER BY username;

-- 권한 주기
   GRANT connect, resource TO 사용자이름;


※  Oracle 설정 참고

1. 테이블 스페이스 생성
   - 테이블 스페이스 생성시 "C:\oracle\data\200703" 폴더는 미리 만들어야 합니다.

   CREATE TABLESPACE 테이블스페이스이름

   DATAFILE 'C:\oracle\data\200703\TS_ojt_03_239.dbs' size 20M
   DEFAULT STORAGE (initial 128k next 64k pctincrease 10);


2. 테이블 스페이스 목록 보기

   SELECT tablespace_name, status, contents
   FROM dba_tablespaces
   WHERE tablespace_name LIKE '테이블스페이스이름%'
   ORDER BY tablespace_name;


3. 테이블 스페이스의 사용 가능한 공간 보기
   SELECT tablespace_name, bytes, blocks
   FROM dba_free_space

   ORDER BY tablespace_name;


4. TableSpace의 삭제 : DROP TABLESPACE 테이블스페이스이름;
   - 테이블 스페이스를 삭제해도 하드디스크상에 데이터 파일은 남아 있음으로
     "D:\oracledata\200601" 상에서도 파일을 삭제해야 합니다.

   ALTER TABLESPACE 테이블스페이스이름 OFFLINE;
   DROP TABLESPACE 테이블스페이스이름 INCLUDING CONTENTS AND DATAFILES;

   SELECT tablespace_name, status, contents FROM dba_tablespaces ORDER BY tablespace_name;


5. 사용자 계정 생성 및 권한 지정
   - 계정의 종류
     . SYS: 오라클 데이터베이스 관리자
     . SYSTEM: 오라클 데이터베이스 관리자, 모든 권한이 SYS와 같으나 데이터베이스 생성 권한 없음
     . SCOTT, HR: SAMPLE 사용자 계정

   - 계정의 생성
     CREATE USER 사용자이름 IDENTIFIED BY 비밀번호
     DEFAULT TABLESPACE 테이블스페이스이름
     TEMPORARY TABLESPACE temp;


6. 등록된 계정 목록 보기
   SELECT username, user_id FROM dba_users
   WHERE username LIKE '사용자이름%' ORDER BY username;


7. 사용자 삭제
   DROP USER 사용자이름


8. 권한 주기
   - connect : 접속, 쿼리 실행, 테이블 생성
   - resource : view, stored Procedure 등 서버의 자원을 만들고 쓸수 있는 권한

   GRANT connect, resource TO 사용자이름;


#Oracle system 계정---------------------------------------------

SELECT * FROM tab;

--테이블 스페이스 생성(시 C:\oracle\data\200703 폴더는 미리 만들어야 합니다.)
CREATE TABLESPACE 테이블스페이스이름
DATAFILE 'C:\oracle\data\200703\TS_ojt_03_232.dbs' size 20M
DEFAULT STORAGE (initial 128k next 64k pctincrease 10);


--테이블 스페이스 목록
SELECT tablespace_name, status, contents
FROM dba_tablespaces
WHERE tablespace_name LIKE '테이블스페이스이름%'
ORDER BY tablespace_name;


--테이블 스페이스의 삭제, 파일은 탐색기에서 직접 삭제
DROP TABLESPACE 테이블스페이스이름;


--계정의 생성
CREATE USER ojt_03_232 IDENTIFIED BY oracle
DEFAULT TABLESPACE 테이블스페이스이름
TEMPORARY TABLESPACE temp;


--등록된 계정 목록 보기, 대문자(OJT_03)
SELECT username, user_id FROM dba_users
WHERE username LIKE '사용자이름%' ORDER BY username;


--권한주기
GRANT connect, resource TO 사용자이름;


--사용자 삭제
DROP USER 사용자이름;

 
Trackback 0 And Comment 0
사용자 삽입 이미지

처음실행할때 이런 에러가 발생하시면
eclipse설치 폴더에서 eclipse.ini파일을 수정하시면 됩니다.
========================================================

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize256M
-vmargs
-Dosgi.requireJavaVersion=1.5
-Xms40m
-Xms512m
위에 빨간색 표시 부분을 삭제하시고 다시 저장한뒤, eclipse를 실행하시면 됩니다.

Trackback 0 And Comment 0

오라클 한글깨짐 문제 처리법입니다.
원인은 오라클의 서버와 클라이언트간의 NLS_LANG설정문제 때문입니다.
이것을 일치시켜 주어야 하는데.

Step by Step.
시작 -> 실행
regedit으로 레지스트리 편집기를 열고, " HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ "의 하위 폴더에보면 자신의 오라클베이스폴더가 있습니다. 그것을 클릭해보면 NLS_LANG키가 있는데. 키값을 KOREAN_KOREA.KO16MSWIN949 KOREAN_KOREA.KO16KSC5601 로 바꿔줍니다.
레지스트리편집기를 끈후 다시 시작 -> 실행
cmd로 커맨드입력창을 하나 띄웁니다.
sqlplus /nolog
conn /as sysdba;
update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';
commit;
shutdown immediate;(데이터베이스를 언마운트 하는작업이라 시간이 걸립니다.)
startup;
하시고 해당 테이블을 조회해 보시면 됩니다.
참고로 조회했는데 한글이 역시나 깨져보인다면 리부팅은 센스!!! 100% 해결될 것입니다.

// JSP에서의 JDBC연동을 통한 컬럼값 (주석처리 ㅋㅋ)
// 참고하세요!! KOREAN_KOREA.KO16KSC5601의 nls_lang 설정값은 완성형 문자코드가 아니면 저장이 되질 않습니다. 그리고 입력할 수 있는 문자열 길이가 짧아 향후 사용자제해야 할 캐릭터 셋이라고 합니다. 위 코드의 슈퍼셋인 KO16MSWIN949를 사용하시면 아무 문제없이 사용하실수 있습니다. 리눅스에서는 안됩니다. 리눅스에서는 아쉽게도 위의 코드셋을 쓰세요.
- 완성형 문자코드란?
일반적으로 쓰는 정상의 문자열로써, 비완성형 문자코드는
뷁뿕뽏햏햏 같은 기존의 한글조합이아닌 값을 말합니다.
고로 위와같은 글자들을 다 인식할 수 있는 것을 써야 하겠죠?
출처:http://blog.naver.com/fafoyoum?Redirect=Log&logNo=70021582158

Trackback 0 And Comment 0