목록programming (25)
돌맹이
mariadb에서 프로시저를 실행할 때, cursor를 불러오지 못하는 현상 때문에 매우매우 골치아팠음. 프로시저 내 변수명을 table명과 다르게 지정해주면 해결./** 이전 코드 예시 **/DELIMITER $$DROP PROCEDURE IF EXISTS dropAll $$CREATE PROCEDURE dropAll()BEGIN DECLARE done INT DEFAULT FALSE; DECLARE constraint_name VARCHAR(64); DECLARE table_name CHAR(64); DECLARE cur1 CURSOR FOR select CONSTRAINT_NAME, TABLE_NAME from information_schema.TABLE_CONSTRAINTS where CO..
오라클 ASM에서 TABLESPACE 관련 명령어 정리 1. tablespace 생성 CREATE TABLESPACE [tablespace_name] DATAFILE '+DATA' SIZE [200M] AUTOEXTEND ON; 2. tablespace에 datafile 추가 ALTER TABLESPACE [tablespace_name] DATAFILE '+DATA' SIZE [size] ; 3. datafile 삭제 ALTER TABLESPACE [tablespace_name] DROP DATAFILE [datafile_name];
어제 약 3GB의 csv데이터를 옮기는데 이상한 현상이 있었다. Export한 데이터와 import된 테이블의 데이터 row수가 달랐던 것. 전체 데이터가 약 1050만건인데, 처음에 Import할때는 1040만건이 입력되어 다시 해보니 두번째는 1045만건 세번째는 1047만건이 입력됐다. 특이한건 데이터의 차이가 정확히 10만, 5만, 3만 이런식으로 만단위였다는 것이다. 처음엔 데이터 안에 개행문자가 포함되어 있어서 그런가 싶었는데, 시도 마다 결과가 달라지는것을 보니 다른문제 같았다. 우선 데이터를 나눠서 이관했더니 해결됐다. 환경은 폐쇄 네트워크망, DB는 Oracle이었고 Export, Import 할때 사용툴은 DBeaver에서 UTF-8 인코딩 방식을 사용했다.
JPA에서 TABLE JOIN할 때, NativeQuery를 이용할 수도 있지만 그렇게 하면 Query를 최소한으로 사용하는 JPA의 의미가 퇴색되므로, 되도록 JPQL을 이용하여 JOIN을 하는 것이 좋다. 작성하는 과정에서 Error가 존재한 이전 코드와 문제를 해결한 이후 코드를 정리해보았다. # 기존 코드 // Member Class @Getter @Setter @ToString @Entity @Table(name = "tbl_members") @EqualsAndHashCode(of="uid") public class Member { @Id private String uid; private String upw; private String uname; } // Profile Class @Getter..
# 코드 public interface MemberRepository extends CrudRepository{ @Query("SELECT m.uid, count(p) FROM Member m LEFT OUTER JOIN Profile p " + "On m.uid = p.member WHERE m.uid = ?1 GROUP BY m") public List getMemberWithProfileCount(String uid); } # 오류 발생 MemberRepository를 위와 같이 작성했을 때, 다음과 같은 오류가 발생했다. Error creating bean with name 'memberRepository' defined in org.zerock.persistence.MemberRepository..