• 일정 글자수 이상되면 ...처리

- 사용처
제목이 너무 길어 줄임 표시 해야 할 경우

- 사용예제
CheckMaxString("문장", 글자수 );

- 선언부
function CheckMaxString(obj, maxNum){               
          var li_str_len = obj.length;
          var li_byte = 0;
          var li_len = 0;
          var ls_one_char = "";
          var ls_str2 = "";
          for( var j=0; j<li_str_len; j++){
                    ls_one_char = obj.charAt(j);
                    if(escape(ls_one_char).length > 4 ) {
                              li_byte += 2;
                    }else{
                              li_byte++;
                    }
                    if(li_byte <= maxNum){
                              li_len = j+1;
                    }
          }
          if(li_byte > maxNum){
                    ls_str2 = obj.substr(0, li_len)+"...";
          }else{
                    ls_str2 = obj;
          }
          return ls_str2;
}






  • 숫자에 콤마 표시


- 사용처
금액 표시할 때

- 사용예제
addCommas(숫자);

- 선언부
function addCommas(num){
          return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g,',');

}






  • 사용중인 브라우저 판별

- 선언부

function getBrowserType(){     


    var _ua = navigator.userAgent;
    var rv = -1;    
    //IE 11,10,9,8
    var trident = _ua.match(/Trident\/(\d.\d)/i);
    if( trident != null ){
        if( trident[1] == "7.0" ) return rv = "IE" + 11;
        if( trident[1] == "6.0" ) return rv = "IE" + 10;
        if( trident[1] == "5.0" ) return rv = "IE" + 9;
        if( trident[1] == "4.0" ) return rv = "IE" + 8;
    }    
    //IE 7...
    if( navigator.appName == 'Microsoft Internet Explorer' ) return rv = "IE" + 7;
    //other
    var agt = _ua.toLowerCase();
    if (agt.indexOf("chrome") != -1) return 'Chrome';
    if (agt.indexOf("opera") != -1) return 'Opera';
    if (agt.indexOf("staroffice") != -1) return 'Star Office';
    if (agt.indexOf("webtv") != -1) return 'WebTV';
    if (agt.indexOf("beonex") != -1) return 'Beonex';
    if (agt.indexOf("chimera") != -1) return 'Chimera';
    if (agt.indexOf("netpositive") != -1) return 'NetPositive';
    if (agt.indexOf("phoenix") != -1) return 'Phoenix';
    if (agt.indexOf("firefox") != -1) return 'Firefox';
    if (agt.indexOf("safari") != -1) return 'Safari';
    if (agt.indexOf("skipstone") != -1) return 'SkipStone';
    if (agt.indexOf("netscape") != -1) return 'Netscape';
    if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';

}

- 출처 : 다른 블로그 ( 기억이... )









  • 아작스 함수

- 파라미터
url : 요청을 보낼 url
param : 쿼리 스트링과 같은 파라미터 값들
callback : 요청 성공시 실행될 콜백 함수

-선언부
function ajax2Json(url, param, callback) {
       var ajaxurl = url;
       var syn = true;      
              $.ajax({
                     url: ajaxurl,
                     async: syn,
                     type: "POST",   //POST , GET
                     data: param,
                     dataType: 'json' //json , xml
                //contentType: "application/json;charset=UTF-8",
              beforeSend: function () {
                     //요청 전 행동
              },
              complete: function () {
                     //요청 후 행동
              },
                     success: callback,
                     error: function (jqXHR, textStatus, errorThrown) {
                           //에러 시 행동
                     }
              });
}
사용 예제
ajax2Json("/context/url.do","name=aa&age=123",callbackName);
//콜백함수 선언부
function callbackName(data){
//data - 컨트롤러에서 리턴되는 값을 받아옴
}






  • 오늘 날짜 구하기

- 파라미터

형식 : "YYYYMMDD" , "YYYYMM" , "YYYY" , "YYMMDD" , "YYMM" , "YY" 

분리자 : "-" , "." , "/" , ""


- 예제

console.log(today("YYYY-MM-DD"));


- 선언부

function today(form){

   

    var date = new Date();


    var year  = date.getFullYear();

    var month = date.getMonth() + 1; // 0부터 시작하므로 1더함 

    var day   = date.getDate();


    //1자리 숫자인 경우 2자리로 만들어 줌

    if (("" + month).length == 1) { month = "0" + month; }

    if (("" + day).length   == 1) { day   = "0" + day;   }

    

    //분리자 설정

    var separator = "";

    

    if(form.split("-")[1]!=null){

    separator="-";

    form = form.replace(/-/gi, "");

    }else if(form.split("/")[1]!=null){

    separator="/";

    form = form.replace(/\//gi, "");

    }else if(form.split(".")[1]!=null){

    separator=".";

    form = form.replace(/\./gi, "");

    }else{

    separator="";

    }

    

    //폼 별 형식 설정 후 리턴

    switch(form){

    case "YYYYMMDD":

return "" + year + separator + month + separator + day ;

break;

    case "YYYYMM":

    return "" + year + separator + month;

    break;

    case "YYYY":

    return "" + year;

    break;

    case "YYMMDD":

return ("" + year).substring(2) + separator + month + separator + day ;

break;

    case "YYMM":

    return ("" + year).substring(2) + separator + month;

    break;

    case "YY":

    return ("" + year).substring(2);

    break;

    default:

    return "형식 지정이 잘못되었습니다.";

    break;

    }

}














지속적으로 수정중입니다. 피드백 환영합니다 !

■ Ctrl+F : 현재 파일에서 검색

 

 

■ Ctrl+H : 전체 파일에서 검색

왼쪽 아래 'Customize...' 버튼을 누르면

 

원하는 파일 종류를 선택할 수 있다.

 

 

Ctrl+Alt+S : SVN 서버와 로컬소스 동기화

SVN에 커밋이 필요한 파일, 업데이트가 필요한 파일, 갈등 생긴 파일 등을 확인할 수 있다.

 

 

■ Ctrl+Shift+C : 해당 라인 주석처리(드래그하면 여러 줄 가능, 주석에서 실행하면 주석해제)

주석처리 하고싶은 부분에 커서를 놓고 단축키를 누른다.

 

주석처리 된다. 주석처리가 된 부분에서 다시 단축키를 누르면 주석이 풀린다.

 

여러 줄을 한 번에 처리하고 싶은 경우에는 드래그로 영역을 지정하고 단축키를 누른다.

 

주석처리 되었다. 마찬가지로 여러 줄을 한 번에 주석해제 할 수 있다.

 

 

■ Alt+Shift+A : 다중 로우 편집 기능

단축키를 누른다.

 

글씨 크기가 줄어든다.

 

원하는 부분(수정이 필요한 부분)을 드래그한다. 여러 줄을 동시에 같은 내용으로 수정이 필요한 경우에 유용한 것 같다.

 

이런 식으로 변수형을 한꺼번에 변경하는 경우

 

글씨가 작은 상태일 때는 계속해서 다른 구역을 지정할 수 있다.

 

따옴표를 붙이거나 지울 때에도 유용하다.

 

다시 단축키를 누르면 원래 상태로 돌아온다.















덤프 익스포트 임포트


C:\> exp 권한이있는유저(스키마)/비밀번호 file=경로/덤프파일.dmp owner=익스포트할스키마
C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log

주의 )
익스포트시 테이블에 테이블스페이스가 지정되어 있을 경우 임포트할 데이터베이스에도 같은 이름의 테이블스페이스가 존재해야 임포트가 됨. 


덤프파일 임포트시 테이블스페이스 변경

C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log indexfile=index.sql 

1. 위처럼 임포트문을 실행시키면 실제 임포트가 되는 것이 아닌 테이블 생성 구문은 REM으로 주석 처리되고 index 생성 구문만 sql파일로 내려줍니다.

2. 해당 파일에서 REM으로 되어 있는 주석을 모두 풀어줍니다. ( REM이라는 단어 제거 )

3. 따옴표를 모두 제거합니다 ( “ ) 

4. ... row 라고 되어있는 건수 줄을 모두 제거합니다 ( 노가다. 비울 수 있는 테이블은 모두 비운 후 하는 것을 추천합니다. ) 

5. 테이블스페이스명을 모두 바꿀 테이블스페이스로 변경합니다. 해당 과정 진행 후 실행시키면 전체 테이블이 껍데기만 테이블스페이스가 바뀌어서 만들어 집니다. 그 후에 다시 해당 임포트문을 ignore=y를 붙여 진행합니다. ( 테이블이 미리 생성되어 있다는 오류 무시 )

C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log ignore=y 





펌프 익스포트 임포트

해당 directory에 대한 권한이 주는계졍/받는계정 둘다 존재해야 함.

SELECT * FROM all_directories;  -- 지정되어있는 전체 디렉토리 보기

GRANT READ, WRITE ON DIRECTORY 디렉토리명 TO 유저;  --해당 유저에 해당 이름의 디렉토리 권한 부여

C:\> expdp 권한이있는유저(스키마)/비밀번호 schemas=익스포트할스키마 directory=디렉토리명 dumpfile=펌프파일명.dmp logfile=로그파일명.log 

C:\> impdp 권한이있는유저(스키마)/비밀번호  directory=디렉토리명 dumpfile=펌프파일명.dmp logfile=로그파일명.log  REMAP_SCHEMA=이전스키마명:넣을스키마명
REMAP_TABLESPACE=이전테이블스페이스명:변경할테이블스페이스명




오라클 상위 버전에서 익스포트 -> 하위 버전으로 임포트 

오라클에서 11g의 클라이언트가 Export를 하면 10g에서는 이를 이용할 수 가 없다.

10g에서 Export한 것은 11g에서 Import하는데 문제가 없지만. 이럴 때는 단순 Export를 하지말고 데이터 펌프를 이용하면 하위버전에서 사용가능하도록 Export가 가능하다.

이는 10g이상에서만 사용 가능함.

방법 

위의 펌프 익스포트 뒤에 VERSION = 10.2 을 붙여 줌