오라클 http 포트번호 변경, 오라클 포트번호변경

 

SELECT dbms_xdb.getHttpPort() FROM dual; -- 현재 포트번호
exec dbms_xdb.sethttpport('9988'); -- 바꿀 포트번호

'Oracle' 카테고리의 다른 글

오라클 한글 2byte로 바꾸기  (0) 2013.10.14

WRITTEN BY
먿쨍이
개발바보

,

오라클 한글 2byte로 바꾸기

오라클 설치시 문자집합 설정에 따라 한글을 인식하는 Byte 길이가 달라진다.


아래 퀴리문으로 현재 오라클에 문자집합을 알아보자.

select * from nls_database_parameters where parameter like '%CHARACTERSET%';


한글을 2byte로 읽는다.

KO16KSC5601 한글 완성형 2350 한글 4888 한자 히라가나 카타카나 영문 기호

KO16MSWIN949 한글 KO16KSC5601 를 포함한 현대한글조합 가능 8822자 까지 표현

 


한글을 2byte 또는 3byte로 읽는다.

UTF8

AL32UTF8


한글 2byte로 인식하게 변경해보자.


update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';

commit;

shutdown immediate;

startup;


EXP-00008: ORACLE 오류 6552가 발생했습니다
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다

 character set 이 섞였기 때문이다.

 

/* Formatted on 2009/01/31 00:30 (Formatter Plus v4.8.8) */
SELECT DISTINCT (NLS_CHARSET_NAME (CHARSETID)) CHARACTERSET,
                DECODE (type#,
                        1, DECODE (CHARSETFORM,
                                   1, 'VARCHAR2',
                                   2, 'NVARCHAR2',
                                   'UNKOWN'
                                  ),
                        9, DECODE (CHARSETFORM,
                                   1, 'VARCHAR',
                                   2, 'NCHAR VARYING',
                                   'UNKOWN'
                                  ),
                        96, DECODE (CHARSETFORM,
                                    1, 'CHAR',
                                    2, 'NCHAR',
                                    'UNKOWN'
                                   ),
                        112, DECODE (CHARSETFORM,
                                     1, 'CLOB',
                                     2, 'NCLOB',
                                     'UNKOWN'
                                    )
                       ) types_used_in
           FROM SYS.col$
          WHERE CHARSETFORM IN (1, 2) AND type# IN (1, 9, 96, 112);


결과에서

CHARACTERSET                            TYPES_USED_IN
-----------------------------------------------------
AL16UTF16                               NCHAR
AL16UTF16                               NVARCHAR2
AL16UTF16                               NCLOB
AL32UTF8                                CHAR
AL32UTF8                                VARCHAR2
AL32UTF8                                CLOB


위처럼이 아니라

 

CHARACTERSET                            TYPES_USED_IN
-----------------------------------------------------
 AL16UTF16                               NCHAR
 AL16UTF16                               NVARCHAR2
 AL16UTF16                               NCLOB
 US7ASCII                                CHAR
 US7ASCII                                VARCHAR2
 WE8DEC                                  VARCHAR2

US7ASCII                                CLOB


이런 식으로 하나의 varchar2 에 대해 2개의 characterset 이 나온다면 mix 된 것이다.

 

이 문제에 대한 처리는 아래처럼 하도록 한다.

첫번째로  INIT.ORA 안에 있는 parallel_server parameter 가 false 거나 아예 세팅되어있지 않은지 확인한다

   SQL>show parameter parallel_server

SQLPLUS에서 SYSDBA로 실행한다.


   SHUTDOWN IMMEDIATE;
   STARTUP MOUNT;
   ALTER SYSTEM ENABLE RESTRICTED SESSION;
   ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
   ALTER SYSTEM SET AQ_TM_PROCESSES=0;
   ALTER DATABASE OPEN;
   COL VALUE NEW_VALUE CHARSET
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
   COL VALUE NEW_VALUE NCHARSET
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
   ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
   ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
   SHUTDOWN IMMEDIATE;
   STARTUP;
   -- yes, 2 times startup/shutdown . This is not a typo
   SHUTDOWN IMMEDIATE;
   STARTUP;

parallel_server parameter 을 원상복구한다.

이제 한글을 2BYTE로 인식 한다.

'Oracle' 카테고리의 다른 글

오라클 http 포트번호 변경, 오라클 포트번호변경  (0) 2014.02.12

WRITTEN BY
먿쨍이
개발바보

,