패키지(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..
오라클에서 날짜의 요일(Weekday)을 구하기 위해서는 TO_CHAR 함수를 사용하면 된다. TO_CHAR 함수는 날짜의 요일을 정수 또는 문자(영문 or 한글)로 반환받을 수 있다. 아래의 예제를 보면 쉽게 이해할 수 있을 것이다. 목차 요일 구하기 (정수) 요일 구하기 (한글) 사용 예제 요일 구하기 (정수) SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜" , TO_CHAR(SYSDATE, 'd') AS "요일" FROM dual TO_CHAR("날짜", "포맷") TO_CHAR 함수의 포맷 인자에 "d"를 입력하면 해당 날짜의 요일이 정수로 반환된다. (1:일, 2:월, 3:화, 4:수, 5:목, 6:금, 7:토) 요일 구하기 (한글) SELECT TO_CHAR(..
[ 오라클 날짜의 년을 더하고 빼는 방법 ] 날짜에서 년을 더하고 빼기 위해서는 ADD_MONTHS() 함수를 황용하여 년을 개월수로 환산하여 연산을 하거나 날짜에 일수를 빼는 방법을 주로 사용한다. 위의 방법도 똑같은 결과의 값을 얻을수 있지만 INTERVAL을 활용하면 조금더 쉽고 직관적으로 년을 더하거나 뺄수 있다. --년을 더하고 빼기 SELECT SYSDATE - (INTERVAL '2' YEAR) MINUS_YEAR , SYSDATE + (INTERVAL '2' YEAR) ADD_YEAR FROM DUAL ※ INTERVAL 여러가지 활용 방법 SYSDATE + (INTERVAL '1' YEAR) --1년 더하기 SYSDATE + (INTERVAL '1' MONTH) --1개월 더하기 SYSD..
ORA-01785: ORDER BY 항목은 SELECT 목록 식의 수라야 합니다 ORDER BY 절에서 해당 오류가 발생 하였을 경우 ORDER BY 절에 함수(DECODE, NVL, TO_NUMBER, 사용자함수 등)를 사용하였는지 확인해 보아야 한다. 일반적으로 ORDER BY 절에 함수를 사용하는건 아무런 이상이 없지만 해당 쿼리문에 집합연산자 ( UNION, UNION ALL , MINUS, INTERSECT)가 사용이 되었다면 오류가 발생 한다. 집한연산자가 사용된 쿼리문의 ORDER BY 절에는 함수 사용을 하지 말아야하며 꼭 사용해야 한다면 해당 쿼리문을 인라인 뷰(INLINE VIEW)로 감싸서 ORDER BY를 하면 된다. UNION ALL을 사용한 쿼리문에서 ORDER BY 절에 DEC..
오라클 쿼리를 작성하다 보면 칼럼의 수치값만큼 행의 개수를 늘려서 조회를 해야 하는 경우가 있다. CONNECT BY를 사용하여 순차적인 값이 있는 가상 테이블을 만들어서 조인하는 방법과 물리적인 테이블을 만들어서 조인하는 방법이 있다. 아래는 가상 테이블을 활용하여 칼럼의 수치값만큼 SELECT 행을 추가하는 방법이다. CNT 칼럼의 수치값만큼 해당 NM의 행을 늘리는 방법이다. WITH test_table AS ( SELECT 'AAA' nm, 3 cnt FROM dual UNION ALL SELECT 'BBB' nm, 5 cnt FROM dual UNION ALL SELECT 'CCC' nm, 2 cnt FROM dual ) SELECT a.nm , a.cnt , b.num FROM test_tab..
오라클 GROUP BY 쿼리에서 ROLLUP 함수를 사용하면 손쉽게 합계와 소계를 구할 수 있습니다. ROLLUP 함수는 다차원 집계를 생성하여, 그룹별 합계뿐만 아니라 전체 합계까지 한 번에 계산할 수 있습니다. 특히, 소계 또는 합계를 함께 조회해서 데이터를 반환할 수 있기때문에 통계 작업 쿼리를 만들때 아주 유용하다. 1. GROUP BY 컬럼이 하나인 경우- GROUP BY 절에 ROLLUP 함수를 추가한 후 그룹핑 컴럼을 인자로 넣는다 SELECT job , SUM(sal) FROM emp GROUP BY ROLLUP(job) 2. GROUP BY 컬럼이 두 개 이상인 경우- 합계 및 소계 까지 계산되어 표시된다 SELECT job , deptno , SUM(sal) ..
ORA-24338: 문장 처리가 수행되지 않았습니다 PL-SQL 프로시저(Procedure) 작성 시 프로시저 내 쿼리가 수행되지 않고 프로시저가 종료가 되어 해당 오류가 발생 하였다 아래의 예시를 보면 if문 내의 쿼리가 작성되어 있는데 조건 변수(in_tab, in_gubun)의 값이 잘못 되어서 if내의 쿼리가 수행되지 않고 프로시저가 종료되어 해당 오류 발생 파라미터 변수 값을 수정 후 오류 해결됨
오라클에서 여러 개의 단어를 LIKE로 검색하기 위해서는 동적 쿼리를 사용하거나 LIKE를 OR로 묶어서 사용했다. Oracle 10g부터 정규식 함수가 추가 되었으며 그 중에서 REGEXP_LIKE 함수를 사용하여 다중 검색을 쉽게 할 수 있게 되었다. 기본 사용법 WITH temp_table AS ( SELECT 'Samsung Galaxy Note 4' text FROM dual UNION ALL SELECT 'Apple iPhone 6 Plus' text FROM dual UNION ALL SELECT 'Samsung Galaxy text' text FROM dual UNION ALL SELECT 'Apple iPhone 6' text FROM dual UNION ALL SELECT 'LG G3'..
TO_CHAR를 사용하여 숫자를 문자로 변환하면 소수점 이상이 0일 경우 점(.)으로만 표시되어 변환이 된다. 아래와 같은 포맷(FORMAT) 옵션을 활용하여 변환된 수치 값의 형태를 결정할 수 있다. SELECT TO_CHAR(0.40, 'FM9990.99') STR , RTRIM(TO_CHAR(4, 'FM9990.99'),'.') STR2 --정수일경우 소수점표시 안함 (RTRIM) FROM DUAL;--STR : 0.4 --STR2 : 4 FM9990.99의 의미9는 해당 자리의 숫자를 의미하고 값이 없을 경우 소수점 이상은 공백으로 소수점 이하는 0으로 표시한다.0은 해당 자리의 숫자를 의미하고 값이 없을 경우 0으로 표시하며 숫자의 길이를 고정적으로 표시 할 때 주로 사용한다.FM은 좌우 9로 ..