본문 바로가기

전체 글103

인텔리제이 xml 파일 노란줄 해결하기 인텔리제이에서 xml 파일에 이렇게 노란색으로 표시되었다면 그 이유는 DATABASE를 연결하지 않았기 때문에 발생할 확률이 높다. 맨 오른쪽에서 3번째 Databases를 누르면 이렇게 열리는데 여기서 + 버튼을 통해 데이터베이스를 연결할 수 있다. 프로젝트에 사용될 데이터베이스를 선택하고 연결하면 노란줄이 사라진다. 끝! 2025. 5. 27.
[검색성능향상] 인덱스 사용하기 오라클 인덱스 사용하는 방법(**oracle 11g 사용함.)우선 인덱스를 사용하는 이유는 검색 속도를 향상할 수 있기 때문이다.  검색, 조인, 정렬, group by, distinct,update, delete 등에서 성능을 향상시킬 수 있어서 인덱스를 사용하는 것이 좋다. 하지만 인덱스가 많을수록 검색 속도는 빨라지지만, INSERT, UPDATE, DELETE 작업은 느려질 수 있기 때문에 필요한 경우에만 인덱스를 생성해야 한다.     1) WHERE 절에 포함되지 않는 인덱스는 사용되지 않을 수 있음 2) 인덱스가 너무 많으면 INSERT, UPDATE, DELETE 성능 저하 3) 자주 변경되는 컬럼에는 인덱스 비효율적   1) 자주 검색(WHERE)되는 컬럼 2) JOIN에 사용되는 컬럼.. 2025. 2. 22.
CrossRef(크로스레프) 검색 API 사용법 CrossRef(크로스레프) 검색 APIDOI를 통해 논문, 저널, 학술 자료를 검색할 수 있도록 지원하는 서비스 *CrossRef Metadata API를 활용하면 자바 스프링 환경에서 논문 정보를 검색 및 활용 가능1. CrossRef Metadata API 엔드포인트● 기본 검색GET https://api.crossref.org/works?query={검색어} ● DOI 이용 검색GET https://api.crossref.org/works/{DOI} ● 저자, 제목, 저널 필터링GET https://api.crossref.org/works?query.author={저자명}&query.title={제목}  *** CrossRef API는 기본적으로 무료이며, 요청 헤더에 사용자 에이전트(User-A.. 2025. 2. 7.
Unpaywall API란? Unpaywall API란?학술 논문의 무료 오픈 액세스 버전을 찾을 수 있도록 도와주는 API 주로 연구자 및 개발자 및 기관들이 논문 접근성을 높이기 위해 사용함. 1. Unpaywall API란?● 기능 : DOI(Digital Object Identifier)  ● 제공방식 : RESTful API ● 요금 : 무료 ● 사용제한 : 과도한 요청 방지 위해 일정 요청 속도 제한 존재 2. API 사용 방법● API 엔드포인트 (1) 기본 요청 URL https://api.unpaywall.org/v2/{DOI}?email={YOUR_EMAIL}- {DOI} : 논문의 DOI를 입력- {YOUR_EMAIL} : 요청하는 사용자의 이메일 (필수) (2) 예제 https://api.unpaywall.or.. 2025. 2. 7.
ORA-01461: LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다. ; uncategorized SQLException; SQL state [72000]; error code [1461]; ORA-01461: LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다.  SELECT LPAD(TO_CHAR(TO_NUMBER(NVL(MAX(JN_NO), '0')) + 1), 8, '0') FROM JOURNALS MERGE INTO JOURNALS T USING ( SELECT #{jnNo} AS JN_NO, #{jnTitle, jdbcType=VARCHAR} AS JN_TITLE, TO_CHAR(TO_DATE(SUBSTR(#{jnLastUpd.. 2025. 2. 2.
ORA-01489: 문자열 연결의 결과가 너무 깁니다 ; uncategorized SQLException; SQL state [72000]; error code [1489]; ORA-01489: 문자열 연결의 결과가 너무 깁니다 ; nested exception is java.sql.SQLException: ORA-01489: 문자열 연결의 결과가 너무 깁니다  오류 원인 : 문자열 연결(CONCAT) 결과가 VARCHAR2(4000) 제한을 초과할 때 발생한다. 문제 해결 : XMLAGG를 사용해서 LISTAGG() 대신 XMLAGG()로 CLOB 처리하면 된다. 이 방법으로 저자명을 이어 붙여서 출력하려고 했을 때는 성공적으로 가져와졌는데, 같은 방식으로 출판사를 이어 붙여서 출력하려고 하니 ORA-01489 문제가 발생했다.   이 SQL 문은 AUT.. 2025. 2. 2.
ORA-24816: 실제 LONG 또는 LOB 열 뒤에 확장된 비LONG 바인드 데이터가 제공됨 java.sql.SQLException: ORA-24816: 실제 LONG 또는 LOB 열 뒤에 확장된 비LONG 바인드 데이터가 제공됨 오류 원인 : CLOB 또는 BLOB 같은 LOB 필드 뒤에 일반(non-LOB) 데이터를 바인딩하려고 할 때 발생한다. 해결 방법 : Oracle에서는 LOB 데이터를 처리할 때 특정한 순서를 요구하는데, LOB 필드는 항상 마지막에 바인딩하면 된다. ▼ 오류가 발생한 쿼리문  ▼ 수정한 쿼리문 2025. 2. 2.
ora-00600: 내부 오류 코드, 인수: [koklismem1: r_length is 0] ora-00600: 내부 오류 코드, 인수: [koklismem1: r_length is 0], [], [], [], [], [], [], [], [], [], [], []  오라클 CLOB 데이터형을 사용했다.MERGE 문에서 CLOB 데이터를 직접 SET 할 때 문제가 발생할 수 있다고 한다. 특히 NULL 값이거나 빈 CLOB(EMPTY_CLOB())을 업데이트할 경우 오류 가능성이 증가한다. Oracle이 CLOB 데이터를 처리하는 방식은 일반적인 데이터 타입과 다르기 때문에 CLOB가 있는 테이블을 대상으로 MERGE할 때 내부 버퍼 문제가 생긴다.해결 방법으로는 1. CLOB 컬럼을 제외한 MERGE 실행 후, 별도로 UPDATE 수행 2. NVL을 사용하여 NULL 방지 3. MERGE 사용.. 2025. 1. 31.
ORA-00907: 누락된 우괄호 ### SQL: SELECT COUNT(*) FROM JOURNALS WHERE 1=1 AND ( JN_LICENSE_TYPE = 'Publisher's own license' ) ### Cause: java.sql.SQLSyntaxErrorException: ORA-00907: 누락된 우괄호 ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00907: 누락된 우괄호    문제가 뭘까요 ?  바로바로... ORA-00907: 누락된 우괄호 오류는 SQL 문에서 괄호가 제대로 닫히지 않았음을 나타내는데, 에러 메시지를 분석해보면 문제는 JN_LICENSE_TYPE = 'Publisher's own license'.. 2025. 1. 23.
TooManyResultsException 오류 심각: Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2] with root causeorg.apache.ibatis.exceptions.TooManyResultsException: Ex.. 2025. 1. 17.