Oracle 문법
페이지 정보
본문
1. 오라클의 변수선언방법
P_nDataCnt := 0;
2. SQL 의 '=' 은 ORACLE 의 INTO 와 같다.
SELCT COUNT(*) INTO p_nDatacnt FROM BS_BOARD WHERE BOARDSEQ=P_BOARDSEQ;
3 SQL의 ISNULL() 은 ORACLE 의 NVL() 와 같다.
SELECT NVL(MAX(BOARDSEQ), 0) + 1 INTO P_SeqMax FROM BS_BOARD;
4. SQL의 ROWNUMBER 은 ORACLE 의 ROWNUM 과 같다.
SELECT AA.* , ROWNUM AS RNUM FROM .......
5. SQL 의 ELSE IF 는 ORACLE 의 ELSIF 와 같다.
ELSIF P_METHOD = 'View1' THEN
6. ORACLE 의 %TYPE 와 같이 사용하면은 선언할 당시의 데이터타입을 알 필요가 없다
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 에 담기위해서 사용하는것.
선언부 : 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
DECODE(P_REFBOARDSEQ, 0, P_BOARDSEQ, P_REFBOARDSEQ);
:P_REFBOARDSEQ 가 0이면은 P_BOARDSEQ, 0이 아니면은 P_REFBOARDSEQ
10. SQL의 SUBSTRING() 은 ORACLE에서 SUBSTR
SUBSTR(MENUID, 0, 2) = P_MENUID
: MENUID 의 0자리에서 2자리까지가 P_MENUID 와 같다면..
11. SQL 의 CONVERT() 함수는 오라클에서는 TO_CHAR()
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 이런식으로 보여주겠다는 뜻.)
자료출처
http://hsw85.tistory.com/119
P_nDataCnt := 0;
2. SQL 의 '=' 은 ORACLE 의 INTO 와 같다.
SELCT COUNT(*) INTO p_nDatacnt FROM BS_BOARD WHERE BOARDSEQ=P_BOARDSEQ;
3 SQL의 ISNULL() 은 ORACLE 의 NVL() 와 같다.
SELECT NVL(MAX(BOARDSEQ), 0) + 1 INTO P_SeqMax FROM BS_BOARD;
4. SQL의 ROWNUMBER 은 ORACLE 의 ROWNUM 과 같다.
SELECT AA.* , ROWNUM AS RNUM FROM .......
5. SQL 의 ELSE IF 는 ORACLE 의 ELSIF 와 같다.
ELSIF P_METHOD = 'View1' THEN
6. ORACLE 의 %TYPE 와 같이 사용하면은 선언할 당시의 데이터타입을 알 필요가 없다
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 에 담기위해서 사용하는것.
선언부 : 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
DECODE(P_REFBOARDSEQ, 0, P_BOARDSEQ, P_REFBOARDSEQ);
:P_REFBOARDSEQ 가 0이면은 P_BOARDSEQ, 0이 아니면은 P_REFBOARDSEQ
10. SQL의 SUBSTRING() 은 ORACLE에서 SUBSTR
SUBSTR(MENUID, 0, 2) = P_MENUID
: MENUID 의 0자리에서 2자리까지가 P_MENUID 와 같다면..
11. SQL 의 CONVERT() 함수는 오라클에서는 TO_CHAR()
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 이런식으로 보여주겠다는 뜻.)
자료출처
http://hsw85.tistory.com/119
댓글목록
등록된 댓글이 없습니다.