티스토리 툴바


posted by 한승우 hsw85 2009/03/13 16:59

1. 오라클의  변수선언방법
EX)
 P_nDataCnt :=  0;

2. SQL 의 '=' 은 ORACLE 의 INTO 와 같다.
EX)
 SELCT COUNT(*) INTO p_nDatacnt FROM BS_BOARD WHERE BOARDSEQ=P_BOARDSEQ;

3 SQL의 ISNULL() 은 ORACLE 의 NVL() 와 같다.
EX)
 SELECT NVL(MAX(BOARDSEQ), 0) + 1 INTO P_SeqMax FROM BS_BOARD;

4. SQL의 ROWNUMBER 은 ORACLE 의 ROWNUM 과 같다.
EX)
 SELECT AA.* , ROWNUM AS RNUM FROM .......

5. SQL 의 ELSE IF 는 ORACLE 의 ELSIF 와 같다.
EX)
 ELSIF P_METHOD = 'View1' THEN

6. ORACLE 의 %TYPE 와 같이 사용하면은  선언할 당시의 데이터타입을 알 필요가 없다
EX)
 P_BOARDMNGSEQ IN BS_BOARD_MNG.BOARDMNGSEQ%TYPE
 ( 매개변수 )                ( 테이블 )           ( 필드명 )         

7. ORACLE 의 데이터타입
CHAR : 1-2000 바이트
LONG : 1~2 기가바이트
LONG RAW : 1-2 기가바이트
RAW : 1-2000 바이트
VARCHAR2 : 1-2000 바이트
NCHAR : 1-2000 바이트
NVARCHAR : 1-4000 바이트
PLS_INTEGER , BINARY_INTEGER, BOOLEAN
NUMBER : 숫자 , 최대 38
CHAR

8. ORACLE 의 커서는 DATASET 에 담기위해서 사용하는것.
EX)
 선언부 : P_BS_BOARD_MNG_CS OUT TBL_CURSOR
 사용부 :  IF P_METHOD = 'Left_MNG_List' THEN
                    OPEN P_BS_BOARD_MNG_CS FOR
              SELECT A.BOARDMNGSEQ  FROM BS_BOARD_MNG A WHERE A.USEYN='Y';

.CS에서 사용법 :
OracleParameter[] Params = null;
Params = new OracleParameter[]
{
   new OracleParameter("P_BS_BOARD_MNG_CS" , OracleDbType.RefCursor)
};
Params[Params.Length-1].Direction = ParameterDirection.OutPut;


9. SQL 의 case 문은 ORACLE 에서 DECODE
EX)
 DECODE(P_REFBOARDSEQ, 0, P_BOARDSEQ, P_REFBOARDSEQ);
 :P_REFBOARDSEQ 가 0이면은 P_BOARDSEQ, 0이 아니면은 P_REFBOARDSEQ

10. SQL의 SUBSTRING() 은 ORACLE에서 SUBSTR
EX)
 SUBSTR(MENUID, 0, 2) = P_MENUID
 : MENUID 의 0자리에서 2자리까지가 P_MENUID 와 같다면..

11. SQL 의 CONVERT() 함수는 오라클에서는 TO_CHAR()
EX)
 SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') "SYS_DATE" FROM dual;
 : SYSDATE 를 "YYYY/MM/DD" 형식으로 SELECT 하고, "SYS_DATE" 는 AS 이구,
   SQL 의 PRINT 는 오라클의 dual 이런식으로 사용.
  SQL 에서는 SELECT CONVERT(VARCHAR, GETDATE(), 121) 이런식으로..
  (121 이라는 타입은 2009-03-04 10:50:59.657 이런식으로 보여주겠다는 뜻.)