반응형

개발/oracle DB 7

[ORACLE] LIKE 검색시 '%'나 '_'가 검색조건으로 들어갔을때 전체 LIST가 조회되는 오류 해결방안

WITH TEMP AS ( SELECT '제목 1' TITLE FROM DUAL UNION ALL SELECT '제목 2' TITLE FROM DUAL UNION ALL SELECT '제목 3' TITLE FROM DUAL UNION ALL SELECT '제목 4' TITLE FROM DUAL UNION ALL SELECT '제목 5' TITLE FROM DUAL ) SELECT TITLE FROM TEMP WHERE TITILE LIKE '%'||#검색조건#||'%' 위와 같은 쿼리를 짰을 경우, 검색조건에 '%' 또는 '_'이 들어올 경우, 조건절이 TITILE LIKE '%%%' 또는 TITILE LIKE '%_%' 이 되므로 전체 TITLE이 조회된다. 이 문제를 해결하기 위해서 WHERE 절을 ..

개발/oracle DB 2019.10.29

[ORACLE] PACKAGE

1. 오라클 PACKAGE : 오라클 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로시저와 함수들의 집합 - 패키지는 선언부와 본문 두 부분으로 나뉘어짐 2. 문법 1) 선언부 생성 문법 CREATE OR REPLACE PACKAGE [PACKAGE NAME] IS [변수선언절] -- 선언부에서 선언한 변수는 PUBLIC 변수로 사용 [커서선언절] [예외선언절] [Procedure 선언절] --프로시저에 대한 선언만 함 --EX PROCEDURE ALL_EMP_INFO; PROCEDURE DEPT_EMP_INFO(V_DEP_NO IN NUMBER); [Function 선언절] END [PACKAGE NAME]; 2) 본문 생성 문법 CREATE OR REPLACE PACKAGE BODY [P..

개발/oracle DB 2019.10.29

[ORACLE] JOB

1. ORACLE JOB : 데이터베이스 내에 생성한 프로시저들에 대해 데이터베이스 내의 스케줄러에게 지정한 시간에 자동으로 작업이 진행될수 있도록 하는 기능 - PL/SQL을 통해 JOB 등록 - 주기적으로 수행되어지는 JOB을 JOB QUEUE를 사용하여 스케줄링할 수 있음 - JOB을 스케줄링하기 위해 ORACLE DBMS_JOB 패키지를 이용하여 JOB QUEUE PROCESS가 JOB QUEUE 안의 잡을 수행 2. 문법 -- PL/SQL을 통해 JOB 등록 1) JOB 등록 DECLARE JNO NUMBER; BEGIN DBMS_JOB.SUBMIT( :JNO -- [JOB] OUT BINARY_INTEGER, 실행시킬 JOB 번호 ,'INSERT_JOB_TEST01;' -- [WHAT] IN ..

개발/oracle DB 2019.10.29

[oracle] WINDOW FUNCTION

SQLP를 공부하면서 조금더 빨리 알았으면 쿼리를 짤때 더 편했을텐데 했던 것중 하나가 WINDOW FUNCTION이다. WINDOW FUNCTION은 행과 행간의 관계를 쉽게 정의하기위해 DBMS가 내장하고 있는 함수이다. ■ 문법 WINDOW_FUNCTION_NAME( [ARGUMENTS] ) OVER ( [PARTITION BY 머시기] [ORDER BY 머시기] [WINDOWING절]) - WINDOW_FUNCTION_NAME : WINDOW FUNCTION의 고유 이름 (ex) ROW_NUMBER, RANK, MAX 등 - [ARGUMENTS] : WINDOW FUNCTION 에서 사용하는 매개변수들이 들어가는 자리 ** FUNCTION 별로 필요한 매개변수 수가 다르며, 필수 값일수도 아닐수도..

개발/oracle DB 2019.10.17

[oracle] DECODE 활용하기

오라클에는 DECODE라는 내장 함수가 있다. DECODE는 첫번째 파라미터 값과 이후 파라미터 값과 비교하여 파라미터로 정의한 값을 리턴해주는데 사용된다. DECODE는 대개 다음과 같이 쓸 수 있다. - DECODE(COL01, 'A', 'B') 와 같은 함수는 첫번째 매개변수인 COL01의 값과 두번째 매개변수인 'A'값을 비교해서 같으면 'B'값을 리턴하고 다르면 NULL을 리턴한다. - DECODE(COL01, 'A', 'aaa', 'bbb') 와 같이 쓰면 COL01의 값이 'A'이면 'aaa'를 리턴하고, 아니면 'bbb'를 리턴하겠다는 의미이다. - DECODE(COL01, 'A', 'aaa', 'B', 'bbb', 'ccc') 와 같이 쓰면 COL01의 값이 'A'이면 'aaa'를 리턴하..

개발/oracle DB 2019.10.15

[oracle] ORA-01861: literal does not match format string

개발서버에서 개발을 하다가 개발한 소스를 운영환경에 올릴 경우, TO_CHAR, TO_DATE 메서드를 사용하는 부분에서 가끔씩 아래와 같은 에러가 발생한다.(ex) TO_CHAR(TO_DATE(‘20170101’),'yyyy-mm-dd') 개발서버에서는 분명 잘 돌아가던 것인데 왜 에러가 날까? ORA-01861 : literal does not match format string 에러메세지를 구글 번역기에 돌려보면 "리터럴이 형식 문자열과 일치하지 않습니다." 로 번역된다. [원인]TO_DATE를 사용할때, 두번째 인수를 셋팅하지 않으면 오라클 데이터베이스에 설정되어있는 날짜 설정에 따라 변환되는데, 해당 에러는 개발 DB의 문자셋과 언어설정, 날짜설정이 운영DB의 설정 값과 다르기 때문에 나타나는 ..

개발/oracle DB 2019.01.23
반응형