본문 바로가기
728x90
반응형

전체 글122

오라클 LPAD, RPAD 함수 : 공백 채우기 메뉴코드나, 자격증 코드를 구성할 때 코드명 || 시퀀스 형태로 붙여서 사용하는 방법도 있겠지만, 뒤로 길어지는 게 아닌, 자릿수는 지키면서 숫자만 올라가는 것을 원할 경우 LPAD. 또는 RPAD 함수를 사용할 수 있다. 개인적으로는 LPAD가 메뉴코드 / 자격증 코드를 구성하기에 적합한 것 같다. 사용법 SELECT LPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; SELECT RPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; LPAD , RPAD 는 시작점 위치가 왼쪽이냐 오른쪽이냐의 차이이다. 설명 SELECT LPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; 첫번째 데이터를 기준으로, 총 자릿 수 중 왼쪽으로 남은 .. 2023. 9. 15.
오라클 INSTR 함수 : 텍스트 인덱스 가져오기, (indexOf) 데이터를 가져올 때 쪼개서 가져오고 싶을 때가 있다. 그럴 때 사용할 수 있는 함수가 INSTR() 이다. 사용법 SELECT INSTR([데이터], [찾을 데이터], [찾기 시작할 위치], [찾을 데이터의 순번]) FROM TABLE; 1) 파라미터 2개 사용 시 SELECT INSTR('ORACLE TEST CODE', 'E') FROM DUAL; 텍스트 'ORACLE TEST CODE' 중, 'E'가 처음으로 위치한 순서를 가져온다. (result : 6) 앞에서부터 순서를 세고 인덱스 위치를 가져온다기보다는 순서를 가져오기 때문에, 리턴 숫자는 0, 1, 2..로 진행되는 게 아니라 1, 2, 3..으로 진행된다 2) 파라미터 3개 사용 시 SELECT INSTR('ORACLE TEST CODE'.. 2023. 9. 15.
[back] 엑셀 파일 생성 및 다운로드 소스 구조 엑셀 파일 생성 및 다운로드 소스 구조 를 이해하기 위해 레거시 코드를 분석해보았다 1. 엑셀 파일 생성(엑셀 라이브러리 POI 사용) 2. response 객체에 엑셀파일 출력 전체코드는 제일 아래에! 1. 엑셀 파일 생성(엑셀 라이브러리 POI 사용) 우선 먼저, 엑셀 파일을 생성해준다. 엑셀 파일 생성에 필요한 기본 메소드는 아래와 같다. - HSSFWorkbook workbook = new HSSFWorkbook(); : workbook 생성자로 엑셀 파일 객체 생성 - HSSFSheet sheet = workbook.createSheet(); : workbook 객체의 createSheet 메소드를 사용하여 시트 생성 - HSSFRow row = sheet.createRow(0); : sheet.. 2023. 9. 1.
[back] 세션 끊길 때 http<->https 이동간 세션 복사 http -> https 이동 시에도 끊기는 증상이 있었는데, 이런 경우는 같은 https 끼리는 세션이 유지되니까 프로토콜을 변경해주는 조치를 간단하게 해줬었다. 예를 들어 url.replace("http://","https://"); 이런식으로.. 반대로 https -> http 로 넘어갈 때는 세션이 끊기지 않는다고 알고있었는데, 매번은 아니지만 간혈적으로 끊기는 증상을 발견했다. 그래서 최대한 세션이 끊기지 않도록 Https Filter를 만들어서 세션을 복사하는 필터를 걸어주도록 했다. 아래 소스는 구글에 세션공유 라고만 검색해보면 충분히 얻을 수 있는 소스들이다. 1. web.xml에 필터 등록 web.xml https 내가 만들 Https Filter 패키지 경로.필터클래스명 https /*.. 2023. 8. 22.
오라클의 간단한 if 문 : DECODE 함수 오라클에서도 if 문처럼, true 와 false 로 다른 값을 보여주도록 할 수 있다. decode 문이 그렇다. SELECT DECODE(A, B, C, D, F, G) FROM TABLE; 위의 함수를 자바 소스처럼 풀어서 써보자면 의미가 아래와 같다. if (A == B) { return C; } else if (A == D) { return F; } else { return G; } 위의 소스처럼 순서대로 비교해서 결과값이 나오게 된다. 🐦 주의사항 🐦 1) DECODE 함수의 파라미터는 여러개를 사용할 수 있지만 최소 3개는 들어가야 한다. 파라미터를 2개 이하로 쓰면 아래와 같은 오류 발생함 ORA-00938: 함수의 인수가 충분하지 않습니다 00938. 00000 - "not enough .. 2023. 8. 4.
오라클 WITH AS 문 = 임시로 1회용 테이블 만들기 WITH AS 문은 뭔가 처음봤을 때는 오오 이게뭐야 🤩 ?! 했는데 막상 해보면 별 거 아닌 WITH AS 구문.. WITH AS 문은 임시 테이블 생성 구문 이라고 할 수 있다. 내가 가져오고 싶은 데이터들을 테이블처럼 가져올 수 있게 해준다. 나는 주로 JOIN 으로 묶기에 애매한 테이블이나, 아예 서로 관계가 없는 테이블의 데이터를 끌어와서 동시에 표현하고 싶을 때 사용한다. 이런 경우가 아니라면 JOIN 함 쿼리문 WITH TBL_TEAM AS ( SELECT '개발팀' AS 부서 , '사원' AS 직급 FROM DUAL ), TBL_TEAM_INFO AS ( SELECT '사원' AS 직급 , '2800' AS 연봉 FROM DUAL ) SELECT TT.부서 , TT.직급 , TTI.연봉 F.. 2023. 8. 4.
오라클 DATA TYPE 확인 : typeof() ? 오라클에도 data의 type을 확인할 수 있는 함수가 있을까? 없다. 쿼리 상에서 데이터 타입을 확인해서 뭔가 다른 처리를 하는 게 가능한 지 궁금했는데, 결과 데이터 형식을 고정하는 것에 만족해야 한다 ㅎㅅㅎ 만약 서브쿼리 등을 통해 다른 데이터를 가져오게 된다면 data type을 확인한다기보다는 애초에 가져 올 때 TO_NUMBER나 TO_CHAR 등으로 타입을 확정해서 가져오는 방식으로 쿼리를 짜야한다. 혹시나 있을까 열심히 구글링 했쥐만 없는 듯 특정 테이블 컬럼의 데이터 형식(VARCHAR2, NUMBER, ... ) 을 알 수 있는 DATA_TYPE() 함수만 나온다. DATA_TYPE() 함수는 이렇게 쓴다. SELECT DATA_TYPE FROM COLS WHERE TABLE_NAME .. 2023. 6. 27.
게시판 기능 구조 요즘 게시판들을 보면 댓글과 좋아요 기능은 기본인 것 같다. 단순한 1뎁스 게시판부터 N뎁스의 다중 게시판, 게시판을 숨김처리가 가능하게 할 것인지, 특정 사용자에게만 보여지게 할 것인지, 게시판의 카데고리나 분류를 어떻게 나눌 것인지, 댓글은 좋아요 기능을 연동할 것인지, 댓글에 대댓글을 달리게 할 것인지, 대댓글이 달린 원래 댓글을 삭제하면 어떻게 되어야 하는지, 게시글과 그 게시글에 대한 답글도 똑같구 특정 게시글을 공지사항처럼 무조건 1순위로 보여지도록 하는 기능도 있고,,, 게시판과 관련된 기능에 대해 프로세스를 어떻게 가져갈지 소스고민만 하더라도 머리가 넘나 아프다... 무궁무진하다 ㅋㅋ 옛날에 컴퓨터 학원 선생님이 게시판만 짤 줄 알면 어디든 취업할 수 있다고 했었는데 ㅎㅎㅎ 사실상 게시판이.. 2023. 6. 27.
MERGE INTO 오류 - ORA-38101: INSERT VALUES 절에 부적합한 열이 있음 MERGE INTO 오류 - ORA-38101: INSERT VALUES 절에 부적합한 열이 있음 오류 발생 명령행: 71 열: 1 오류 보고 - SQL 오류: ORA-38101: INSERT VALUES 절에 부적합한 열이 있음: "SCOTT"."A"."MBR_SEQ" 왜 이 오류가 났는지 처음에는 전혀 감이 잡히지 않았다. 서브쿼리만 떼다가 실행해봐도 문제가 없고, 다른 테이블로 만들었지만 똑같은 구조의 쿼리는 잘만 병합되었기 때문에.. ▼ 요런 구조였는데 MERGE INTO TMP_MBR X USING ( SELECT MBR.MBR_ID , MBR.MBR_SEQ , MBR.AGE FROM TB_MBR_MBR MBR WHERE MBR.MBR_ID = 'test01' ) Z ON ( X.TMP_MBR_.. 2023. 6. 27.
자바의 제네릭(Generic) 자바의 제네릭 개념은, 다양한 자료형에 대한 재사용 프로그래밍이 가능하게 한다. 다이아몬드 연산자로 읽을 수도 있고, ‘’ 형태로 표기한다. 1. 제네릭 클래스(Generic class) 제네릭 클래스는 자료형을 로 표기한다. 보편적인 제네릭 타입의 매개변수(Type Parameter)에 대한 명명 규칙은 아래와 같다. 표기 알파벳 의미 E Element K Key N Number T Type V Value 사용 예) int list = new ArrayList(); 2. 제네릭 클래스 활용 2-1. 제네릭 클래스 선언부 (접근제어자) class 클래스명 { ... } 2-2 제네릭 클래스 인스턴스 생성 클래스명 인스턴스명 = new 생성자(); 사용 예) //실 사용 예 class Sample { pr.. 2023. 6. 13.
728x90
반응형