본문 바로가기

전체 글

[Oracle] 프로시저 / ORA-06553 - 호출 시 인수의 갯수나 유형이 잘못되었습니다 해결법 함수와의 가장 큰 차이점 함수는 결과 값을 반환하지만 프로시저는 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 프로그램이다. 언제 사용? 테이블에서 데이터를 추출해 입맛에 맞게 조작하고 그 결과를 다른 테이블에 다시 저장하거나 갱신하는 일련의 처리를 할 때 주로 프로시저를 이용한다. 프로시저 구문 예시 CREATE OR REPLACE PROCEDURE MY_NEW_JOB_PROC (AV_EMP_NO IN VARCHAR2, AV_EMP_NM IN VARCHAR2, AV_AGE IN NUMBER) IS V_AGE EMP_INFO.AGE%TYPE; V_GRD_CD EMP_INFO.GRD_CD%TYPE; -- EMP_INFO라는 테이블의 컬럼의 타입을 가져온다 V_CNT NUMBER := 0; -- 이.. 더보기
[Oracle] SEQ를 이용해서 MAX값 따오는 경우 발생할 수 있는 실수 현재 DB에 저장되어 있는 컬럼 SEQ 중 최대값을 가져와 + 1 한 값을 구하기 위해 다음과 같이 쿼리를 작성했다. SELECT MAX(NVL(SEQ, 0)) + 1 FROM TBL 하지만 아무 row도 나오지 않는다. 상식적으로 SEQ가 null인 경우 '0' 을 반환하라고 쿼리를 작성한 것이나, NVL을 해보면 아무 row도 반환되지 않는다. SELECT NVL(SEQ, 0) FROM TBL 결론부터 말하면, 다음과 같이 그룹함수를 이용하여 '해당 테이블에 아무 데이터도 없는 경우여 무조건 빈 row 하나는 리턴되게' 한 후 원하는 작업을 해야 한다. SELECT NVL(MAX(SEQ), 0) + 1 FROM TBL 이게 정상 작동할 수 있는 이유는 해당 테이블에 아무런 데이터가 없어도 그룹함수를 .. 더보기
발전하는 개발자가 되기 위해서는 https://baek.dev/post/26/경력을 발전 시키고 싶다면 - 커리어 스킬(1)소프트웨어 개발자를 대상으로 하는 온갖 서적을 살펴보아도 업계에 입문하는 방법, 성장하고 출세하는 방법, 최대 성과를 거두기 위해 알아두어야 할 것을 포함해 개발자가 알아야 할 사항을 �baek.dev 공감가는 부분도 있고 감명깊게 읽어 가슴에 자주 새겨두려고 스크랩 해둔다 :) 더보기
메이븐 기초 (2) pom 파일 *** 메이븐 기초 1편 안보고 왔다면 보러가기 :-) https://rimkongs.tistory.com/243 메이븐 기초 (1) Maven이란 / Maven 설치법 / jar파일 생성하기 Maven이란? 프로젝트 빌드와 라이프 사이클, 사이트 생성 등 프로젝트 전반을 위한 관리 도구로서 많은 자바 프로젝트가 메이븐을 사용해서 프로젝트를 관리하고 있다. 그럼, Maven을 왜 사용할까? rimkongs.tistory.com 메이븐 프로젝트를 생성하면 pom.xml 파일이 프로젝트 루트 폴더에 생성된다. 이 pom.xml 파일은 Project Object Model 정보를 담고 있는 파일이다. pom.xml 의 주요 관련 태그만 살펴보자. (각자 pom.xml 파일을 열어 살펴보자) : 이 프로젝트에서.. 더보기
메이븐 기초 (1) Maven이란 / Maven 설치법 / jar파일 생성하기 Maven이란? 프로젝트 빌드와 라이프 사이클, 사이트 생성 등 프로젝트 전반을 위한 관리 도구로서 많은 자바 프로젝트가 메이븐을 사용해서 프로젝트를 관리하고 있다. 그럼, Maven을 왜 사용할까? Spring Framework에는 다양한 모듈이 존재한다. 핵심 모듈로는 spring-core, spring-beans, spring-context, spring-aop를 비롯한 spring-webmvc, spring-jdbc, spring-tx 등이 있다. 각 모듈은 스프링 프레임워크에 포함되어 있지 않은 다른 모듈을 필요로 한다. 예를 들어 spring-aop 모듈은 aopalliance 모듈을 필요로 하고, spring-orm 모듈은 JAP나 하이버네이트 모듈을 필요로 한다. 각 모듈은 모두 메이븐 중.. 더보기
Spring 프로젝트를 AWS에 웹 배포하기 (JAVA, Tomcat 설치부터 사이트 띄우기까지) 1. openJDK-8 설치 sudo apt-get install openjdk-8-jre openjdk-8-jdk 설치 경로 확인 java 파일구조 1. java-8-openjdk-amd64/bin/java 2. java-8-openjdk-amd64/bin/javac 3. java-8-openjdk-amd64/jre/bin/java 경로 옮겨주기 # mv java-8-openjdk-amd64 /usr/local 다시 확인해보면 java-8-openjdk가 해당 경로에 당연히 없어져있다. 옮겨준 경로(/usr/local)로 가보면 여기에 java-8이 있는 걸 확인 가능 java 환경변수 설정 java 라는 이름으로 링크 생성 export JAVA_HOME = /usr/local/java export C.. 더보기
AWS 고정 IP 할당 받기 (EIP) + 주의사항!!!! 인스턴스도 결국 하나의 서버이기 때문에 IP가 존재합니다. 인스턴스 생성 시에 항상 새 IP를 할당하는데, 한 가지 조건이 더 있습니다. 같은 인스턴스를 중지하고 다시 시작할 때도 새 IP가 할당됩니다. 즉, 요금을 아끼기 위해 잠깐 인스턴스를 중지하고 다시 시작하면 IP가 변경되는 것입니다. 이렇게 되면 매번 접속해야 하는 IP가 변경돼서 PC에서 접근할 때마다 IP 주소를 확인해야 합니다. 굉장히 번거로우므로 인스턴스의 IP가 매번 변경되지 않고 고정 IP를 가지게 해야 합니다. 그럼, 고정 IP를 할당하겠습니다. EIP 할당 AWS의 고정 IP를 Elastic IP(EIP, 탄력적 IP)라고 합니다. EC2 인스턴스 페이지의 왼쪽 카테고리에서 탄력적 IP를 눌러 선택하고 주소가 없으므로 [새 주소 .. 더보기
dto는 재활용이 되지 않습니다. (따로 선언해줍시다) SearchChartDTO dto = new SearchChartDTO(); dto.setSite_name("itunes"); (..생략..) dto.setSite_name("flo"); 같은 dto 객체에 대해 "itunes" 도 세팅하고, "flo" 도 세팅했습니다. 이러면 마지막에 세팅한 "flo"가 값이 박히는게 아닙니다. 저렇게 따로 세팅해줘야 할 일이 있다면, 아래와 같이 dto를 각각 만들어서 사용해주세요 SearchChartDTO dto = new SearchChartDTO(); dto.setSite_name("itunes"); (..생략..) SearchChartDTO dto2 = new SearchChartDTO(); dto2.setSite_name("flo"); 더보기