BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
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          
77889 Visitors up to today!
Today 81 hit, Yesterday 46 hit
'PL/SQL'에 해당되는 글 6건
[폭주기관차, 2007/01/25 10:06, [DBMS]/Oracle]
사용법
LPAD( 출력내용, 표시할 자릿수, 채울내용 )


예제1)

SELECT LPAD(23, 8, 0) FROM DUAL;
 


LPAD(23,
--------
00000023

1 rows selected.


- 8자리 수를 맞추기 위하여 앞의 빈 공간은 0으로 채웠다.

예제2)

SELECT LPAD('TEST', 5, 'X') FROM DUAL;
 


LPAD(
-----
XTEST

1 rows selected.


- 5자리 수를 맞추기 위하여 앞의 빈 공간은 'X'로 채웠다.

예제3)

SELECT LPAD('TEST', 3, 'X') FROM DUAL;
 


LPA
---
TES

1 rows selected.


- 3자가 넘어가면 잘라버렸다.

참고 : 보라냥이님 블로그 원문 보기
Trackback Address :: http://kongmks.cafe24.com/trackback/55
Tracked from 폭주기관차의 비망록 | 2007/03/14 17:07 | DEL
LPAD ( 출력할 문자, 자릿수, 채울문자 ) RPAD ( 출력할 문자, 자릿수, 채울문자 )LPAD는 출력할 문자 왼쪽(Left)에 '채울문자'를 채워준다.RPAD는 출력할 문자 오른쪽(Right)에 '채울문자'를 채워준다.SELECT RPAD(TO_CHAR( 32 ), 10, '0') FROM DUAL;RPAD(TO_CH----------32000000001 rows selected.SE..
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/23 12:12, [DBMS]/Oracle]

출처 : 네이버 지식인 답변 글

- 데이터딕셔너리와 함께 Oracle에 의해 자동으로 생성되는 테이블 입니다.
- 모든 사용자는 DUAL이라는 이름으로 엑세스 할 수 있습니다.
- DUAL테이블은 VARCHAR2(1)으로 정의된 DUMMY라는 하나의 열이 있으며 값을 가지는 하나의 행도
   포함되어 있습니다.
- DUAL테이블은 사용자가 계산이나 사용자 함수등을 실행하고자 할 경우에 유용 합니다.

즉 아래와 같이 실행하면 flag라는 컬럼으로 1과 2로 된 두개의 row를 보여줍니다.


SELECT '1' flag FROM dual
UNION ALL
SELECT '2' flag FROM dual
 

Trackback Address :: http://kongmks.cafe24.com/trackback/44
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/23 11:22, [DBMS]/Oracle]

SQL : Structured Query Language의 약어로 쿼리를 실행하는 언어

PL/SQL
 - PL/SQL 은 Oracle's Procedural Language extension to SQL. 의 약자 입니다.
 - SQL 을 바탕으로 업무적인 비지니스로직 또는 제어를 위한 부가적인 언어입니다.
 - SQL문장에서 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR)등을 지원하며,
   오라클 자체에 내장되어 있는 Procedure Language입니다
 - DECLARE문을 이용하여 정의되며, 선언문의 사용은 선택 사항입니다. 
 - PL/SQL 문은 블록 구조로 되어 있고 PL/SQL 자신이 컴파일 엔진을 가지고 있습니다.

T-SQL(Transact-SQL)
 - MS에서 ANSI 표준 SQL에 약간의 기능을 더 추가해 보완해 만든 SQL서버를
   제어하기 위한 언어

사용자 삽입 이미지

PL/SQL과 T-SQL의 구조



즉, Oracle에 PL/SQL이 있다면 MS-SQL에는 T-SQL이 있다.

- SQL문과 PL-SQL문 차이 자세히 보기 -

참고
    네이버 지식인 답변 원문 글1
    네이버 지식인 답변 원문 글2
    네이버 지식인 답변 원문 글3
Trackback Address :: http://kongmks.cafe24.com/trackback/43
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/23 10:47, [DBMS]/Oracle]

DISTINCT
 


사용예 :

SELECT DISTINCT( Age ) FROM Test;
 
Trackback Address :: http://kongmks.cafe24.com/trackback/42
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/22 10:38, [DBMS]/Oracle]

SELECT * FROM Test;
의미 : Test테이블의 모든 컬럼을 출력하라.

--------------
One Two
--------------
30  40
50  60
70  80
--------------

SELECT One FROM Test;
의미 : Test테이블의 One컬럼만 보여준다.

-----
One
-----
30
50
70
-----

SELECT One PRINT FROM Test;
의미 : Test테이블의 One컬럼만 출력하는데, 출력 제목을 PRINT로 표시한다.

-----
PRINT
-----
30
5070
-----


SELECT One, Two TEST FROM Test;
의미 : Test테이블의 One과 Two컬럼을 출력하는데 Two컬럼 제목을 TEST로 표시한다.

--------------
One TEST
--------------
30  40
50  60
70  80
--------------

SELECT a.One, a.Two FROM Test a;
의미 : Test 테이블의 별명으로 a로 지정하였고, a테이블의 One, a테이블의 Two 컬럼을 출력한다.

--------------
One Two
--------------
30  40
50  60
70  80
--------------

SELECT * FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터를 출력하라.

--------------
One Two
--------------
50  60
--------------


SELECT COUNT(*) FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터들의 Count(갯수)를 출력하라.

--------------
COUNT(*)
--------------
1
--------------

SELECT COUNT(*) CNT FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터들의 Count(갯수)를 출력하는데 Count의 제목은 CNT로 하라.

--------------
CNT
--------------
1
--------------

Trackback Address :: http://kongmks.cafe24.com/trackback/34
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/19 14:20, [DBMS]/Oracle]

SET SERVEROUTPUT ON

BEGIN
        DBMS_OUTPUT.PUT_LINE( 'Hello. World.' );

        FOR i IN 1..10 LOOP
                DBMS_OUTPUT.PUT_LINE(i);
        END LOOP;
END;
/
 

참고 : 네이버 카페

SET SERVEROUTPUT ON  <--- 이건 server에 DMBS_OUTPUT명령어의 화면 출력을 하겠다는 의미
FOR 변수 IN 초기값..마지막값 LOOP 수행할 문장 END LOOP;
DBMS_OUTPUT.PUT_LINE( 수행할 Function 혹은 출력할 값 들 );      ==> 자동 개행을 한다.(C에서 \n 기능)
||   ==> 여러개 출력하고자 할 땐 DBMS_OUTPUT.PUT_LINE( 변수 || '글씨' || 변수 ); 이런식으로 해주면 된다.
--   ==> 주석
/    ==> 코드 수행

<실습 예제>

BEGIN
        FOR i IN (SELECT 100 abc, 30 bcd FROM DUAL UNION ALL SELECT 20, 50 FROM DUAL ) LOOP
                DBMS_OUTPUT.PUT_LINE( 'i.abc = ' || i.abc || ' i.bcd = ' || i.bcd );
        END LOOP;
END;
 

-- DUAL은 비어있는 계산용 Table

<실습 결과값>
i.abc = 100 i.bcd = 30
i.abc = 20 i.bcd = 50

PL/SQL procedure successfully completed.

Trackback Address :: http://kongmks.cafe24.com/trackback/17
Name
Password
Homepage
Secret
*1