윈도우에 오라클을 설치하고 외부에서 접근하려면 방화벽에 해당 포트를 추가해줘야 한다.










인바운드 규칙이 생성된다.



생성된 규칙을 더블 클릭하여 속성을 연다.


고급탭에서 '에지 통과'를 허용으로 해준다.


테스트해 볼 것......



이렇게 했는데도 안되면 오라클 설치된 곳에서

oracle net configuration assistant 로 리스너를 재구성해 볼 것.

oracle net manager에서는 리스너의 호스트를 컴퓨터 이름으로 해라.



Posted by 후니아부지
:

대량의 데이터를 DB에 넣고자 할 때, 엑셀로 작업해서 Toad의 Import 기능을 사용하면 편리하다.

그러나......

필드 중 Date 타입이 문제가 되는 경우가 많다........가 아니라......이게 제일 큰 문제다.

날짜 포멧 맞추기도 힘들고, 맞췄더니 날짜만 들어가고 시간은 빠져 버린다든지.......

수만 건의 데이터를 일일이 날짜 포멧 맞춰서 인서트 할 수 도 없고.... 참 죽을 맛이지.....

주위에 물어봐도 포기해라... 날짜는 중요한게 아니니 빼버려라...등등... 영양가 없는 소리나 해대고.....


아...놔.... 내일 약 10만 건 정도 작업해야하는데....... 으~아~~~~~~~~악~~~~~~~~



죽으란 법은 없는법!!

구글링하다 결국에는 방법을 찾았지롱~



다음과 같은 테이블이 있다.

HIREDATE가 DATE 타입이다!!!!


엑셀에 컬럼을 동일하게 구성한다.

아래처럼 제일 마지막(어디든지 상관 없으나 보기 편하게 제일 끝으로~)에  날짜 데이터를 넣는다.

위 화면에서 I열에 날짜 데이터가 있는데 실제값은 '2014-07-25 1:18:20 PM' 이렇게 들어가 있다.

실제로 넣을 날짜 컬럼인 HIREDATE에 위와 같이 텍스트로 변경되도록 식을 넣어준다.

=TEXT(컬럼, "YYYY-MM-DD HH:MM:SS")



테이블에 Date 타입으로 넣어야하는 컬럼에 날짜를 텍스트로 변경하는 식을 쓰는것!   

이게 핵심이다!!!


엑셀에서 작업은 이게 끝이다.


그다음은 Toad 데이터를 넣어보자.

엑셀 파일 불러오는 것은 다들 알테고.....


엑셀에서 날짜를 텍스트로 바꿀 때 'YYYY-MM-DD HH:MI:SS' 와 같이 포멧을 사용했으므로 

아래와 같이 설정해준다.


실제 컬럼과 엑셀 파일의 컬럼이 일치하게 맞춰준다.

엑셀 파일의 I컬럼은 테이블과 매칭되는 컬럼이 없도록 설정한다.


앞서 오류 났던 HIREDATE에 데이터가 제대로 나오는 것을 볼 수 있다.


넣어버렷~



데이터 조회해보면 아래와 같이 들어가 있는 것을 볼 수 있다.


끝~


Posted by 후니아부지
:

oracle 계정으로 로그인한다.

터미널에서 다음과 같이 진행한다.


※ sqlplus /nolog

데이터베이스에 접속하지 않고 실행


※ conn / as sysdba

운영체제 계정을 디폴트 로그온에 사용하며 시스템 권한으로 연결한다.


※ alter user 계정 identified by 암호;

해당 계정의 암호를 변경한다.



Posted by 후니아부지
:

JDBC를 이용해 데이터를 가져올 때 아래와 같은 오류가 발생하는 경우가 있다. 

....: Column Index out of range, 0 < 1.

내 경우, 이유는 ResultSet을 가져올 때 아래처럼 컬럼 인덱스를 잘못 지정해서 그런 거였다.

while(rs.next()) {
    int a = rs.getInt(0);
    int b = rs.getString(1);
    ....
}

컬럼의 인덱스는 1부터 시작하는데 0으로 써서 문제가 되었던 것이었다.

참고: http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getInt(int)



Posted by 후니아부지
:

MySQL Installer를 사용하여 설치 시 다음과 같이 라이센스 변경에 관한 팝업이 나타날 수 있다.


commuinity edition을 설치하는데 팝업 내용은 commercial edition을 설치해줘서 고맙단다. -_-;;;;

아무튼, GPL인 MySQL 제품이 설치된 것으로 나오니 commercial edition을 설치(community edition 이라니깐!!!!)하려면 

GPL 제품을  Commercial 라이선스로 변환해야 한다고 한다.


예(Y)를 클릭할 경우, installer에 변환에 필요한 파일이 없다고 하면서 끝~


아니요(N)를 클릭할 경우, 그냥 설치 끝~


어쩌라고.....



해결 방법은 시스템에 설치된 MySQL 제품을 모두 지우고 다시 installer를 실행하면 된다.


나의 경우, MySQL Connector를 먼저 설치했었다. 

그래서 이를 제거하고 다시 설치하니 정상적으로 설치가 진행되었다.


끝~




 


Posted by 후니아부지
:
Posted by 후니아부지
:

root 계정으로 아래 스크립트를 생성한다. 

# gedit /etc/init.d/oracle


다음 내용을 써준다.

#!/bin/bash
#chkconfig: 2345 95 20
#description: oracle service
#processname: oracle

# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab

export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11g
export ORACLE_OWNR=oracle
export PATH=$PATH:$ORACLE_HOME/bin

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
    echo "Oracle startup: cannot start"
    exit 1
fi

case "$1" in
    start)
        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
        sudo touch /var/lock/oracle
        echo "OK"
        ;;
        
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
        sudo rm -f /var/lock/oracle
        echo "OK"
        ;;
        
    reload|restart)
        $0 stop
        $0 start
        ;;
        
    *)
        echo "Usage: `basename $0` start|stop|restart|reload"
        exit 1
esac

exit 0

생성한 파일을 실행할 수 있도록 변경한다.

# chmod 750 /etc/init.d/oracle


서비스를 등록한다.

※ chkconfig --add [서비스이름] --level 0356

# chkconfig --add oracle --level 0356



리부팅 후 자동으로 시작된다.


Posted by 후니아부지
: