레이블이 SQL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 SQL인 게시물을 표시합니다. 모든 게시물 표시

2014/11/17

[SQL] VARCHAR 필드 숫자로 정렬 (SORT A VARCHAR2 FIELD AS A NUMERIC FIELD)


- 해당 필드에 숫자만 있는 경우
ORDER BY TO_NUMBER(FIELD);

- 해당 필드에 숫자 이외의 값도 있는 경우
ORDER BY LPAD(FIELD, 10);
// 10 == FIELD.length

 
 
출처 :
http://www.techonthenet.com/oracle/questions/sort1.php

2014/11/04

[SQL] 테이블 컬럼 카멜 표기법 변환기 (HTML)

<html>
<head>
<title>테이블 컬럼 카멜 표기법 변환기</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="
http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
    $(document).ready(function() {
        // default data
        var sample = ['USER_ID\n'];
        sample.push('ADDR_HOME_STREET\n');
        sample.push('YOU_LOVE_ME_SO_MUCH\n');
        $('#monkeyinput').text(sample.join(''));
        $('#code_basic').click();
    });

    function convert() {
        var input = $('#monkeyinput').val();
        var count = 0;
        var output1 = '';
        var output2 = '';

        var lines = input.split(/\n/);
        for(var i = 0, maxi = lines.length; i < maxi; i++) {
            var before = lines[i];
            before = $.trim(before.toLowerCase());

            // skip empty lines
            if(before == '') {
                continue;
            }

            // conversion
            var after = before.replace(/_(\w)/g, function(word) {
                return word.toUpperCase();
            });
            after = after.replace(/_/g, "");
            // console.log('\t' + before + ' ->> ' + after);

            // make result for each
            if($('#code_basic:checked').val()) {
                output1 += (after + '\n');
            }
            // Value Object
            else if($('#code_vo:checked').val()) {
                var modifier = $('#modifier option:selected').val();
                var datatype = $('#datatype option:selected').val();

                // hibernate annatation
                if(document.conf.hibernate.checked) {
                    output1 += (
'@Column(name = "' + before + '")\n' + modifier + ' ' + datatype + ' ' + after + ';\n\n');
                }
                else {
                    output1 += (modifier + ' ' + datatype + ' ' + after + ';\n');
                }
            }
            // ResultMap
            else if($('#code_resultmap:checked').val()) {
                output1 += ('\t<result property="' + after + '" column="' + before + '" />\n');
            }
            // Select
            else if($('#code_select:checked').val()) {
    before=before.toUpperCase();
                if(count == 0) {
                    output1 += (before + ' AS ' + after);
                }
                else {
                    output1 += (',\n\t' + before + ' AS ' + after);
                }

                if(count == 0) {
                    output2 += (before + ' = #{' + after + '}\n');
                }
                else {
                    output2 += ('AND\t' + before + ' = #{' + after + '}\n');
                }
            }
            // Insert
            else if($('#code_insert:checked').val()) {
                if(count == 0) {
                    output1 += (before);
                }
                else {
                    output1 += (', ' + before);
                }

                if(count == 0) {
                    output2 += ('#{' + after + '}');
                }
                else {
                    output2 += (', #{' + after + '}');
                }
            }
            // Update
            else if($('#code_update:checked').val()) {
                if(count == 0) {
                    output1 += (before + ' = #{' + after + '}#');
                }
                else {
                    output1 += (',\n\t' + before + ' = #{' + after + '}');
                }

                if(count == 0) {
                    output2 += (before + ' = #{' + after + '}\n');
                }
                else {
                    output2 += ('AND\t' + before + ' = #{' + after + '}\n');
                }
            }
            // Delete
            else if($('#code_delete:checked').val()) {
                if(count == 0) {
                    output1 += (before + ' = #{' + after + '}\n');
                }
                else {
                    output1 += ('AND\t' + before + ' = #{' + after + '}\n');
                }
            }
            else {
                output1 += (after + '\n');
            }
            count++;
        }

        var output = '';
        if($('#code_basic:checked').val()) {
            output = output1;
        }
        else if($('#code_vo:checked').val()) {
            output = output1;
        }
        else if($('#code_resultmap:checked').val()) {
            output = '<resultMap id="' + document.conf._id.value + '" class="' + document.conf._class.value + '">\n';
            output += output1;
            output += '</resultMap>';
        }
        else if($('#code_select:checked').val()) {
            output = 'SELECT\t';
            output += output1 + '\n';
            output += 'FROM\t' + getTableName() + ' \n';
            output += 'WHERE\t';
            output += output2;
        }
        else if($('#code_insert:checked').val()) {
            output = 'INSERT INTO ' + getTableName() + '(' + output1 + ') \n';
            output += 'VALUES(' + output2 + ')';
        }
        else if($('#code_update:checked').val()) {
            output = 'UPDATE\t' + getTableName() + ' \n';
            output += 'SET\t' + output1 + '\n';
            output += 'WHERE\t';
            output += output2;
        }
        else if($('#code_delete:checked').val()) {
            output = 'DELETE FROM ' + getTableName() + ' \n';
            output += 'WHERE\t';
            output += output1;
        }
        $('#monkeyoutput').text(output);
    }

    function getTableName() {
        var tableName = $('input[name=table]').val();
        if(tableName != '') {
            return tableName;
        }
        return '[table_name]';
    }

    function fillOptionBox() {
        var html = [];
        html.push('<p>');
        html.push('Table: <input id="table" type="text" name="table" onkeyup="convert();" />');
        html.push('</p>');
        $('#options').html(html.join(''));
        $('#table').focus();
        convert();
    }
</script>
</head>
<body>
 <h1>테이블 컬럼 카멜 표기법 변환기</h1>
 <p>이 프로그램을 통해 Underscore Notation으로 표기된 테이블 컬럼명을 Camel Notation으로
  변환된 자바 필드명으로 변경할 수 있다.</p>
 <h2>사용법</h2>
 <ol>
  <li>테이블정의서에서 복사한 컬럼명을 왼쪽 Textarea에 붙여넣는다.</li>
  <li>자동으로 Camel Notation으로 변경된 결과가 우측 Textarea에 표시된다.</li>
  <li>필요한 경우 여러가지 Conversion Style을 선택할 수 있다.
   <ul>
    <li>Basic: 기본적인 Camel Notation 변환만 수행</li>
    <li>VO: 자바의 필드 선언문으로 변환 (Hibernate Annotation도 추가로 지정 가능)</li>
    <li>ResultMap: iBatis에서 사용하는</li>
    <li>Select: iBatis에서 사용하는 select 쿼리문으로 변환</li>
    <li>Insert: iBatis에서 사용하는 insert 쿼리문으로 변환</li>
    <li>Update: iBatis에서 사용하는 update 쿼리문으로 변환</li>
    <li>Delete: iBatis에서 사용하는 delete 쿼리문으로 변환</li>
   </ul>
  </li>
  <li>우측 Textarea의 결과를 복사하여 필요한 곳에서 사용한다.</li>
 </ol>
 <form name="conf">
  <fieldset>
   <legend> Configurations </legend>
   <p>
    <strong>Conversion Style</strong> <br>
    <input id="code_basic" type="radio" name="code" checked />
    <label for="code_basic">Basic</label>&nbsp;
    <input id="code_vo" type="radio" name="code" />
    <label for="code_vo">VO</label>&nbsp; <input id="code_resultmap" type="radio" name="code" />
    <label for="code_resultmap">ResultMap</label>&nbsp;
    <input id="code_select" type="radio" name="code" />
    <label for="code_select">Select</label>&nbsp;
    <input id="code_insert" type="radio" name="code" />
    <label for="code_insert">Insert</label>&nbsp;
    <input id="code_update" type="radio" name="code" />
    <labelfor="code_update">Update</label>&nbsp;
    <input id="code_delete" type="radio" name="code" />
    <label for="code_delete">Delete</label>&nbsp;
    <script type="text/javascript">
                    $('#code_basic').click(function() {
                        $('#options').html('');
                        convert();
                    });
   
                    $('#code_vo').click(function() {
                        var html = [];
                        html.push('<p>');
                        html.push('<strong>Modifier Datatype</strong><br>');
                        html.push('<select id="modifier" onchange="convert();">');
                        html.push('    <option>public</option>');
                        html.push('    <option>protected</option>');
                        html.push('    <option selected>private</option>');
                        html.push('</select>');
                        html.push('<select id="datatype" onchange="convert();">');
                        html.push('    <option>int</option>');
                        html.push('    <option>long</option>');
                        html.push('    <option>float</option>');
                        html.push('    <option>double</option>');
                        html.push('    <option>byte[]</option>');
                        html.push('    <option>boolean</option>');
                        html.push('    <option>char</option>');
                        html.push('    <option selected>String</option>');
                        html.push('</select>');
                        html.push('</p>');
                        html.push('<p>');
                        html.push('<strong>Hibernate</strong><br>');
                        html.push('<input type="checkbox" name="hibernate" value="hibernate" id="hibernate" onclick="convert();" /><label for="hibernate">Use hibernate annotation</label>');
                        html.push('</p>');
                        $('#options').html(html.join(''));
                        convert();
                    });
   
                    $('#code_resultmap').click(function() {
                        var html = [];
                        html.push('<p>');
                        html.push('id: <input id="_id" type="text" name="id" onkeyup="convert();" />&nbsp;');
                        html.push('class: <input id="_class" type="text" name="class" onkeyup="convert();" />');
                        html.push('</p>');
                        $('#options').html(html.join(''));
                        $('#_id').focus();
                        convert();
                    });
   
                    $('#code_select').click(fillOptionBox);
                    $('#code_insert').click(fillOptionBox);
                    $('#code_update').click(fillOptionBox);
                    $('#code_delete').click(fillOptionBox);
                </script>
   </p>
   <div id="options"></div>
  </fieldset>
 </form>
 <br>
 <p>
  <textarea id="monkeyinput" class="camel" style="width: 48.5%; height: 50%;" onkeyup="convert();"></textarea>&nbsp;
  <textarea id="monkeyoutput" class="camel" style="width: 48.5%; height: 50%;" readonly></textarea>
 </p>
</body>
</html>

2014/11/03

[Toad] 토드 단축키 정리

 
테이블 정보 상세보기
F4 : Table, View, Proc, Funct, Package DESC(테이블명 위에 커서를 두고 F4)
 
자동완성
Ctrl+. : Table Completion (매칭되는 테이블목록 출력)
Ctrl+T : Columns Dropdown (해당테이블의 컬럼목록 표시)
 
SQL문 실행
F5 : SQL Editor내의 모든 SQL문 실행
Ctrl+Enter : 현재 커서의 SQL문 실행
F9 : SQL문 실행 후 Grid에 출력
 
히스토리(과거 수행SQL문 조회)
F8 : 과거에 실행한SQL HISTORY 목록
Alt+Up : History UP
Alt+Down : History DOWN
 
텍스트 대/소문자 변환
CTRL+L : 텍스트를 소문자로
CTRL+U : 텍스트를 대문자로
 
주석처리
Ctrl+B : 주석처리
Ctrl+Shift+B : 주석해제
 
편집 창 전환(이동)
F6 : SQL Editor와 결과창간의 이동
F2 : SQL Editor창 전체화면 전환
Shift+F2 : Grid Output창 전체화면 전환
 
기타 단축키
F7 : 화면을 모두 CLEAR
Ctrl+Shift+F : 쿼리문을 보기좋게 정렬
Ctrl+F9 : SQL Validate (SQL문을 수행하지 않음)

F1
Toad 도움말 파일의 SQL Editor 부분이 표시됩니다.
F2
전체 화면 Editor Editor/Results 패널 표시 장치 사이를 전환합니다.
<SHIFT>F2
전체 화면 그리드를 전환합니다.
F3
다음으로 일치하는 것을 찾습니다.
<SHIFT>F3
이전에 일치하는 것을 찾습니다.
F4
팝업 창의 테이블, , 프로시저, 함수, 또는 패키지를 설명합니다.
F5
스크립트로 실행합니다.
F6
커서를 Editor Results 패널 사이로 전환합니다.
F7
모든 텍스트를 지웁니다.
F8
이전 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).
F9
실행문을 실행합니다.
<CTRL>F9
실행(구문 분석) 없이 실행문을 검사합니다.
<SHIFT>F9
커서 위치에서 현재 실행문을 실행합니다.
F10
오른쪽 클릭 메뉴를 표시합니다.
F11
Script 같은  실행(=F5)
F12
편집기 내용을 지정된 외부 편집기로 전달합니다.
<CTRL>A
모든 텍스트를 선택합니다.
<CTRL>C
복사
<CTRL>D
프로시저 인수를 표시합니다.
<CTRL>E
현재 실행문에서 Explain Plan 실행합니다.
<CTRL>F
텍스트를 찾습니다(Find Text 창을 불러옵니다).
<CTRL>G
라인으로 이동합니다(Goto Line 창을 불러옵니다).
<CTRL>L
텍스트를 소문자로 변환합니다.
<CTRL>M
Make Code Statement
<CTRL>N
이름이 지정된 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).
<CTRL>O
텍스트 파일을 엽니다.
<CTRL>P
Strip Code Statement(쓸데없는 태그들을 정리해 줍니다. 유용함)
<CTRL>R
검색  바꾸기(Find and Replace Text 창을 불러옵니다)
<CTRL>S
파일을 저장합니다.
<SHIFT><CTRL>S
파일을 다른 이름으로 저장합니다.
<CTRL>T
 드롭다운을 표시합니다.
<CTRL>U
텍스트를 대문자로 변환합니다.
<CTRL>V
붙여넣기
<CTRL>X
잘라내기
<SHIFT><CTRL>Z
마지막으로 취소한 작업을 재실행합니다.
<ALT><UP>
이전 실행문을 표시합니다.
<ALT><DOWN>
다음 실행문을 표시합니다(<ALT><UP> 사용한  사용)
<ALT><PgUp>
이전 탭으로 이동
<ALT><PgDn>
다음 탭으로 이동
<CTRL><ALT><PgUp>
이전 결과 패널 탭으로 이동
<CTRL><ALT><PgDn>
다음 결과 패널 탭으로 이동
<CTRL><HOME>
데이터 그리드에서는  위의 레코드셋으로 이동하며, 결과 그리드에서는 커서가 위치한행의  번째 열로 이동하고, 편집기에서는 텍스트의  번째 열과  번째 행으로 이동합니다.
<CTRL><END>
데이터 그리드에서는 레코드셋의  끝으로 이동하며, 편집기에서는 텍스트의 마지막 열과 마지막 행으로 이동합니다.  단원의 "주의" 참조하십시오.
<CTRL><SPACE>
코드 완성 템플릿을 활성화합니다.
<CTRL><TAB>
MDI Child 창의 콜렉션을 순환합니다.
<CTRL><ENTER>
커서 이치에서 현재 SQL 문을 실행합니다.
<CTRL>. (마침표)
테이블 이름을 자동으로 완성합니다.




출처 :
http://unions5.tistory.com/39