오라클 버전 확인 쿼리 오라클 함수를 사용하기 위해 오라클 버전을 확인해야 하는 경우가 있다. 아래의 쿼리문을 사용하여 오라클 버전을 확인하면 된다. 첫 번째 방법 SELECT * FROM PRODUCT_COMPONENT_VERSION 두 번째 방법 SELECT * FROM v$version
오라클 조회 시 컬럼명 별칭(Alias) 대소문자 적용 방법 오라클에서 데이터 조회시 컬럼 별칭을 대소문자를 구분하여 쿼리문을 작성해도조회결과의 컬럼명은 모두 대문자로 변경이 된다. 컬럼명에 지정한 별칭 그대로 결과에 표시 되도록 하기 위해서는 별칭을 쌍따옴표("")로 감싸주면 된다. 쌍따옴표를 사용하면 대소문자도 구분가능하며 한글로 별칭을 부여할 수 있다.
오라클에서 수치값의 음수 부호를 제거하고 절댓값을 구하기 위해서는 ABS 함수를 사용하면 된다. 절댓값은 수치값의 부호를 뺀 값을 의미한다. 양수는 부호가 없기 때문에 그대로 출력되고 음수는 마이너스(빼기) 부호를 제거한 값이 출력된다. 절댓값 함수 : ABS("숫자") SELECT -10 AS result1 , ABS(-10) AS result2 FROM dual 절댓값 함수를 사용하면 음수 부호를 없애고 값을 반환하는 것을 확인할 수 있다. SELECT ABS(10) , ABS(12.5) , ABS(0) , ABS(-10) , ABS(-12.5) FROM dual 양수와 0은 그대로 출력되고 음수는 부호가 제거된 값이 출력되는 것을 확인할 수 있다.
오라클 IN 파라미터 최대 개수 오라클에서 IN을 사용하면서 항상 최대 몇개까지 파라미터를 넣을수 있는지 궁금 했다. 간단히 임시 날짜 테이블을 생성해서 테스트한 결과 최대 1000까지 가능하다. 파리미터 개수 초과 시 해당 에러가 발생한다. "ORA-01795: 목록에 지정 가능한 식의 최대수는 1000 입니다" 텍스트 파라미터는 1000개 최대 이지만 서브쿼리로 IN 파리미터를 넣으면 무한정 가능하다 SELECT * FROM TEMP_DATE WHERE YYYYMMDD IN ( SELECT AA.CODE FROM CODET AA )
오라클 파티션 테이블 조회 방법 파티션 테이블로 생성이 되어 있으면 파티션을 지정하여 조회를 하면 아주 빠르게 데이터를 조회할 수 있다. 파티션 기준 컬럼 잘 확인하여 원하는 데이터가 해당 기준 컬럼의 조건에 해당 되는지 확인후 파티션을 지정하여 조회하면 된다. SELECT * FROM 테이블명 PARTITION (파티션명) --파티션 테이블 조회 SELECT * FROM ACIPCATT PARTITION (ACIPCATT_2017) WHERE MEDDATE BETWEEN TO_DATE('20170101','YYYYMMDD') AND TO_DATE('20170131','YYYYMMDD') ; --파티션 테이블 키 컬럼 조회 SELECT * FROM ALL_PART_KEY_COLUMNS WHERE NAME..
내국인/외국인 주민등록번호 유효성 검사 개인정보법이 개정되어 주민등록번호 저장 시 암호화하여 저장해야 한다. 암호화되지 않은 주민등록번호가 있을시 불이익을 당할수 있으므로 해당 데이터를 삭제하거나 DB 컬럼을 암호화 해야한다. 주민등록번호와 유사한 계좌번호 등 13자리의 숫자가 존재하기도 한다. 진짜 주민등록번호인지 쉽게 판단할 수 있는 함수가 필요한데 오라클에서 기본으로 제공하지 않으므로 직접 생성해서 사용해야 한다. 아래의 함수는 내국인과 외국인 주민등록번호의 유효성을 판단하여 0 (주민번호 아님), 1 (주민번호) 을 리턴한다. 12345678910111213141516171819202122232425262728293031323334353637CREATE OR REPLACE FUNCTION FT_I..
오라클 원 단위 금액 절사 방법 TRUNC() 함수를 사용하여 원단위 절사를 할 수 있다아래는 \1,255원의 금액 일부를 절사하는 예제이다 --1원 단위 이하 절사 SELECT TRUNC(1255, -1) FROM DUAL ; 결과 : 1250 --10원 단위 이하 절사 SELECT TRUNC(1255, -2) FROM DUAL ; 결과 : 1200 --100원 단위 이하 절사 SELECT TRUNC(1255, -3) FROM DUAL ; 결과 : 1000
RAISE_APPLICATION_ERROR (사용자 에러코드 함수) PL/SQL에서 사용자정의 함수를 만들때 오류코드 또한 사용자가 임으로 설정을 할 수 있다. 다음 사용자 오류처리 함수를 사용하여 -20000 ~ -20999 사이의 코드를 사용하여 에러 메시지를 정의 할 수 있다. RAISE_APPLICATION_ERROR( [에러코드], [에러메시지] ) 에러코드 : -20000 ~ -20999 사이의 코드 예시) RAISE_APPLICATION_ERROR(-20000, '지정한 월이 부적합합니다.') 사용자 함수 예외처리(EXCEPTION) 부분에 에러코드 함수를 사용 에러 발생 시 함수에서 정의한 에러메시지가 출력된다 사용불가능한 에러코드를 사용할 경우 (-20000 ~ -20999 범위가 아닌경..
패키지(Pckage) 내부 프로시저(Prodedure) 조회 방법패지키명으로 조회를 하면 패키지에 포함된 프로시저명을 조회할 수 있다그 외에도 함수, 프로시저, 트리거 등도 조회가 가능하다 /* 패키지 내부 프로시저 조회 */ SELECT * FROM ALL_PROCEDURES WHERE OBJECT_NAME = 'PKG_SUP_CS_D_01' ; /* 프로시저 조회 */ SELECT * FROM ALL_PROCEDURES WHERE OBJECT_TYPE IN ('PACKAGE', 'PROCEDURE', 'FUNCTION', 'TRIGGER') ▲ 패지키에 포함된 프로시저가 조회 되는것을 확인 할 수 있다
오라클 REGEXP_REPLACE 다중(여러개) Replace(치환) 하는 방법 오라클 10g 부터 정규식 함수가 추가 되었다. 정규식을 사용하여 기존 함수보다 더 많은 기능을 수행한다.기존 Replace 함수를 사용하여 여러개의 문자를 치환하기 위해서는 해당 함수를 중첩으로 사용하였다. REGEXP_REPLACE 함수를 한번 사용하여 여러개의 문자를 치환하는 방법을 알아보자. --치환할 문자를 |로 구분하여 입력 SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs', 'Stay|Foolish|Steve', '') FROM DUAL --결과: Hungry, . - Jobs ; --문자를 제거만 할꺼면 3번재 파라미터는 생략가능 SELECT RE..