본문 바로가기

Developer Diary/SQL & DB

(7)
왜 제 오라클 DB에선 한글을 3 Byte로 인식하는 거죠? Q. 제가 A라는 테이블을 하나 만들었습니다. name이란 칼럼이 있는데요, 이 칼럼엔 '홍길동', '이순신'과 같은 세 글자 이름이 들어가도록 하려고 합니다. 그래서 name 칼럼의 데이터 타입 길이는 6 Byte로 지정했습니다. 그런데 insert가 되지 않습니다. 그래서 데이터 타입 길이를 9 Byte로 해 주었더니 인제야 insert가 됩니다. 아무래도 한글 한 글자를 3 Byte로 인식하는 것 같은데, 왜 이런 걸까요? A. 간단합니다. 오라클 설치할 때 문자 집합을 어떻게 설정했느냐에 따라 한글을 인식하는 Byte 길이가 달라집니다. KO16KSC5601(한글 완성형), KO16MSWIN949는 한글 한 글자를 2 Byte로 인식합니다. 하지만, UTF8/AL32UTF8의 경우 한글 한 글자의..
오라클 에러 Listener refused the connection with the following error:ORA-12505 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..
HTML 태그를 파싱해서 SELECT A_TBL이라는 테이블이 있습니다. 이 테이블에는 con, con2, ... 등의 컬럼이 있는데, 그 중 con이라는 컬럼 안에는 '...'처럼 HTML 태그가 들어 있습니다. 컬럼의 HTML 태그만 제외하고 SELECT 되도록 udf_StripHTML 사용자 함수를 생성해 보겠습니다. CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @Start INT DECLARE @End INT DECLARE @Length INT SET @Start = CHARINDEX('',@HTMLText,CHARINDEX('',@HTMLText,CHARINDEX('
미쳐부러.. 연 이틀 동안 ORACLE --> MS-SQL로 갈아타겠다고 온갖 개고생을 떨었는데 설치는계속 오류나서 중도 포기했고. 애초에 MS-SQL 기본으로 작성된 쿼리가 오라클에서 안 돌아가는 통에 이런 삽질을 시작한 건데. 결국 아무 소득도 없다. 소스 코드 분석을 해야 하는데, 기본이 되는 DB 설치부터 애 먹고 있으니 이틀 동안 그야말로 대판 쌩 고생 떨고 아무 소득도 없다는. MySQL은 또 왜 계속 설치 오류가 뜨는 건지. 누구는 지식인으로, 또는 구글로 잘도 오류 해결한다드만. 이건 대체 뭐 어쩌라고. 알려준대로 해도 다 안돼! 내가 배운 컴퓨터 관련 지식은 전부 다 헛것이었나. 아 젠장.
Oracle 10g 에서 tnsnames.ora 파일 위치 OLEDB 연동을 위해 tnsnames.ora 파일 위치를 찾느라 조금 헤맸다. 설치 경로에 따라 다르겠지만 일반적으로 다음과 같다. C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN
ASP에서 ORACLE 연동 환경 : 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에 맞게 프로바이더를 뽑아 내고 싶다면, 일단 바탕화면에서 [새로만들기]로 임의의 "텍스트"파일을 만들고, 확장자를 ".u..
톰캣 사용을 위한 ORACLE 포트 변경 이미 기존에 톰캣 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;..