일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 함수
- 배열
- TO_DATE
- mybatis
- json
- eGov
- jQuery
- array
- spring
- Oracle
- JVM
- 개념
- 과정평가형
- 정의
- was
- Java
- eGovFramework
- Database
- Ajax
- input
- CSS
- sql
- 오류
- select
- web.xml
- POI
- controller
- javascript
- html
- 태그
- Today
- Total
목록SQL (22)
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 - 해당 컬럼의 전체 길이 반환 (공백을 포함한 글자수를 반..
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..
LAG, LEAD 함수 LAG와 LEAD는 모두 Window 함수로 각각 현재 행 이전 행과 이후 행의 데이터에 접근 할 수 있습니다. 기본 문법은 다음과 같습니다. LAG(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY ) LEAD(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY ) LAG 함수 : 이전 행 값 return LEAD 함수 : 다음 행의 값 return offset : 값을 가져올 행의 위치, default 1 default : 값이 없을 경우 지정 할 기본 값 * offset은 몇 번째 이전(또는 이후) 행에 대해 접근할 지를 정수로 나타냅니다. * 생략가능 : offset, default, p..
GROUP BY SQL은 집합 지향적 언어입니다. 그렇기 때문에 SQL에는 집합을 조작할 수 있는 구문이 많이 있습니다. 가장 대표적인 집합 지향적 구문이 GROUP BY입니다. GROUP BY는 GROUP BY `열 이름`과 같은 문법으로 사용됩니다. GROUP BY를 사용하면 전체 집합을 지정한 열을 기준으로 분류하고 집약합니다. 예를 들어 전체 유저 그룹에 대해 GROUP BY gender로 지정한다면 각 gender 별로 그룹이 분류됩니다. 앞에서 SQL은 기본적으로 다수의 행을 반환한다고 했는데 여기에 GROUP BY `열 이름`을 추가하면 전체 집합의 모든 행을 지정한 열의 값을 기준으로 분류한 뒤 각 집합을 하나의 행으로 집약합니다. 다음 예시를 보면 genre에 대해 GROUP BY 했을 ..
SQL SQL (Structured Query Language) - SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 데이터를 관리 및 처리하기 위해 설계된 프로그래밍 언어입니다. - SQL은 1970년대에 IBM에서 최초 개발되었으며 관계형 모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. - 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다. SQL 문법 [1] DDL - Data Definition Language, 데이터 정의 언어 - 각 릴레이션을 정의하기 위해 사용하는 언어 - conceptual..
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..