NLS CHARACTER SET 변경 방법 (ORACLE 7)

제품 : ORACLE SERVER
작성날짜 : 2004-11-09
NLS CHARACTER SET 변경 방법 (ORACLE 7)
======================================
PURPOSE
이 자료는 Oracle RDBMS SERVER에서 NLS CHARACTER SET 변경 방법에 대한
내용을 소개한다.
[ ORACLE 7 에서만 가능 ]
데이타베이스의 CHARACTER SET은 데이타 딕셔너리 테이블인 sys.props$에
들어 있다.
SQL>desc sys.props$
Name Null? Type
NAME NOT NULL VARCHAR2(30)
VALUE$ VARCHAR2(2000)
COMMENT$ VARCHAR2(2000)
SQL>column c1 format a30
SQL>select name c1, value$ c1 from sys.props$;
C1 C1
DICT.BASE 2
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_DATE_FORMAT DD-MON-YY
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET US7ASCII
NLS_SORT BINARY
GLOBAL_DB_NAME NLSV7.WORLD
여기서 NLS_CHARACTERSET에 현재 DB의 CHARACTER SET이 들어 있는데
이 값을 변경하여 DB의 CHARACTER SET을 변경할 수 있다.
여기서는 US7ASCII에서 KO16KSC5601로 옮기는 경우를 알아보자.
우선 바꾸고자 하는 CHRACTER SET이 지원되는 지를 다음 명령으로
확인한다.
select convert('a','KO16KSC5601','US7ASCII') from dual;
만약 이 Select 문에서 ORA-01482 에러가 발생하면 지정한 CHARACTER
SET이 지원되지 않는 경우이며 에러가 발생하지 않으면 CHARACTER
SET을 변경할 수 있다.
작업을 하기 전에는 만약을 위해서 DB 전체를 백업 받아두도록 한다.
CHARACTER SET 을 잘못 변경하면 DB 를 OPEN 할 수가 없기 때문이다.
1. 다음의 Update문을 실행하여 CHARACTER SET을 변경한다.
UPDATE sys.props$
SET value$ = 'KO16KSC5601'
WHERE name = 'NLS_CHARACTERSET';
Update 시에 NLS_CHARACTERSET을 지원되지 않는 값으로 잘못 설정하거나
실수로 콘트롤 문자 같은 것이 들어가게 되면 DB가 Shutdown 된 다음에는
Startup 이 안되므로 Update 후에 다음 명령으로 확인을 한 다음에
Commit을 하도록 한다.
select name, value$
from sys.props$
where value$ = 'KO16KSC5601';
Select가 제대로 출력되면 Commit 하고 Shutdown 했다가 Startup 하게
되면 새로운 CHARACTER SET 값을 갖게 된다. SELECT가 안 되면 ROLLBACK
하고 UPDATE부터 다시 하도록 한다.
2. 환경 변수 NLS_LANG 을 변경한다.
.profile 에서
NLS_LANG=American_America.KO16KSC5601; export NLS_LANG
또는 .cshrc 에서.
setenv NLS_LANG American_America.KO16KSC5601
*** win95 및 winnt의 client에서는 registry editor에서 NLS_LANG 값을
맞추어준다.
주의 !!!
: 위의 작업을 하기 전에 발생할 가능성이 있는 문제점
1) update 중 KO16KSC5601 이나 US7ASCII 등에서 철자를 잘못 입력하시면,
db 재기동 후에, 다음과 같은 에러가 발생합니다.
ora-12708
12708, 00000, "error while loading create database NLS parameter %s"
2) KO16KSC5601과 US7ASCII의 비교
Character set : KO16KSC5601 인 경우
===================================
: double byte encoding schema 이므로, 한글의 경우 2 bytes 를 크기 1로
계산하는 함수들이 있습니다.
그리고, table , column name에 한글을 double quote 없이 사용할 수 있습니다.
예)
SQL> create table 시험1
2 (컬럼1 varchar(10));

a
홍길동
SQL> select length(컬럼1) from 시험1;
1
1
3
SQL> select lengthb(컬럼1) from 시험1;
2
1
6
Character set : US7ASCII 인 경우
=================================
: single byte 7 bit encoding 을 사용합니다.
한글로 된 table, column 이름 사용 시 double quote를 반드시 사용해야 한다.
예)
SQL> create table "사원"
2 ("사원이름" varchar2(10));

a
홍길동
SQL> select length("사원이름") from "사원";
2
1
6
SQL> select lengthb("사원이름") from "사원";
2
1
6
US7ASCII일 때에는 vsize, lengthb function의 결과가 length 함수와 모두
동일합니다.
cf) substr, substrb 함수도 위의 length, lengthb의 관계와 같음.

제품 : ORACLE SERVER
작성날짜 : 2004-11-09
NLS CHARACTER SET 변경 방법 (ORACLE 7)
======================================
PURPOSE
이 자료는 Oracle RDBMS SERVER에서 NLS CHARACTER SET 변경 방법에 대한
내용을 소개한다.
[ ORACLE 7 에서만 가능 ]
데이타베이스의 CHARACTER SET은 데이타 딕셔너리 테이블인 sys.props$에
들어 있다.
SQL>desc sys.props$
Name Null? Type
NAME NOT NULL VARCHAR2(30)
VALUE$ VARCHAR2(2000)
COMMENT$ VARCHAR2(2000)
SQL>column c1 format a30
SQL>select name c1, value$ c1 from sys.props$;
C1 C1
DICT.BASE 2
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_DATE_FORMAT DD-MON-YY
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET US7ASCII
NLS_SORT BINARY
GLOBAL_DB_NAME NLSV7.WORLD
여기서 NLS_CHARACTERSET에 현재 DB의 CHARACTER SET이 들어 있는데
이 값을 변경하여 DB의 CHARACTER SET을 변경할 수 있다.
여기서는 US7ASCII에서 KO16KSC5601로 옮기는 경우를 알아보자.
우선 바꾸고자 하는 CHRACTER SET이 지원되는 지를 다음 명령으로
확인한다.
select convert('a','KO16KSC5601','US7ASCII') from dual;
만약 이 Select 문에서 ORA-01482 에러가 발생하면 지정한 CHARACTER
SET이 지원되지 않는 경우이며 에러가 발생하지 않으면 CHARACTER
SET을 변경할 수 있다.
작업을 하기 전에는 만약을 위해서 DB 전체를 백업 받아두도록 한다.
CHARACTER SET 을 잘못 변경하면 DB 를 OPEN 할 수가 없기 때문이다.
1. 다음의 Update문을 실행하여 CHARACTER SET을 변경한다.
UPDATE sys.props$
SET value$ = 'KO16KSC5601'
WHERE name = 'NLS_CHARACTERSET';
Update 시에 NLS_CHARACTERSET을 지원되지 않는 값으로 잘못 설정하거나
실수로 콘트롤 문자 같은 것이 들어가게 되면 DB가 Shutdown 된 다음에는
Startup 이 안되므로 Update 후에 다음 명령으로 확인을 한 다음에
Commit을 하도록 한다.
select name, value$
from sys.props$
where value$ = 'KO16KSC5601';
Select가 제대로 출력되면 Commit 하고 Shutdown 했다가 Startup 하게
되면 새로운 CHARACTER SET 값을 갖게 된다. SELECT가 안 되면 ROLLBACK
하고 UPDATE부터 다시 하도록 한다.
2. 환경 변수 NLS_LANG 을 변경한다.
.profile 에서
NLS_LANG=American_America.KO16KSC5601; export NLS_LANG
또는 .cshrc 에서.
setenv NLS_LANG American_America.KO16KSC5601
*** win95 및 winnt의 client에서는 registry editor에서 NLS_LANG 값을
맞추어준다.
주의 !!!
: 위의 작업을 하기 전에 발생할 가능성이 있는 문제점
1) update 중 KO16KSC5601 이나 US7ASCII 등에서 철자를 잘못 입력하시면,
db 재기동 후에, 다음과 같은 에러가 발생합니다.
ora-12708
12708, 00000, "error while loading create database NLS parameter %s"
2) KO16KSC5601과 US7ASCII의 비교
Character set : KO16KSC5601 인 경우
===================================
: double byte encoding schema 이므로, 한글의 경우 2 bytes 를 크기 1로
계산하는 함수들이 있습니다.
그리고, table , column name에 한글을 double quote 없이 사용할 수 있습니다.
예)
SQL> create table 시험1
2 (컬럼1 varchar(10));

a
홍길동
SQL> select length(컬럼1) from 시험1;
1
1
3
SQL> select lengthb(컬럼1) from 시험1;
2
1
6
Character set : US7ASCII 인 경우
=================================
: single byte 7 bit encoding 을 사용합니다.
한글로 된 table, column 이름 사용 시 double quote를 반드시 사용해야 한다.
예)
SQL> create table "사원"
2 ("사원이름" varchar2(10));

a
홍길동
SQL> select length("사원이름") from "사원";
2
1
6
SQL> select lengthb("사원이름") from "사원";
2
1
6
US7ASCII일 때에는 vsize, lengthb function의 결과가 length 함수와 모두
동일합니다.
cf) substr, substrb 함수도 위의 length, lengthb의 관계와 같음.

Similar Messages

  • Non supported character set: oracle-character-set-171'  in java XSU

    I cannt update object type CHAR data in table cause Non
    supported character set: oracle-character-set-171'
    NLS lang UTF-8
    database language WIN-1251

    I think it is a bug at JDBC-OCI Driver.
    Now I am useing setPlsqlIndexTable to transfer
    a var to PLSQL procedure, and want to
    retrieve it from out parameter.
    When I transfer English characters, it can
    work correctly, but if I transfer Japnese or
    Chinese characters, the disorderly characters
    were returned. I have not resolved this problem
    yet. Who can tell me how to resolve it.

  • NLS character set

    Hi,
    We have datawarehouse environment..
    Currently the NLS Character set in our database is WE8MSWIN1252 which is non multibyte character set.But since this is a datawarehouse environment datawill be coming from source which is multi byte character set.Could you please let us know whether this will be supported in WE8MSWIN1252 character set or not??
    Thanks,
    Nab

    user10124609 wrote:
    For changing the NLS character set by export and import do we need to install the database again???yes,you can create new database with Unicode character set and can import there.But for full steps please refer
    http://download.oracle.com/docs/cd/E11882_01/server.112/e10729/ch11charsetmig.htm#CEGDHJFF
    Changing the Database Character Set ( NLS_CHARACTERSET ) [ID 225912.1]
    Changing the Database Character Set - Frequently Asked Questions [ID 227337.1]
    Edited by: Chinar on Nov 29, 2010 3:21 AM

  • Non supported character set: oracle-character-set-41

    Hi everyone,
    I have a issue while passing a VARRAY from my Java Class to Stored Procedure.
    TYPE ERR_DATA_ARRAY AS VARRAY(100) OF VARCHAR2(1000);
    In my code i have used ArrayDescriptor and ARRAY class of oracle.
    When i run my program in eclipse i get following exception:-
    java.sql.SQLException: Non supported character set: oracle-character-set-41
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:171)
    at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:135)
    at oracle.sql.CHAR.<init>(CHAR.java:159)
    at oracle.sql.CHAR.<init>(CHAR.java:183)
    at oracle.jdbc.oracore.OracleTypeCHAR.toDatum(OracleTypeCHAR.java:161)
    at oracle.jdbc.oracore.OracleType.toDatumArray(OracleType.java:166)
    at oracle.jdbc.oracore.OracleTypeCHAR.toDatumArray(OracleTypeCHAR.java:208)
    at oracle.sql.ArrayDescriptor.toOracleArray(ArrayDescriptor.java:1517)
    at oracle.sql.ARRAY.<init>(ARRAY.java:117)
    at com.niit.slims.common.ejb.Array_test.test(Array_test.java:52)
    at com.niit.slims.common.ejb.Array_test.main(Array_test.java:20)
    I have added ojdbc14.jar.And my working jdk is jdk1.4.
    Plz help
    Edited by: user10569173 on Dec 8, 2011 3:58 AM

    I am not an expert here,
    but it seems that since you are using ojdbc14.jar you may actually need the
    nls_charset12.jar
    instead of the one I suggested previously.
    Regards
    Peter

  • Java.sql.SQLException: Non supported character set: oracle-character-set-17

    Hi,
    i am trying to execute an Oracle procedure from JDBC. The procedure accepts a Nested table as an input parameter. Definition of the nested table is given below.
    Database – Oracle 10g.
    Application Server – JBOSS 4.2.1
    I get the following exception._
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    I.  JDBC  Code_
    Session s = HibernateUtil.getSession();
    Transaction tr = s.beginTransaction();
    con=s.connection();
    oraConn = (OracleConnection) con.getMetaData().getConnection();
    TableObject obj=new TableObject();
    obj.setId(new Integer(123));//Tested ok, stroing in DB
    obj.setDescr("test"); // this line throwing error
    obj.setCre_user(new Integer(456));
    obj.setUpd_user(new Integer(789));
    obj.setXfr_flag("Y");
    ArrayList al=new ArrayList();
    al.add(obj);
    Object[] objAray = al.toArray();
    ArrayDescriptor arrayDescriptor =ArrayDescriptor.createDescriptor("T_TEST_SYN", oraConn);
    ARRAY oracleArray = new ARRAY(arrayDescriptor, oraConn, objAray);
    cs = (OracleCallableStatement)oraConn.prepareCall("call PKG_OBJ_TEST.accept_ui_input(?) ");
    cs.setArray(1, oracleArray);
    cs.execute();
    tr.commit();
    public class TableObject implements SQLData{
    private String sql_type = "T_OBJ_TEST";
    private int id;
    private String descr;
    //private Date cre_date;
    private int cre_user;
    //private Date upd_date;
    private int upd_user;
    private String xfr_flag;
    public TableObject()
    public TableObject (int id,String descr,int cre_user,int upd_user,String xfr_flag)
    // this.sql_type = sql_type;
    this.id = id;
    this.descr = descr;
    // this.cre_date=cre_date;
    this.cre_user=cre_user;
    //this.upd_date=upd_date;
    this.upd_user=upd_user;
    this.xfr_flag=xfr_flag;
    public String getSQLTypeName() throws SQLException {
    return "T_OBJ_TEST";
    public void readSQL(SQLInput stream, String typeName) throws SQLException {
    //sql_type = typeName;
    id=stream.readInt();
    descr=stream.readString();
    //cre_date=stream.readDate();
    cre_user=stream.readInt();
    //upd_date=stream.readDate();
    upd_user=stream.readInt();
    xfr_flag=stream.readString();
    public void writeSQL(SQLOutput stream) throws SQLException {
    try {
    stream.writeInt(this.id);
    System.out.println("Iddddd");
    stream.writeString(this.descr);
    System.out.println("Desccccccccccccccc"+":"+descr);
    //stream.writeDate(cre_date);
    stream.writeInt(this.cre_user);
    System.out.println("userrrrrrrrrrrr");
    //stream.writeDate(upd_date);
    stream.writeInt(this.upd_user);
    System.out.println("upd uiserrrrrrrrrrr");
    stream.writeString(this.xfr_flag);
    System.out.println("flagggggggggggggggggggg"+xfr_flag);
    }catch (SQLException se) {
    System.out.println("Table object sql exception");
    se.printStackTrace();
    catch (Exception e) {
    System.out.println("Table object exception");
    * @return the id
    public int getId() {
    return id;
    * @param id the id to set
    public void setId(Object obj) {
    Integer iobj= (Integer)obj;
    this.id =iobj.intValue();
    * @return the descr
    public String getDescr() {
    System.out.println("getDescr "+descr);
    return descr;
    * @param descr the descr to set
    public void setDescr(Object obj) {
    System.out.println("setDescr "+obj);
    String sobj = (String)obj;
    this.descr=sobj.toString();
    System.out.println("setDescr "+obj);
    * @return the cre_user
    public int getCre_user() {
    return cre_user;
    * @param cre_user the cre_user to set
    public void setCre_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.cre_user = iobj.intValue();
    * @return the upd_user
    public int getUpd_user() {
    return upd_user;
    * @param upd_user the upd_user to set
    public void setUpd_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.upd_user = iobj.intValue();
    * @return the xfr_flag
    public String getXfr_flag() {
    return xfr_flag;
    * @param xfr_flag the xfr_flag to set
    public void setXfr_flag(Object obj) {
    this.xfr_flag = (String)xfr_flag;
    II.  Oracle database object details
    Details of Object and Nested table created in the database.
    T_TEST_SYN is a public synonym created for t_tab_obj_test
    CREATE OR REPLACE TYPE t_obj_test as object (
    id number(10),
    descr varchar2(100),
    --cre_date  date,
    cre_user number(10),
    --upd_date  date,
    upd_user number(10),
    xfr_flag varchar2(1),
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT ) ;
    CREATE OR REPLACE TYPE BODY t_obj_test as
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT IS
    BEGIN
    SELF.id := id ;
    SELF.descr := descr ;
    --SELF.cre_date  := cre_date ;
    SELF.cre_user := cre_user ;
    --SELF.upd_date  := cre_date ;
    SELF.upd_user := cre_user ;
    SELF.xfr_flag := xfr_flag ;
    RETURN ;
    END ;
    END ;
    CREATE OR REPLACE TYPE t_tab_obj_test AS TABLE OF t_obj_test ;
    CREATE OR REPLACE PACKAGE BODY PKG_OBJ_TEST AS
    PROCEDURE accept_ui_input ( p_tab_obj_test in T_TAB_OBJ_TEST ) IS
    BEGIN
    FOR row IN p_tab_obj_test.First .. p_tab_obj_test.LAST
    LOOP
    INSERT INTO OBJ_TEST ( ID,
    DESCR,
    CRE_DATE,
    CRE_USER,
    UPD_DATE,
    UPD_USER,
    XFR_FLAG )
    VALUES ( p_tab_obj_test(row).ID,
    p_tab_obj_test(row).DESCR,
    NULL,
    p_tab_obj_test(row).CRE_USER,
    NULL,
    p_tab_obj_test(row).UPD_USER,
    p_tab_obj_test(row).XFR_FLAG ) ;
    END LOOP ;
    COMMIT ;
    END accept_ui_input ;
    END PKG_OBJ_TEST;
    /

    Check your CLASSPATH enviroment variable. Try to add something like c:\Ora10g\jlib\orai18n.jar.
    From "JDBC Developer’s Guide and Reference":
    orai18n.jar
    Contains classes for globalization and multibyte character sets support
    This solved the same error in my case.

  • Non supported character set: oracle-character-set-560

    Hi,
    I created a page and its working fine. In another database when i create a page error occurs as
    Non supported character set: oracle-character-set-560
    Thanks in Advance,
    Jegan

    Hi,
    Refer to the thread...Non supported character set: oracle-character-set-46??? - pls help!
    it has the solution for this...
    Thanks,
    Gaurav

  • Non supported character set: oracle-character-set-46??? - pls help!

    Hello,
    I'm running Hello World example. Could you please help me to resolve "Non supported character set: oracle-character-set-46" error i got?!?!
    This seems to be nls_character problem but somehow i can't figure out what and where should be changed to solve the issue :( .
    thnks,

    Hello all,
    thanks for nothing!
    Actually i resolved issue. But still i don't understand the problem and why solution i did worked out.
    Here is the solution i hope that for somebody somehow it will be usefull:
    1) open ... jdevbin\jdev\lib\ext\jrad\config\jrad.properties
    2) and comment out both rows:
    #JRAD.APPS_JDBC_LIB14={JRAD.APPS_LIBRT_DIR}/ojdbc14.jar;{JRAD.APPS_LIBRT_DIR}/nls_charset12.zip
    #JRAD.APPS_JDBC_LIB13={JRAD.APPS_LIBRT_DIR}/classes12.jar;{JRAD.APPS_LIBRT_DIR}/nls_charset12.zip
    3)closed jdeveloper and opened again
    brgds.

  • SQLException: Non supported character set: oracle-character-set-178

    Hello,
    I run a j2ee application on the Sun J2EE Application server.
    I migrated to 0racle 9.2.0.3.
    I have an ejb making a connexion with the oci driver
    and in it I manipulate XMLType:
    PreparedStatement pst = cnx.prepareStatement(sql);
    XMLType xt = XMLType.createXML(cnx, "<ENTETE></ENTETE>");
    pst.setObject(1, xt);
    I've got an exception on the setObject method :
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactory
    Thin.java:171)
    at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:1
    35)
    at oracle.xdb.XMLType.getBytesString(XMLType.java:1687)
    at oracle.xdb.XMLType.getBytesValue(XMLType.java:1623)
    at oracle.xdb.XMLType.toDatum(XMLType.java:431)
    at oracle.jdbc.driver.OraclePreparedStatement.setORAData(OraclePreparedS
    tatement.java:2745)
    at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedSt
    atement.java:3208)
    I have the nsl_charset12.zip , ojdbc14.jar,xdb.jar,xmlparserv2.jar in the J2EE_CLASSPATH of my server.
    Does any one have an idea.
    Thanks , Edwige

    (*bump*)
    Almost the exact same problem here...
    "conn" is an object of type OracleConnection
    "cst" is an object of type "CallableStatement"
    "xml" is a String holding a well-formed XML document (say, "<foo><bar>value</bar></foo>")
    XMLType xt = XMLType.createXML(conn, xml);
    cst.setObject(1, xt); // BOOM! Non supported character set: oracle-character-set-178
    Other relevant details:
    Using the 9.2.0.3 JDBC thin client (ojdbc14.jar)
    Using the newest nls_charset12.zip (in the 9.2.0.3 download section under the "1.2/1.3" heading.
    JDK1.4.1_03 (04?)
    Oracle itself is 9.2.0.3
    database charset is 'WE8MSWIN1252' (yeah, I fought with the DBA and lobbied for UTF-8, but obviously he won that battle... sigh...)
    Also relevant... prior to a few days ago, it worked. Then, the DBA did an upgrade and the charset errors began. It's hard to get a straight answer from him because his English isn't very good, but my guess is that he updated it from 9.2.0.1 to 9.2.0.3.

  • Oracle.sql.ARRAY error "Non supported character set: oracle-character-set-"

    Hi Folks,
    I am getting error :
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    in the following code :
    Object[] arrayToPassToDB=new Object[7];
    ArrayDescriptor arraydesc = ArrayDescriptor.createDescriptor(arrayDesc,con);
    ARRAY array = null;
    array = new ARRAY(arraydesc, con, arrayToPassToDB);
    i am using jdk1.6 and oracle 10g.
    I have copied the orai18n.jar and ojdbc6.jar in WEB-INF\lib directory of my project and also in the Tomcat\lib directory.
    can you please help me?
    Thanks in advance.

    java.sql.SQLException: Non supported character set:oracle-character-set-178

  • Java.sql.SQLException: Non supported character set: oracle-character-set-860

    Hi,
    I am working on resultset.updateRow() and found some problem.
    I've tried the same jsp page on 2 WebLogic server
    one is on a Solaris Platfoem and another is on a NT platform
    On NT Platform it seems to be OK and update the database successfully.
    On Solaris, on error message on WebLogic log but error found in the JDBC log
    java.sql.SQLException: Non supported character set: oracle-character-set-860
    P.S. both jsp page connection to the same database server Oracle 8
    The testing JSP page:
    <%@ page language="java" import="java.sql.*, oracle.jdbc.driver.*,
    java.util.*, javax.sql.*" %>
    <html>
    <head>
    <title>Weblogic Oracle Testing - Store Procedure</title>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    </head>
    Oracle Connection Testing
    <br>
    <body bgcolor="#FFFFFF">
    <%
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    String sql;
    Driver myDriver =
    (Driver)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    try {
    conn=DriverManager.getConnection("jdbc:oracle:thin:sa/z0y1z2y3@oradev01:1521
    :DEV01a");
    DatabaseMetaData DBMetaData = conn.getMetaData();
    boolean support1 =
    DBMetaData.supportsResultSetType(ResultSet.TYPE_SCROLL_SENSITIVE);
    boolean support2 =
    DBMetaData.supportsResultSetType(ResultSet.CONCUR_UPDATABLE);
    %>
    <p><%=support1%></p>
    <p><%=support2%></p>
    <%
    //create a statement
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
    //execute a query
    rs = stmt.executeQuery("SELECT tbl_web_trx_hdr.* FROM tbl_web_trx_hdr");
    int concurrency = rs.getConcurrency();
    int type = rs.getType();
    %>
    <p>concurrency: <%=concurrency%></p>
    <p>type: <%=type%></p>
    <%
    rs.moveToInsertRow();
    rs.updateString("org_idx", "CCC");
    rs.updateString("trx_num", "ABC2");
    rs.updateDate("trx_dte", java.sql.Date.valueOf("2001-06-01"));
    rs.updateString("description", "123");
    rs.insertRow();
    rs.updateRow();
    } catch (SQLException e)
    { System.out.println("SQLMessage: " + e.getMessage());
    finally
    { rs.close();
    stmt.close();
    conn.close(); }
    %>
    </body>
    </html>
    Please help
    regards,
    Fannie

    yupp finally i got the solution. . .
    I was using connection from tomcat connection pooling.
    Hence, even though i was setting the classes12.jar and nls_charset12.jar in the classpath and compiling, -In runtime tomcat was using its own classes in the common/lib folder. . .(which might not support oracle-character-set-178.)
    So just added this jars into the common/lib of tomcat instead of web-inf/lib of my project
    and things began working. . .
    Thanks for the hint jshell. . .

  • How to set NLS character set for report 9i servlet output?

    Hi,
    I am running a Reports 9i report. My problem is that the output HTML file is UTF8 encoded while ALL my 9iASR2 registry setting are set to EEISO8859P2. When I issued the http://&lt;host:port&gt;/reports/rwservlet/showenv?server=servername command it returned that the NLS setting is UTF8.
    Can somebody please help me, how to set this environment variable for the report servlet to EE..P1? Thank you in advance.
    Regards,
    Tamas Szecsy

    Dmitry,
    recently I got this from Oracle support. :-(. Currently when I set the Windows 2000 local and default local to Hungarian and the charset to EE..P2 then I get Central-European encoded charset. I think you will have to experience around to get correct result (if it is possible at all).
    +++++++++++++++++++++++++++++++++++++++++++++++++++++
    This is bug Number 2472932 NLS:RWSERVLET SETS INVALID CHARSET AT THE HTTP HEADER
    marked as fixed in 9.0.2.2 . unfortunately this bug is not published so I will not be able to sent you the bug as a whole but here is problem description in bug:
    iAS9.0.2.0.1 (Reports9.0.2.0.1) on Solaris2.8
    Running rdf with rwservlet sends the invalid charset at the http header.
    Say ias is up with LANG=C, http header for the rwservlet
    is always sent as "iso-8859-1" regardless of rwserver's NLS_CHARACTERSET.
    This is the TCP/IP packet for the GET /reports/rwservlet?report=xxx&....
    HTTP/1.1 200 OK Date: Sat, 20 Jul 2002 01:15:37 GMT Cache-Cont
    rol: private Content-Language: en Server: Oracle9iAS/9.0.2 Ora
    cle HTTP Server Oracle9iAS-Web-Cache/9.0.2.0.0 (N) Content-Leng
    th: 6908 Content-Type: text/html; charset=ISO-8859-1 Set-Cooki
    In this example, to produce a html with other charset than
    iso-8859-1,usually the outputted html has the charset information at
    meta tag by setting "Before Report Value" property in rdf.
    However charset in meta tag is less priority than http header, browser
    such as IE6 or Netscape7 firstly displays the page in iso-8859-1.
    Hence the characters other than iso8859p1 gets garbage.
    To workaround it with IE6/NS7, set proper encoding manually.
    ('View'-'Encoding' for IE 'View'-'Character coding' for NS7 )
    However, NS4.7 does not have workaround for it.
    Besides, starting opmn in LANG=ja, the rwservlet's http header becomes
    Shift_JIS!!. Thus rwserver seems to set the http header based on the
    LANG on Solaris.
    To fix these issues,
    - The http header for rwservlet shold be based on the nls_characterset
    for the rwserver.
    This is no problem for reprots jsp run.

  • ORA-12712 error while changing nls character set to AL32UTF8

    Hi,
    It is strongly recommend to use database character set AL32UTF8 when ever a database is going to used with our XML capabilities. The database character set in the installed DB is WE8MSWIN1252. For making use of XML DB features, I need to change it to AL32UTF8. But, when I try doing this, I'm getting ORA-12712: new character set must be a superset of old character set. Is there a way to solve this issue?
    Thanks in advance,
    Divya.

    Hi,
    a change from we8mswin1252 to al32utf8 is not directly possible. This is because al32utf is not a binary superset of we8mswin1252.
    There are 2 options:
    - use full export and import
    - Use of the Alter in a sort of restricted way
    The method you can choose depends on the characters in the database, is it only ASCII then the second one can work, in other cases the first one is needed.
    It is all described in the Support Note 260192.1, "Changing the NLS_CHARACTERSET to AL32UTF8 / UTF8 (Unicode)". Get it from the support/metalink site.
    You can also read the chapters about this issue in the Globalization Guide: [url http://download.oracle.com/docs/cd/E11882_01/server.112/e10729/ch11charsetmig.htm#g1011430]Change characterset.
    Herald ten Dam
    http://htendam.wordpress.com

  • NLS Character Set problem

    Hi all,
    I am getting very tricky kind of problem oracle 10G. When I am try to insert a special character like '?' in 180 degree opposite direction( means imagine if we rotate the given special character ' ? ' in 180 degree), its perfectly inserting and I am able to see that character in the same way which I inserted in my production database. But if I try to do the sme in my development database and try to view it using select statement, its showing like normal '?' , not in a rotated one. Can any one help me to figure out this problem.
    thanks in advance.
    Karthik

    I suppose you are using a spanish database and this problem it's normal: database doesn't reconigzes this "special character" and it prints this as a "easy conversion" (but not usefull conversion). I want suggest you to use any of the 'NLS_....' parameters at session level (or statment level, if you can). With 'NLS_LANG' you can define country language characterset. If you type well your database can recognize this character among others, like 'ñ', 'á', 'à', etc. If this not runs well you probably will need to change the entire database character set.

  • UpdateString: non supported character set: oracle-character-set-39

    using the programmatic updates jdbc 2.0 api-sample from OTN (http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/sample_code_index.htm) - scrollable resultset - I get the message "non supported character set...".
    Database: 8.0.6
    using classes111.zip
    jdk 1.2
    any ideas?
    thanks a lot,
    andreas

    using the programmatic updates jdbc 2.0 api-sample from OTN (http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/sample_code_index.htm) - scrollable resultset - I get the message "non supported character set...".
    Database: 8.0.6
    using classes111.zip
    jdk 1.2
    any ideas?
    thanks a lot,
    andreas

  • NLS character set non AL32UTF8 versus AL32UTF8

    Good morning Gurus,
    RCU utility strongly recommends to have this parameter set to AL32UTF8.
    My database by default was set as WE8MSWIN1252.
    I have read a lot about these settings. and like to have exact steps to take to accomplish this. I posted this problem in "Problem with RCU utility' but did not get any response.
    My question is why oracle makes things difficult. I only use american language, if both are good for that then why do RCU requires to change it.
    I have seen people who have ignored this message had trouble down the road of installation process.
    I appreciate if some one can explain to me the implications of not changing versus changing.
    Is that means, my database has to be kept with AL32UTF8 parameter all the time after installation is done?
    Also another question
    I have 3 meg RAM on my laptop, Oracle requires 4, will this cause the problem during installation?
    Thank you
    j

    Hi,
    a change from we8mswin1252 to al32utf8 is not directly possible. This is because al32utf is not a binary superset of we8mswin1252.
    There are 2 options:
    - use full export and import
    - Use of the Alter in a sort of restricted way
    The method you can choose depends on the characters in the database, is it only ASCII then the second one can work, in other cases the first one is needed.
    It is all described in the Support Note 260192.1, "Changing the NLS_CHARACTERSET to AL32UTF8 / UTF8 (Unicode)". Get it from the support/metalink site.
    You can also read the chapters about this issue in the Globalization Guide: [url http://download.oracle.com/docs/cd/E11882_01/server.112/e10729/ch11charsetmig.htm#g1011430]Change characterset.
    Herald ten Dam
    http://htendam.wordpress.com

Maybe you are looking for

  • Advanced photo gallery - need help with MCs

    Hello all. I have a photo gallery I am creating that can contain up to 120 images. Rather than create buttons and movie clips for each, I am hoping to dynamically build it with 1 movie clip. But I am having trouble with my code. Here's what I am tryi

  • Itunes encounters a problem and needs to close

    This is the error I suddenly started getting today when I try to open itunes. Also, when I try to open quicktime or watch something in quicktime nothing happens (no error and it doesn't open). I feel this is a problem with quicktime since itunes need

  • How to read file on demand (or) avoid polling in bpel 11g?

    Hello - Scenario - Receive two files(A & B) which should end up in two tables (Header, Lines) BPEL process - 1) Receive acitivity - To Read file (A) via File adapter 2) Tranformed 3) Invoked the Db adapter to insert into "Header" table 4) Added anoth

  • SOAP AXIS sender adapter response message

    Hi all, In our scenario a 3rd party app. is sending a request to our Sender SOAP Axis adapter. The message contains attachments and uses MTOM features. When receiving I have no problems. BUT when I sent a response I the SOAP AXIS adapter sents the at

  • Second (Go To) View not Displaying?

    When I debug the Web Dynpro, the second (go to)view is not even there. Any suggestions what I should be checking?       Thank-You.