Oracle27 [Oracle] SELECT 문장의 논리적 실행 순서 SELECT 컬렴명 (5번) FROM테이블명 (1번) WHERE조건식 (2번) GROUP BY 컬럼 또는 표현식(3번) HAVING 그룹 조건식(4번) ORDER BY 컬럼 또는 표현식 (6번) 2022. 10. 10. [Oracle] between 사용 시 주의할 에러 회사에서 웹어플리케이션 개발을 하다가 발견하기 힘든 에러를 만나서 여기에 공유합니다. 문제 상황 : local에서 데이터 적용 마감을 현재 시간으로 업데이트하고, 현재 시간으로 적용중인 데이터 조회시 적용중인 데이터가 안나오는걸 확인하고 dev 환경에 업로드했는데, dev에서는 현재 적용중인 데이터가 있는 것으로 나옴 문제 원인 : between 사용 시 SYSDATE BETWEEN TIME1 AND TIME2 일 경우 TIME1과 TIME2 시간은 포함됩니다. dev 환경에서는 이 처리속도가 빨라서 적용 마감 데이터를 업데이트한 시간과 현재 적용중인 데이터를 가지고 올 때 TIME1이 일치하게 되었습니다. 그래서 데이터가 계속 존재하는 것으로 나왔습니다. 평소에 BETWEEN을 많이 사용하는 편인데, .. 2020. 3. 4. [Oracle] Trim 1. 문자열 공백 제거 문자열의 공백을 제거하는데 많이 사용되는 Trim 예제는 다음과 같습니다. SELECT TRIM(' Sample '); 'Sample' SELECT LTRIM(' Sample '); 'Sample ' SELECT RTRIM (' Sample '); ' Sample' 2. 왼쪽 or 오른쪽 지정 문자 제거 º LTRIM : 컬럼에서 지정한 문자를 왼쪽에서 제거한 결과 º RTRIM : 컬럼에서 지정한 문자를 오른쪽에서 제거한 결과 º TRIM : 컬럼에서 지정한 문자를 양쪽에서 제거한 결과 SELECT LTRIM(' 테스트입니다') AS LTRIM_ONE ,LTRIM('테스트입니다','테스트') AS LTRIM_TWO ,LTRIM('테스트입니다','스트') AS LTRIM_THREE.. 2019. 11. 6. [Oracle] 쿼리 실행 순서 1. SELECT 문법 실행 순서 SELECT - 1 FROM - 2 WHERE - 3 GROUP BY - 4 HAVING - 5 ORDER BY - 6 다음은 SELECT 문의 실행 순서입니다. FROM - 1 WHERE - 2 GROUP BY - 3 HAVING - 4 SELECT - 5 ORDER BY - 6 데이터를 찾기 위해 FROM 절에 접근하여야하고, 조건에 맞는 데이터만 가져오기 위해서 WHERE절 저븐, 원하는 데이터로 가공하는 GROUP BY, 가공한 데이터에서 조건에 맞는 것만 뽑아내는 SELECT, 그리고 ORDER BY를 통해 정렬을 합니다. REFERENCE https://police84.tistory.com/69 2019. 10. 31. [Oracle] 정규표현식 함수 REGEXP 1. REGEXP_SUBSTR - SUBSTR 함수의 기능을 확장하였습니다. 주어진 문자열을 대상으로 정규 표현식 패턴을 수행하여, 일치하는 하위 문자열을 반환합니다. - 문법 : REGEXP_SUBSTR(srcstr, pattern, [,position[,occurrence[,match_option]]]) - srcstr : 소스 문자열 - position : Oracle이 문자열에서 특정 문자를 어디에서 찾아야 하는지 위치를 나타냄. 기본으로 1로 설정되어 있으므로, 문자열의 처음부터 검색을 시작. - occurrence : 검색하고자 하는 문자열에서 특정 문자의 발생 횟수. 기본으로 1로 설정되어 있으며, 이는 Oracle이 문자열에서 첫번째 발생 pattern을 찾는다는 의미. - match_op.. 2019. 10. 31. [Oracle] PL/SQL %TYPE %TYPE - 해당 테이블의 컬럼 속성을 지정하여 그대로 들고 오는 형태입니다. - 사용방법 : 변수명 테이블이름.컬럼명%TYPE DECLARE V_ENAME EMP.ENAME%TYPE; V_DEPTNO EMP.DEPTNO%TYPE; BEGIN SELECT ENAME, DEPTNO INTO V_ENAME, V_DEPTNO FROM EMP WHERE EMPNO = '1234'; DBMS_OUTPUT.PUT_LINE(DATA.ENAME ||','||DATA.DEPTNO); END; 2019. 10. 28. 이전 1 2 3 4 5 다음