Database43 [MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX [MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX SUBSTRING_INDEX 구문 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) 예제 다음 예제 테이블에서 실제 파일명만 가져오기 위해 "/" 구분자로 문자열을 가져온다. 1. 첫 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '/', 1) AS FILE_NM FROM TEST_TABLE 2. 세 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '/', 3) AS FILE_NM FROM TEST_TABLE 3. 뒤에서 첫 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '.. Database/SQL 2020. 11. 6. [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL Oracle 버전이 궁금하다면 ? 클릭 ! [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE) [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE) foreach문은 사용할 때마다 사용되는 위치도 속성도 어려워서 더이상 헷갈리지 않기 위해 남겨본다 :-) ! foreach문의 속성은 다음과 같다... haenny.tistory.com foreach문의 속성은 다음과 같다. 구분 설명 collection 전달받은 인자값 item 전달받은 인자값을 다른이름으로 대체 open 해당 구문이 시작할 때 close 해당 구문이.. Database/MyBatis 2020. 9. 15. [MyBatis] #{ } 과 ${ } 차이 [MyBatis] #{ } 과 ${ } 차이 전자정부프레임워크 이클립스에서 쿼리문을 작성할 때 MyBatis를 이용해 XML에 쿼리문을 작성한다. 데이터 CRUD 로직을 구현하면서 파라메터를 작성할 때 #{ }으로 작성할 지, ${ }로 작성해야할 지, 차이가 무엇인지 크게 생각하지 않고 작성하는 경우가 많을 것이다. 과연 무슨차이가 있는 지, 왜 #{} 를 대체로 더 많이 사용하는지 어떨 때 ${}을 사용하는 지 살펴보자. #{ } 1. 파라메터가 String 형태로 들어와 자동적으로 '파라메터' 형태가 된다. 예를들어, SELECT USER_ID , USER_NM FROM M_OPR WHERE USER_ID = #{userId} 다음 쿼리문에서 #{userId}의 userId 값이 "master"라면.. Database/MyBatis 2020. 9. 4. [HeidiSQL] HeidisSQL 에서 조회한 데이터 엑셀 내보내기 [HeidiSQL] HeidisSQL 에서 조회한 데이터 엑셀 내보내기 ORACLE에서는 조회한 데이터 드래그 복사가 가능한데 mySql은 안된다.. 01. 조회한 데이터 테이블에서 [마우스 우키] - [격자 행 내보내기] 클릭 02. '격자 행 내보내기' 폼에서 출력 파일 형식(엑셀) 설정 후 파일 저장 위치 설정 끝~ Database/SQL 2020. 7. 23. [Oracle] 숫자 0.5 문자 변환 시 ".5" ? "0.5" 로 표시하기 [Oracle] 숫자 0.5 문자 변환 시 ".5" ? "0.5" 로 표시하기 TO_CHAR를 사용하여 숫자인 0.5를 문자로 변환하면 ".5"로 소수점 이상이 0일 경우 점(.)으로만 표시되어 변한된다. FM (FORMAT) 옵션을 활용하여 변환할 수치 값의 포맷을 설정해보자. - FM9990.99 ① 9 : 해당 자리의 숫자를 의미한다. - 값이 없을 경우 소수점 이상은 공백, 소수점 이하는 0으로 표시한다. ② 0 : 해당 자리의 숫자를 의미한다. - 값이 없을 경우 0으로 표시하며 숫자의 길이를 고정적으로 표시할 때 주로 사용한다. ③ FM : 좌우 9로 치환된 소수점 이상의 공백 및 소수점 이하의 0을 제거한다. - 예제 SELECT TO_CHAR(0.50, 'FM9990.99') FROM SY.. Database/SQL 2020. 6. 20. [Oracle] 자동증가 SEQUENCE 생성, 조회, 삭제 [Oracle] 자동증가 SEQUENCE 생성, 조회, 삭제 SEQ값을 키 값으로 가지고 있는 테이블을 저장할 때 MAX(SEQ)+1로 데이터를 저장하게되면 데이터가 쌓일수록 과부하가 걸린다. 따라서 시퀀스를 생성하여 시퀀스의 자동증가를 활용하여 저장할 수 있도록 해보자. 1. SEQUENCE 생성 - 내가 원하는 시퀀스 명칭을 정의하여 생성한다. CREATE SEQUENCE TEST_SEQ START WITH 1 INCREMENT BY 1; 2. SEQUENCE 전체 조회 - 내가 생성한 SEQUENCE에 대한 전체 정보를 조회한다. TEST_SEQ가 생성된 것을 확인할 수 있다. SELECT * FROM USER_SEQUENCES; 3. 특정 SEQUENCE의 다음 값 조회 : NEXTVAL - SE.. Database/SQL 2020. 4. 8. [MyBatis] 시퀀스 자동증가(NEXTVAL) 사용한 INSERT foreach 쿼리 리스트 파라메터의 foreach 사용방법에 대해서는 아래 게시글을 참고해주세요. [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE) [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE) foreach문은 사용할 때마다 사용되는 위치도 속성도 어려워서 더이상 헷갈리지 않기 위해 남겨본다 :-) ! foreach문의 속성은 다음과 같다. 구분.. haenny.tistory.com 시퀀스를 키값으로 갖는 테이블의 데이터를 INSERT할 때, 보통 시퀀스를 생성하여 아래와 같이 추가한다. SELECT CUSTOMER_SEQ.NEXTVAL AS customerSeq FROM SYS.DUAL INSERT INTO WEB_G_.. Database/MyBatis 2020. 4. 8. [Oracle] LPAD, RPAD 함수 사용하여 공백 채우기 "0 채우기" [Oracle] LPAD, RPAD 함수 사용하여 공백 채우기 "0 채우기" 데이터베이스에서 키 값을 자동으로 저장할 때, SEQ는 SEQUENCE를 사용해서 자동증가가 쉽지만 숫자형 문자인 CD00001 과 같은 포맷의 키 값을 1씩 늘려가며 저장할 때 CD를 자르고, MAX값으로 +1을 하여 다시 0을 붙여서 저장해야만 하는가.. 찾아보다가 LPAD/RPAD 함수를 만나게 되었다. 이를 더 쉽게 해줄 함수를 공부해보자. LPAD 함수 LPAD("값", "총 문자길이", "채움문자") - 지정한 길이만큼 왼쪽부터 특정문자로 채워준다. SELECT 30 , LPAD(30, 5) , LPAD(30, 5, '0') , LPAD(30, 5, 'A') FROM SYS.DUAL - 결과 채움문자 수= "총 문자길.. Database/SQL 2020. 4. 3. [Oracle] ORA-00904 : 부적합한 식별자 invalid identifier 오류 ORA-00904 : 부적합한 식별자 invalid identifier 오류 ORA-00904 : 부적합한 식별자 invalid identifier 오류는 입력된 열 이름이 누락되었거나 잘못 되었을 경우 발생한다. 원인 존재하지 않는 열 이름을 지정한 경우 정의된 열 이름과 대소문자가 일치하지 않는 경우 작은 따옴표(')와 큰 따옴표(") 사용 방법의 오류인 경우 열 이름에 특수 문자 사용한 경우 열 이름에 Oracle 예약어 사용한 경우 각 원인 별 해결방법 존재하지 않는 열 이름을 지정한 경우 해당 열이 테이블에 존재하는지 확인 정의된 열 이름과 대소문자가 일치하지 않는 경우 정의된 열 이름의 대소문자를 확인 작은 따옴표(')와 큰 따옴표(") 사용 방법의 오류인 경우 작은 따옴표(')로 값을 묶으면.. Database/SQL 2020. 2. 17. [Oracle] ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 오류 [Oracle] ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 오류 ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 00054. 00000 - "resource busy and acquire with NOWAIT specified" 위 오류는 내가 사용하려는 테이블을 다수의 사용자가 하나의 DB로 작업하다가 주로 lock이 걸리는 경우 발생한다. 이 때는 선행 사용자가 commit을 해주면 간단히 해결된다. 혹은 오류 메시지가 뜨진 않고, 테이블 조회는 가능하지만 INSERT, MERGE 혹은 DELETE를 하려는 경우에 쿼리가 실행되지 않고(나의 경우) 멈춘다면 lock이 걸려.. Database/SQL 2020. 2. 17. [Toad] Background session could not connect to Oracle 해결 [Toad] Background session could not connect to Oracle 해결 1. 아래화면과 같이 Change Session 버튼을 클릭 2. 끊긴 세션의 User / Password 를 다시 입력 후 Connect 참 쉽죠잉 Database/SQL 2020. 2. 12. [Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS [Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS 집합연산자는 데이터베이스에서 데이터를 조회(SELECT)할 때 쿼리의 결과를 대상으로 연산을 수행하는 연산자이다. 국어,영어,수학,사회,과학 수업을 듣는 1학년 테이블과 국어,영어,수학,사회,과학 수업을 듣는 2학년 테이블로 예제를 살펴보자. 1. UNION : 합집합 - 두 테이블의 결합을 나타내며, 두 테이블의 중복되는 값은 제거되어 수행 결과 한번만 나오게 된다. 사용 예시 SELECT SUBJECT FROM GRADE1 UNION SELECT SUBJECT FROM GRADE2 결과 - GRADE1테이블과 GRADE2 테이블의 공통 과목인 국어, 사회, 과학이 두 번씩 나오는 것이 아닌 한 번만 반환 된다.. Database/SQL 2019. 12. 27. 이전 1 2 3 4 다음 추천 글 728x90 반응형