Q. 제가 A라는 테이블을 하나 만들었습니다. name이란 칼럼이 있는데요,
이 칼럼엔 '홍길동', '이순신'과 같은 세 글자 이름이 들어가도록 하려고 합니다.
그래서 name 칼럼의 데이터 타입 길이는 6 Byte로 지정했습니다. 그런데 insert가 되지 않습니다.
그래서 데이터 타입 길이를 9 Byte로 해 주었더니 인제야 insert가 됩니다. 아무래도 한글 한 글자를 3 Byte로 인식하는 것 같은데, 왜 이런 걸까요?

A. 간단합니다. 오라클 설치할 때 문자 집합을 어떻게 설정했느냐에 따라 한글을 인식하는 Byte 길이가 달라집니다. KO16KSC5601(한글 완성형), KO16MSWIN949는 한글 한 글자를 2 Byte로 인식합니다. 하지만, UTF8/AL32UTF8의 경우 한글 한 글자의 길이를 3 Byte로 인식합니다. UTF8/AL32UTF8의 장점은 한글 정렬(order by)이 가능하지만, 3 Byte 길이를 소모합니다.

SQL PLUS 접속하신 후,
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET%';

명령어를 실행시켜 주십시오. 현재 사용 중인 문자 집합을 확인할 수 있습니다.
저작자 표시 비영리 동일 조건 변경 허락
신고

Oracle Developer 연결을 위해 testdb 사용자 계정을 만들고 Connection을 하려고 했지만,
위처럼 에러 메시지가 [테스트]를 하면서 발생했다.
이 에러는 SID가 잘못 입력되었기 때문이며, SID는 DB 인스턴스 이름이기 때문에 내가 명명한 DB 인스턴스 이름을 SID 칸에 입력해 줘야 한다.

SID 이름은 다음과 같은 방법으로 알 수 있다.
https://localhost:1158/em/ 으로 접속하면 화면 상단에 데이터베이스 인스턴스:XXX가 있다.
여기서 XXX가 SID이다. (아래 이미지에선 sagelord가 SID가 된다.)



또는,
SQL PLUS 프로그램을 실행시킨 후,
SQL> select instance from v$thread;
명령어를 실행하면, 현재 명명된 DB 인스턴스 이름을 확인할 수 있다.


 


저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 2016.12.24 18:12 신고

OLEDB 연동을 위해 tnsnames.ora 파일 위치를 찾느라 조금 헤맸다.
설치 경로에 따라 다르겠지만 일반적으로 다음과 같다.

C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN
저작자 표시 비영리 동일 조건 변경 허락
신고
환경 : Oracle 10g, Oracle SQL Developer

예를 들어 DSN(데이터 소스 네임)이 board이고,

유저 아이디가 admin, 패스워드가 admin 이라면, ASP에서 아래와 같이 DB를 연동한다.

set conn = Server.CreateObject("ADODB.Connection")

conn.Open "Provider=OraOLEDB.Oracle;Data Source=board;User ID=admin;Password=admin;Persist Security Info=True;"

★ 잠깐? 프로바이더는 어떤 DB를 사용하는가에 따르다.

현재 쓰고 있는 DB에 맞게 프로바이더를 뽑아 내고 싶다면, 일단 바탕화면에서 [새로만들기]로 임의의 "텍스트"파일을 만들고,

확장자를 ".udl"로 바꿔준 다음에 해당 파일에 오른쪽 마우스 클릭, [속성]에 들어간다.

[공급자] 탭을 선택하면 리스트가 주욱 뜨는데 이곳에서 원하는 프로바이더를 [선택]한다. 그리고, [다음]을 누르고

[연결]탭으로 이동한다. 알맞은 데이터 소스 네임과 아이디, 패스워드를 입력하고 [연결테스트]를 실시한 후 올바르게 연결되었

다면 "성공" 메시지 창이 뜰 것이다. [확인] 누르고 [속성]창은 닫는다. 그리고 해당 파일을 메모장으로 열면 원했던 "프로바이더" 문

을 뽑아낼 수 있다. ^^
저작자 표시 비영리 동일 조건 변경 허락
신고

이미 기존에 톰캣 8080 포트를 사용 중이었으나,
오라클 10g를 깔고 나서 8080포트는 오라클이 선점해 버렸다.

대략 이런 상태….



그래서 오라클 DB 포트를 변경하고자 한다.
명령 프롬프트를 열고 sys 계정으로 sqlplus에 접속한다.

C:\>sqlplus
사용자명 입력, 암호 입력

SQL> select dbms_xdb.gethttpport from dual;
현재 오라클이 사용 중인 포트를 확인할 수 있다.



자, 이제 8080포트에서 8000포트로 변경하도록 하자.

SQL> begin
    2   dbms_xdb.sethttpport('8000');
    3   end;
    4   /


포트 번호 변경이 성공적으로 완수되었다고 메시지가 뜬다.

SQL>select dbms_xdb.gethttpport from dual;

포트 번호가 8080에서 8000으로 변경된 걸 확인할 수 있다.




저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 사자 2013.11.17 23:35 신고

    감사합니다.
    덕분에 포트변경 잘 했어요.

오라클이 설치된 경로 - C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib
    사용자 환경에 따라 다릅니다. 여기서, ojdbc14.jar 파일을 복사

 자바가 설치된 경로 - C:\Program Files\Java\jdk1.6.0_19\jre\lib\ext
    마찬가지입니다. 사용자 환경에 따라 다르죠. 이곳에 붙여 넣습니다.

정상적으로 JDBC가 연결되었습니다.
저작자 표시 비영리 동일 조건 변경 허락
신고

+ Recent posts

티스토리 툴바