기본 콘텐츠로 건너뛰기

라벨이 ORACLE인 게시물 표시

ORA-12705: Cannot access NLS data files or invalid environment specified

갑자기 사용자 PC에서 ORA-12705 문제가 발생하여 오라클에 접속이 불가능하다고 연락이 왔습니다. 잘 사용하던 프로그램이 갑자가 안된다고 합니다. 인터넷으로 검색하던 중 환경변수에 설정을 하면 된다고 하는데 한번 해봐야 겠습니다. -- 아래는 펌글(http://guisin.net/96) -- NLS 데이터 파일에 액세스할 수 없거나 부적합한 환경이 지정되었습니다. 기존 라이브러리를 추출하던중 나타난 접속 오류. 해당 노트북에는 Oracle 9i, Toad 10.6, instantclient 10 이 설치되어 있었다. 해결 방법 : [내 컴퓨터] - [시스템 등록 정보] - [고급] - [환경변수] 에 들어가서 아래의 [시스템 변수] 에 추가 ( 변수 : NLS_LANG | 값 : KOREAN_KOREA.KO16MSWIN949 ) 시스템 변수 에 NLS_LANG 을 추가한다.(새로 만들기)

오라클 쿼리 문제

제 랩탑에 오라클 9i를 기본으로 설치하고 "scott" , "tiger"로 접속했습니다. 그리고 테이블을 하나 만들고 select 쿼리를 하나 실행했는데 예상치 못하게 에러가 발생했습니다. 현상은 쿼리 시 칼럼 이름을 " 로 묶어 줘야 한다는 것이고, 더욱이 이상한 것은 칼럼 이름이 대소문자를 구분한다는 것입니다. 아래는 캡쳐한 이미지입니다. 칼럼 이름은 각각 Prefix,Run_No 입니다. 오류 발생 쿼리 성공 쿼리 실패("로 묶지 않았을 때) 정말 처음 경험하는 현상입니다. ;2011.05.27 현재까지 알아본 바로는 칼럼 이름에 대,소문자가 섞여 있을때 위와 같은 현상이 발생하는 것 같습니다.

Database Unicode Column

테이블을 생성할때 필드가 유니코드를 지원할려고 하면 데이타 타입을 VARCHAR로 하는 대신 NVARCHAR로 하면 유니코드 지원 가능합니다. (오라클에서는 NVARCHAR대신에 NVARCHAR2) 그리고 INSERT INTO시 문자열 앞에 N 을 붙여줘야 합니다. 예) INSERT INTO TSB_MLS_MASTER(TSB_CLASSNAME) VALUES( N '한글') 예약어를 컬럼 이름으로 사용하기 위해서는 MS-SQL Server나 Access(MS계열)에서는 [ FROM ] 을 사용하고 오라클에서는 " FROM " 을 사용합니다.

오라클 클라이언트 설치 없이 오라클에 접속하기

이전에 오라클에 접속하기 위해 항상 오라클 클라이언트를 먼저 설치를 했었는데, 그렇게 하지않아도 접속하는 방법이 있습니다. 아래 링크에 접속해서 한번 살펴보시기 바랍니다. Instant Oracle Using C#: http://www.codeproject.com/KB/database/C__Instant_Oracle.aspx 간단히 정리하자면 오라클 홈페이지에 가서 instant client basic을 다운로드합니다.(몇개의 버젼이 있는데 원하는 버젼을 다운로드하면 됩니다.) 풀어보면 여러개의 dll파일들이 있는데 여기서, oci.dll , orannzsbb11.dll , oraocci11.dll , oraociei11.dll , oraociicus11.dll , orasql11.dll 위 파일들을 실행 파일이 있는 폴더에 넣어두면 오라클에 접속이 가능합니다. 그리고 아래와 같이 System.Data.OracleClient 를 참조해서 사용하시면 됩니다. 예전에 항상 오라클 클라이언트를 먼저 설치를 했었는데 이제는 응용 프로그램에 포함하기만 하면 되니까 설치가 훨씬 쉬워졌습니다. 2012.08.23 이진 데이타를 읽고 쓸려고 하니까 System.Data.OracleClient로는 되지 않아서  오라클 사이트에서 다운 받은 Oracle.DataAccess dll을 참조하여 사용하였습니다.