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 신고

A_TBL이라는 테이블이 있습니다. 이 테이블에는 con, con2, ... 등의 컬럼이 있는데, 그 중 con이라는 컬럼 안에는 '<table><tr><td><font>...</table>'처럼 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)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET
@HTMLText = STUFF(@HTMLText,@Start,@Length,'')
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN
LTRIM(RTRIM(@HTMLText))
END
GO

사용예제: html 파싱이 필요한 컬럼을 udf_StripHTML(...) 괄호 안에 기입

select writeid, writernm, deptnm, canm, title,
dbo.udf_StripHTML(con), dbo.udf_StripHTML(con2),
dbo.udf_StripHTML(pre), dbo.udf_StripHTML(mid),
dbo.udf_StripHTML(res), dbo.udf_StripHTML(self1),
dbo.udf_StripHTML(self2), pointssum, workdate
from A_TBL order by workdate asc

→ HTML 코드만 쏙 빠진 채 오리지널 데이터만 SELECT 될 것입니다.
SQL 2000 버전에서는 사용 불가. 2005, 2008 버전에서만 사용 가능.

 
저작자 표시 비영리 동일 조건 변경 허락
신고

연 이틀 동안 ORACLE --> MS-SQL로 갈아타겠다고 온갖 개고생을 떨었는데 설치는

계속 오류나서 중도 포기했고. 애초에 MS-SQL 기본으로 작성된 쿼리가 오라클에서 안 돌아가는 통에

이런 삽질을 시작한 건데. 결국 아무 소득도 없다.

소스 코드 분석을 해야 하는데,

기본이 되는 DB 설치부터 애 먹고 있으니 이틀 동안 그야말로 대판 쌩 고생 떨고 아무 소득도 없다는.

MySQL은 또 왜 계속 설치 오류가 뜨는 건지.

누구는 지식인으로, 또는 구글로 잘도 오류 해결한다드만.

이건 대체 뭐 어쩌라고. 알려준대로 해도 다 안돼! 내가 배운 컴퓨터 관련 지식은 전부 다 헛것이었나.

아 젠장.
저작자 표시 비영리 동일 조건 변경 허락
신고
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 신고

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

+ Recent posts

티스토리 툴바