본문 바로가기

Database/DB

(40)
mysql int bigint mysql을 사용하면서 몰랐던 정보들을 알아서 적어본다. int / bigint 에 관한 내용인데 먼저 int / bigint 의 최대값은 unsigned 일 경우 각각 4억과 4천경이다(저만큼 넣을 데이터가 있는건가..)...... int는 4바이트(자릿수 10자리) bigint는 8바이트로 (자릿수 20자리) 로 생각면 된다. 자세한 사항은 공식 홈피 확인 https://dev.mysql.com/doc/refman/5.5/en/integer-types.html 두번째로 대부분 많은 분들이 테이블 선언시 int(4) 하면 4자리까지만 들어간다고 생각하실수도 있는데 (실은 내가 그랬다.) 만일 3자리 숫자 999 를 넣었다면 출력될때 0999 로 해당 4자리이하일때 앞에 0을 붙여서 내보낸다. (zero..
mysql workbench 작업시 fk 칼럼 속성 변경시엔 확인을 잘해야합니다. 재미있는것을 발견( 지금까지 몰랐던것을 발견)!! 테이블간의 관계인 fk( Foreign Key Constraint) 가 설정되어 있을때 fk 생성시 해당 칼럼을 not null 속성을 넣지 않았다. (이건 가능함)헌데 not null 속성을 넣을려면 먼저 해당 fk 를 지운후 alter 로 notnull 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. 여기까진 문제가 없다. 이번엔 unsigned 속성을 넣어보려 한다. 헌데 fk의 기본이 되는 pk 속성중에 unsigned 속성이 없다면 어떻게 되느냐?! 아까와 같이 "먼저 해당 fk 를 지운후 alter 로 unsigned 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. "에서 unsigned 속성을 넣은후 다시 fk 속성을 넣을 때 에러가 발생..
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) mysql 만일 mysql 이 설치가 되었고 ps -ef | grep mysql 현 상태에서 서비스가 실행중이라면 실행하고 다시 접속하면 정상적으로 실행된다. mysqld_safe --user=root &
oracle 부정형 조인(ANTI JOIN) 두개의 테이블에서 각각 한개의 칼럼을 비교하여 없는것을 찾는 조인이 부정형 조인 / 안티 조인이라 한다. 두개의 테이블 A , B 가 아래와 같이 있다고 하자. 만일 A not in (B) 를 한다면 결과 값은 bbb 가 나오게 된다. 만일 B not in (A) 가 된다면? 아래의 그림처럼 ccc, ddd 가 나오게 된다. 소스는 심플하다. select distinct a.id , a.namefrom A awhere a.id is not null and a.id not in (select /*+ HASH_AJ*/ id from B where id is not null) - 오라클 11g부터는 not null을 명시 하지 않아도 된다. 그전 버전을 사용한다면 꼭 not null을 넣어주기 바랍니다.(결과..
toad 쿼리에서 갑자기 한글이 않보일때!! toad 결과의 한글이 깨진게 아닙니다. sql 쿼리 날릴때 한글이 갑자기 않보입니다.(결과가 깨진게 아닙니다.)근데 쿼리는 정상적으로 돌아갑니다. 않보이는 곳 복사하여 메모장에서 보니 정상적입니다. 문제의 화면입니다. -_- 무슨 이유인지는 모르겠지만 갑자기 토드의 폰트가 바뀌었습니다.해당 폰트에서는 한글이 먹히지 않는 폰트였구요.(쿼리 치다가 갑자기 바뀌어서 무슨일인가 했습니다.)토드에서 폰트를 변경하는 방법은 다음과 같습니다. 1) 메뉴바에서 View->Toad Options 로 들어갑니다.2) Editor -> Languages 부분의 Edit 로 들어갑니다. 3) Highlighting -> Custom font 로 들어갑니다. 4) 이제 원하는 폰트로 바꾸시면 됩니다. 이제 쿼리문의 한글도 정..
DBlink 시 CLOB으로 지정된 Data Type 은 포기하세요.(view로 만드셔야 됩니다.) 제목 그대로 입니다.DBlink 시키느라고 뻘짓을 하루동안이나 했는데.기쁨의 환희에 젖어 select 날리는 순간.(테이블과 사용자는 보안상 지웠습니다.) "ora-22992 오류 lob 위치를 알수없다!"[출처] ora-22992 오류 lob 위치를 알수없다는 오류 해결법|작성자 오물론 해당 테이블을 로컬 DB에 똑같이 생성해주면 되지만. 그건 말도 안되는 일.하필 가장 중요한 칼럼이 clob로 되어 있다.ㅜㅡㅜ 해당 테이블을 view로 만들어서 보는 방법도 있다고 한다. 링크 참조 : oracleclub뭐... 해당 DBA와 상의해서 DB서버에 다이렉트로 붙기로 합의;ㅋ(물론 다이렉트로 붙으면 안된다는것은 모든 서버사이드 개발자와 DBA가 아는 기본상식; )
java.sql.SQLException : ORA-02068 ORA-03113 잘되던 웹싸이트가 가끔씩 에러를 뿜어낸단다. 설마해서 계속 클릭해봤더니 위와 같이 에러가 나왔다. 에러 내용도 상당히 희한한데 . 어떻게 고쳐야 할지도 막막한 상황. 구굴링을 해보면 DB LINK 설정이 잘못되어 있거나 Oracle8 버전이하에서의 버그라고만 씌어져 있다. DBLINK 는 내가 손볼곳이 아니라서 잘모르겠고, 오라클도 10버전이라서 난감해하고 있었는데 JDBC 의 버전이 맞지 않아서 생기는 경우도 있다고 한다. JDBC가 하위버전일 경우에 나오는 버그로 세션이 제대로 끝기지 않는다고 한다. 결국 odbc.jar 파일을 최신 파일로 교체해주니 아직까진 에러가 나오진 않았다.(4일정도 됐음.) 혹시나 하는 분들은 최신 odbc 파일로 파꿔보시길.
Cannot read response from server. Expected to read 4 bytes.. ibatis를 하는데 에러가 그냥 뿜어져 나온다. Cannot read response from server. Expected to read 4 bytes.. 라고 뜬다면 일단 설정 파일을 의심할것! context.xml 이나 ibatis경우엔 db.properties 의 파일의 속성들을 유심히 볼것!! 사용자명, 비번, mysql이 있는 주소까지 꼼꼼하게 따져보기 바란다.(대소문자 당연히 구분함) -_-나의 경우엔 포트 번호를 8080으로 설정해놓고 안된다고 징징거렸다...ㅋㅋ mysql의 경우 포트는 3306 번임을 명심! 또 명심!!