반응형

ㅁ 패키지

패키지(package)는 오라클 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로지져와 함수들의 집합 이다.

 

  -> PL/SQL 프로시저란?

PL/SQL (Oracle’s Procedural Language extension to SQL) 은 SQL의 확장된 개념으로 ORACLE에서 지원하는 프로그래밍 언어의 특성을 수용한 SQL의 확장이며, PL/SQL Block내에서 SQL의 DML(데이터 조작어)문과 Query(검색어)문, 절차형 언어(if, loop)등을 사용하여 절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어

 

  -> 오라클의 함수란?

오라클에서 제공하는 내장 함수가 아닌 사용자가 직접 로직을 구현하는 사용자 정의 함수를 말한다.

우리가 보통 아는 함수의 개념이고, 오라클에서 사용 할 수 있도록 만드는 함수이다.

 

반응형

'IT > DB' 카테고리의 다른 글

[mysql] CONCAT과 IFNULL 사용  (0) 2019.07.10
text, CLOB 필드에 대해서 알아보자  (0) 2018.12.19
DB 오라클 기본 제공 함수  (0) 2018.12.18
반응형

[CONCAT]

둘 이상의 문자열을 입력한 순서대로 합쳐서 반환해주는 함수

 

사용법: CONCAT(문자열1, 문자열2 [, 문자열3 ...])

 

[IFNULL]

MYSQL 에서만 사용되는 NULL체크 함수

    -> MSSQL, ORACLE에서는 각 각 ISNULL, NVL 함수를 사용한다.

 

사용법: IFNULL(VAL1, VAL2)

    -> VAL1의 값이 NULL이면 VAL2를 리턴, 그렇지 않다면 VAL1의 값을 리턴

 

 

[사용예시]

select CONCAT(p.lvl_1, ' - ', p.lvl_2, ifnull(CONCAT(' - ', p.lvl_3), ''))
from t_npd_ctgr_info p
where p.ctgr_cd = '120400'

 

 

 

 

 

반응형

'IT > DB' 카테고리의 다른 글

[oracle] 패키지, PL/SQL, 함수 란?  (0) 2019.08.21
text, CLOB 필드에 대해서 알아보자  (0) 2018.12.19
DB 오라클 기본 제공 함수  (0) 2018.12.18
반응형

위지윅 에디터에서의 값을 저장 하기 위해 필드 타입을 TEXT 로 하였다.

하지만 에러가 발생하였고, 원인 분석 결과 

스크린샷을 그대로 복사해서 에디터에 붙여 넣게 되고, 그렇게 되면 스크린샷 그림 파일을 바이너리 형식 코드로 전부 변환해서 에디터에 붙여넣게 되고 그 길이는 그림파일의 크기랑 동일 시 된다.


애당초 에디터의 이미지 첨부 기능을 만들어놓았지만... 유저의 경우 아니 나라도 보통 복사 붙여넣기를 하지 이미지 첨부는 잘 하지 않게 된다. 


상황은 그러해서 TEXT 형식에 대해서 알아보기로 하였다.


TEXT 의 종류 다음과 같이 4종류가 있고

그 크기에 따라 구분이된다. 상황에 따라 구분하여 사용하면 되겠지만 아직 까지 TEXT 이상의 필드를 사용하는 것을 본적은 없다.


TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB



출처: http://sjpison.tistory.com/119 [비손의 블로그]





추가적으로 ORACLE에서는 CLOB을 사용했었는데 추가적으로 알아보자


https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/Data-Types.html#GUID-4570CDFD-8F91-44B9-BE7F-13076AA2AEBF


오라클 공식 문서를 확인해보면 


LOB 이라는 필드를 제공하며 이는 큰데이터를 담을 수 있다.

상황에 따라  CLOB, BLOB, NLOB 3가지로 사용 할 수 있으며 각 각의 


CLOB :  간단히 2기가 이하의 문자열을 저장에 적합


A CLOB (character large object) value can be up to 2,147,483,647 characters long. A CLOB is used to store unicode character-based data, such as large documents in any character set.




BLOB : 2기가 이하의 바이너리 코드 저장 에 적합


A BLOB (binary large object) is a varying-length binary string that can be up to 2,147,483,647 characters long. Like other binary types, BLOB strings are not associated with a code page. In addition, BLOB strings do not hold character data.




NLOB : 4기가 이하의 유니코드 저장에 적합


The NCLOB data type stores Unicode data. Both fixed-width and variable-width character sets are supported, and both use the national character set. NCLOB objects can store up to (4 gigabytes -1) * (the value of the CHUNK parameter of LOB storage) of character text data. 


참조

https://docs.oracle.com/javadb/10.8.3.0/ref/

https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/Data-Types.html#GUID-4570CDFD-8F91-44B9-BE7F-13076AA2AEBF



반응형

'IT > DB' 카테고리의 다른 글

[oracle] 패키지, PL/SQL, 함수 란?  (0) 2019.08.21
[mysql] CONCAT과 IFNULL 사용  (0) 2019.07.10
DB 오라클 기본 제공 함수  (0) 2018.12.18
반응형
오라클 내장 함수
※ []는 옵션 값
숫자함수
 - CEIL(n)
   -> 올림 처리한 정수값 반환
 - TRUNC(n1[, n2 ])
   ->n2 소수점 위치의 값을 잘라버리고 n1의 값을 반환
 - MOD(n2,n1)
   ->n2를 n1으로 나눈 나머지 값을 반환
문자함수
 - SUBSTR(char, position[, substring_length])
   ->문자열을 position 위치에서 substring_length길이만큼 반환
 - CONCAT(char1, char2)
   ->두 문자열을 결합하여 반환
   -> CONCAT를 중복으로 사용 가능 : CONCAT(CONCAT(char1, char2), char3) = char1char2char3
 - TRIM(trim_character FROM trim_source)
   -> 문자열 내 공백이나 특정 문자를 제거하고 반환
날짜함수   
 - ADD_MONTHS(date, integer)
   ->date에 integer만큼의 월을 더한 값을 반환
 - MONTHS_BETWEEN(date1, date2)
   -> date1과 date2 날짜 간의 차이를 월로 반환한다.
 - EXTRACT(YEAR || MONTH || DAY || HOUR || MINUTE || SECOND FROM datetime_value_expression)
   -> 연, 월, 일, 시간, 분, 초 등으로 추출하여 그 결과를 반환
기타함수
 - DECODE(EXPR, SEARCH, RESULT[, SEARCH, RESULT]~~[, DEAULT])
   ->IF 라고 생각 하면 됌, EXPR 의 값이 SEARCH일때 RESULT의 값을 반환
 - CASE EXPR
   WHEN 조건1 THEN 결과(조건1이 TRUE일 경우)
   WHEN 조건2 THEN 결과(조건2이 TRUE일 경우)
   END AS 'NAME'
   ->



반응형

'IT > DB' 카테고리의 다른 글

[oracle] 패키지, PL/SQL, 함수 란?  (0) 2019.08.21
[mysql] CONCAT과 IFNULL 사용  (0) 2019.07.10
text, CLOB 필드에 대해서 알아보자  (0) 2018.12.19

+ Recent posts