본문 바로가기

Dev. Database

(58)
[ORACLE] 테이블의 Primary Key Column 조회 Query 문 -- PK 조회SELECT A.TABLE_NAME, B.COLUMN_NAME, A.CONSTRAINT_NAME, A.CONSTRAINT_TYPE, A.SEARCH_CONDITION FROM USER_CONSTRAINTS A, USER_CONS_COLUMNS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.TABLE_NAME = 'TB_REFUND_APP_LIST_PILOT' AND A.CONSTRAINT_TYPE = 'P';
ORA-28001: the password has expired 해결법 JDBC 연동해서 오라클 계정 잘 쓰고 있었는데 어느 순간 ORA-28001: the password has expired 어쩌구 에러가 나오면서, DB연결이 실패할 때가 있다. 오랜 기간이 지나면 해당 id의 password가 자동으로 만료 되는지는 모르겠지만, 저 에러메시지는 만료되었다는 것을 말한다. 그러므로 해결하기 위해서는 오라클에서 SQL PLUS 실행해서 사용자명(ID) : 여기에 기존에 쓰던 ID를 넣으면, password가 expired 되었으니 새로 입력하라고 뜬다. 그러면 새로운 password를 쳐주고 확인을 위해서 한번 더 password를 쳐주면 암호가 재설정 되면서(원래의 암호로 쳐줘도 된다) 위의 에러가 해결된다!
Delete, Drop, Truncate의 차이점 [출처] DBA 커뮤니티 구루비 TABLE에서 행을 삭제하는 세 가지 OPTION의 비교 TABLE에서 모든 행을 삭제하는 방법에는 다음과 같은 세 가지 OPTION이 있다. 1. DELETE 명령어 사용 DELETE 명령어를 사용하여 TABLE의 행을 삭제할 수 있다. 예를 들어 EMP TABLE에서 모든 행을 삭제하는 명령문은 다음과 같다. SQL>DELETE FROM emp; ◈ DELETE 문을 사용할 때 TABLE이나 CLUSTER에 행이 많으면 행이 삭제 될 때마다 많은 SYSTEM 자원이 소모된다. 예를 들어 CPU 시간,REDO LOG 영역, TABLE이나 INDEX에 대한 ROLLBACK SEGMENT 영역 등의 자원이 필요하다. ◈ TRIGGER가 걸려있다면 각 행이 삭제될 때 실행된다..
ORACLE|DB Link 생성 및 사용법 1. 권한 DB Link를 생성하기 위해서는 DBA 권한이 있어야 함2.생성 방법 1) tnsnames.ora의 Alias 활용 방법 CREATE [SHARED][PUBLIC] DATABASE LINK link_name [CONNECT TO CURRENT_USER] [USING 'connect_string'] CREATE DATABASE LIKN CONNECT TO IDENTIFIED BY USING 2) 직접 db 정보 사용 방법 CREATE DATABASE LINK CONNECT TO IDENTIFIED BY USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = ) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICAT..
DBMS별 문자열 합치기 방법 오라클 테이블확인 상단처럼 title 컬럼과 idx 컬럼이 존재하는 A테이블의 데이터를 합쳐보도록 하겠습니다.오라클의 경우 문자열을 합치고자 하려면 일명 OR 표시로 문자열을 붙여줍니다. 오라클 문자열합치기 쿼리?12SELECT TITLE,IDX,TITLE||'-'||IDX TOTAL FROM A TITLE,IDX 컬럼에 추가로 TITLE + - + IDX 문자열을 합쳐서 TOTAL이라는 ALIAS를 정해준 쿼리결과를 확인해보도록 하겠습니다. 오라클 문자열합치기 실행결과 다음은 MySQL 컬럼의 문자열을 합쳐보도록 하겠습니다. MySQL 테이블확인역시 기존 존재하는 테이블의 테이블 확인 후 문자열을 합쳐보도록 하겠습니다. MySQL 문자열합치기 쿼리 ?12SELECT TITLE,CONTENT,CONCAT..
[iBatis/myBatis] #와 $의 차이점 1. #는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USER WHERE col = ? parameter : [값] ?에 bind된 값이 들어가게 된다. 이 쿼리의 컴파일 된 내용을 재사용 할 수 있고, 파라미터에 따라 대입해주므로 효율적이다.내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다. * preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체 사용 용도 >> #일 경우, 값에 사용한다. myBatis : 컬럼명 = #{값} iBatis : 컬럼명 = #값# * 쿼리에 작은 따옴표가 붙게 된다. 2. $는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USERWHERE col = 값 값이..
mybatis + mariaDB 연동 마이바티스를 이용해서 마리아db연동을 해보겠습니다. 일단 라이브러리를 받아야 하는데, 메이븐을 이용하도록 하죠.메이븐은 라이브러리 관리에 참 편합니다. 예전에는 라이브러리를 파일 자체로 리소스 폴더에 관리를 해서 개발자간의 버전문제 같은게 있었죠. 메이븐에서 관리를 하게 되면 버전 문제가 있을 수 없겠죠? 어짜피 디펜던시만 복사해서 붙어 넣으면 되니까요... 어쨌든 마이바티스를 설정 해 보겠습니다. 해당 파일은 pom.xml에서 관리 되고 있습니다. 여기서 dependency를 추가해 주면 자동으로 해당 라이브러리를 다운로드 합니다.라이브러리를 찾는 가장 쉬운방법은 maven repository(http://mvnrepository.com)를 확인 하시면 됩니다. 일단 저희는 마이바티스, 마리아db, d..
10주년 맞은 하둡··· 더그 커팅의 회고와 전망 아파치 하둡이 지난 1월 28일 10주년을 맞은 가운데, 공동 창안자 더그 커팅이 하둡의 초창기를 회고하고 미래를 진단했다. 10년 전 2006년 1월 28일, 더그 커팅(Doug Cutting)과 마이크 카파렐라(Mike Cafarella)는 오픈소스 웹 크롤러 프로젝트인 아파치 너츠(Apache Nutch)를 분산형 파일 시스템과 맵리듀스(Map Reduce)로 분리한 다음, 하둡(Hadoop)이라는 하위 프로젝트를 탄생시켰다. 커팅은 아들이 가지고 놀던 코끼리 봉제인형의 이름에 착안해 이 프로젝트의 이름을 지었다. 커팅과 카파렐라는 2003년부터 너츠를 함께 추진했었다. 그런데 구글이 2004년 발표한 2개의 연구 자료가 '영감'을 줬다. 단 몇 줄의 코드로 수천 개의 머신을 병렬로 가동시킬 수 있..