일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- web.xml
- 태그
- eGovFramework
- 과정평가형
- was
- JVM
- html
- CSS
- 개념
- jQuery
- Java
- mybatis
- controller
- POI
- json
- 오류
- sql
- select
- Ajax
- eGov
- spring
- javascript
- 배열
- 정의
- array
- input
- Oracle
- 함수
- TO_DATE
- Database
- Today
- Total
목록SQL/Oracle SQL (19)
web developer
해당 테이블의 각 컬럼의 count 값 가져오는 쿼리는 다음과 같습니다.(1) 서브쿼리를 사용한 카운트 합산 SELECT (SELECT COUNT(*) FROM validity WHERE mon01_usgqty LIKE '1@%') + (SELECT COUNT(*) FROM validity WHERE mon02_usgqty LIKE '1@%') AS total_countFROM dual;이 쿼리는 다음과 같이 작동합니다:validity 테이블에서 mon01_usgqty 컬럼이 '1@%'로 시작하는 값을 카운트합니다.validity 테이블에서 mon02_usgqty 컬럼이 '1@%'로 시작하는 값을 카운트합니다.두 개의 서브쿼리 결과를 더하여 total_count라는 별칭으로 반환합니다.(2) ..
1. DBMS_LOB 데이터 타입 데이터 타입 설명 CLOB 문자형 대용량 객체 고정길이와 가변길이 문자집합 지원 NCLOB 유니코드를 지원하는 문자형 대용량 객체 BLOB 이진형 대용량 객체 BFILE 대용량 이진 파일에 대한 위치,이름 저장 2. DBMS_LOB 함수 [2-1] DBMS_LOB.SUBSTR - 문자열을 자름 SELECT DBMS_LOB.SUBSTR(컬럼, 자를 문자수, 시작위치) [2-2] DBMS_LOB.INSTR - 지정된 키워드를 검색해서 위치(몇글자 째에 키워드가 위치해있는지) 반환 SELECT DBMS_LOB.INSTR(컬럼, '찾을 키워드', 시작위치, 몇번째 단어인지) [2-3] DBMS_LOB.GETLENGTH - 해당 컬럼의 전체 길이 반환 (공백을 포함한 글자수를 반..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oaPwX/btsvndBv75t/gKDH7YPwGAWI98L5VhhS10/img.png)
oracle 날짜 요일 구하기 1-1) 요일 구하기 (정수) SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜" , TO_CHAR(SYSDATE, 'd') AS "요일" FROM dual; TO_CHAR 함수의 포맷 인자에 "d"를 입력하면 해당 날짜의 요일이 정수로 반환된다. * 1:일요일, 2:월요일, 3:화요일, 4:수요일, 5:목요일, 6:금요일, 7:토요일 1-2) 주말(토요일, 일요일) 구하기 SELECT CASE WHEN TO_CHAR(SYSDATE,'D') IN ('1','7') // 2023-09-24 THEN '주말' ELSE '평일' END AS WEEK_DAY FROM DUAL; 2) 요일 구하기 (한글) SELECT TO_CHAR(SYSDATE, 'y..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/F8kSz/btrRRPsVTKl/tnKUkCgRyAxQJcTaN9rJzk/img.png)
WITH절이란 WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리라고 생각하시면 됩니다. * 차이점 VIEW는 한번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은경우 한번 실행할 쿼리문내에 정의되어 있을경우, 그 쿼리문안에서만 실행된다는 차이점이 있습니다. WITH절을 사용하는 이유 WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성능향상에 도움이 됩니다. WITH temp AS ( S..
ORA-01861: literal does not match format string : 리터럴이 형식 문자열과 일치하지 않음 literal does not match format string Oracle등 DB Tool을 사용하여 SQL Insert 할경우는 정상이지만, JDBC를 통한 SQL Insert 를 할경우 다음과 같은 에러 메시지가 발생하였다. 물론 이 부분도 개발서버에서는 정상적으로 SQL insert가 이뤄져서 운영서버에 반영할 떄에는 몰랐던 문제였다. 원인은 개발 DB의 문자셋과 언어설정, 날짜설정이 운영DB의 설정 값과 다르기 때문에 나타나는 문제였으며, TO_DATE 함수를 사용하여 해결하였다. INSERT INTO 테이블명( 컬럼명 )VALUES ( TO_DATE(컬럼명, 'YYY..
executeQueryForObject returned too many results. 저의 경우는 excel 시트 3개의 데이터 모두 DB에 insert하려고 했다가 발생한 에러였습니다. 그래서 데이터가 null인 상태로 SQL insert 되는 경우가 아닌지 확인을 했고, query 결과값이 모두 null인 상태였습니다. null 값이 아닌 정상적인 값으로 나오게 되자 해결되었습니다.
UPDATE 테이블명 SET 날짜컬럼명 = TO_DATE (변경날짜, 'YYYYMMDDHH24MISS') ; 참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=quasimodo__&logNo=110179300180 오라클 oracle 날짜 시간 바꿔 업데이트 update 하기 유지보수 일을 하다 보면, 이미 입력 된 글의 날짜를 변경해달라는 내용을 받을때가 많다. 그럴 때 사용하... blog.naver.com
ORA-01810: 형식 코드가 두번 나타났습니다 SQL QUERY에서 날짜형식을 다루는 경우 위와 같이 에러 메세지를 종종 보게 됩니다. 해당 에러가 발생하는 원인은 다음과 같습니다. TO_DATE('2022-04-20', 'YYYY-MM-DD HH:MM:SS') MM과 mm을 month로 동일하게 인식하여 오류가 나타나게 됩니다. TO_DATE('2022-04-20', 'YYYY-MM-DD HH:MI:SS') '분(minute)'을 나타내는 MM을 MI로 변경하면 됩니다. 출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jwlee0208&logNo=10134959569 ORA-01810: 형식 코드가 두번 나타났습니다 ..
▶ 테이블 코멘트 부여 ALTER TABLE [테이블명] COMMENT = '테이블코멘트'; ▶ 컬럼에 코멘트 부여 컬럼에 코멘트를 생성하거나 수정할때에는 컬럼 전체를 변경하는 수밖에 없습니다. 테이블 생성시 컬럼 지정하는 명령어 부분을 MODIFY뒤에 고대로 넣어주고 뒤에 comment 키워드를 붙여 코멘트를 지정합니다. ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] [제약조건] COMMENT '컬럼코멘트'; ▶ 테이블 코멘트, 컬럼 코멘트 삭제하기 ALTER TABLE [테이블명] COMMENT = ''; ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] [제약조건]; 그냥 COMMENT키워드 부분 없이 다시 컬럼을 재정의해주면 됩니다. 출처 : http..
TO_DATE (date/날짜 비교) : 문자형(String) → 날짜형(date) TO_DATE('2017-05-12 23:59:59', 'YYYY-MM-DD') TO_DATE('2017-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS') SELECT DUMMY FROM DUAL WHERE SYSDATE > TO_DATE('20190731', 'YYYYMMDD'); * TO_DATE() 사용시 포멧('yyyymmdd')이 지정되지 않아서 오류 발생 TO_CHAR (string/날짜 비교) : 날짜형(date) → 문자형(String) TO_CHAR(SYSDATE, 'YYYY-MM-DD') TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') SELECT DU..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0si5p/btrqvVs3ozJ/rlgwJkT9KVJgJcDqBkJUWk/img.png)
1. JOIN JOIN이란, 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미한다. 2. INNER JOIN 일반적으로 JOIN이라 하면, INNER JOIN을 지칭하는 것이다. * INNER JOIN은 조인될 조건이 부합하는 행에 대해서만 JOIN이 발생하는 것이다. * 둘 테이블에 공통으로 해당되는 컬럼에 대해서는 테이블명.칼럼명 형태로 작성해야 한다. SELECT 열 목록 FROM 첫 번째 테이블 INNER JOIN 두 번째 테이블 ON 조인될 조건 WHERE 검색조건 3. OUTER JOIN INNER JOIN은 JOIN 조건에 부합하는 행만 JOIN이 발생하는 반면에, OUTER JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합한 결과 즉, 조건에 맞지 않아도..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r9Kbj/btrqwuPQlTh/YSy1dxlwUpoNnaIR3YrKVk/img.png)
(1) RANK 함수RANK 함수는 중복 값들에 대해서 동일한 순위로 표시하고, 중복 순위 다음 값에 대해서는 중복 개수만큼 건너뛰고, 중복순위 + 중복값 개수의 순위로 출력하는 함수입니다.SELECT EMPNO, EMPNAME, SALARY,RANK() OVER (ORDER BY SALARY DESC) AS RANKFROM EMPLOYEE;EMPNO EMPNAME SALARY RANK ----------- ------------ ---------- -------- 494 손흥민 1000 1 495 박지성 900 2 493 차범근 800 ..