You just installed Oracle Database XE version (10g or 11g) and try to connect with forms 6i. When you put the connection string and hit ENTER to connect then Forms/Reports builder hang and "Forcefully Closed".
What happen ?
It's just about the CHARACTER SET mismatch. Typically XE database version most surelly
11g XE use Unicode CHARACTER SET, which is "AL32UTF8".
Forms/Reports 6i doesn't support this and supports ("UTF8","WE8MSWIN1252")
Moreover,
SQL> create table t( c varchar2(3) );
SQL> insert into t values( 'abç' );
insert into t values( 'abç' )
*
ERROR at line 1:
ORA-12899: value too large for column "SCH"."T"."C" (actual: 4, maximum: 3)
What to do ?
Simply alter the CHARACTER SET to previously supported one.
[Script]
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>CD C:\oraclexe\app\oracle\product\11.2.0\server\bin
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SET ORACLE_HOME=C:\oraclexe\app
\oracle\product\11.2.0\server
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SET ORACLE_SID=XE
C:\oraclexe\app\oracle\product\11.2.0\server\bin>echo %ORACLE_SID%
XE
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SQLPLUS/NOLOG
SQL*Plus: Release 11.2.0.2.0 Production on Fri May 23 19:53:42 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> CONN SYS/SYSTEM11g AS SYSDBA
Connected.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> STARTUP RESTRICT
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 272633544 bytes
Database Buffers 255852544 bytes
Redo Buffers 5791744 bytes
Database mounted.
Database opened.
SQL>
SQL>
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252;
Database altered.
SQL>
SQL>
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL> STARTUP
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 272633544 bytes
Database Buffers 255852544 bytes
Redo Buffers 5791744 bytes
Database mounted.
Database opened.
SQL>SQL> select * from v$nls_parameters where parameter like '%CHARACTERSET%';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
WE8MSWIN1252
NLS_NCHAR_CHARACTERSET
AL16UTF16
What happen ?
It's just about the CHARACTER SET mismatch. Typically XE database version most surelly
11g XE use Unicode CHARACTER SET, which is "AL32UTF8".
Forms/Reports 6i doesn't support this and supports ("UTF8","WE8MSWIN1252")
Moreover,
Oracle Database 11g Express Edition has no provisions to change/use other charactersets than AL32UTF8 as NLS_CHARACTERSET and AL16UTF16 as NLS_NCHAR_CHARACTERSETSo, if you migrate data from any previous version of Database like 10g with special character, you will see the bellow problem when importing.
The NLS_CHARACTERSET is used for CHAR, VARCHAR2, LONG and CLOB columns;
The NLS_NCHAR_CHARACTERSET is used for NCHAR, NVARCHAR2 and NCLOB columns.
SQL> create table t( c varchar2(3) );
SQL> insert into t values( 'abç' );
insert into t values( 'abç' )
*
ERROR at line 1:
ORA-12899: value too large for column "SCH"."T"."C" (actual: 4, maximum: 3)
What to do ?
Simply alter the CHARACTER SET to previously supported one.
[Script]
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>CD C:\oraclexe\app\oracle\product\11.2.0\server\bin
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SET ORACLE_HOME=C:\oraclexe\app
\oracle\product\11.2.0\server
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SET ORACLE_SID=XE
C:\oraclexe\app\oracle\product\11.2.0\server\bin>echo %ORACLE_SID%
XE
C:\oraclexe\app\oracle\product\11.2.0\server\bin>SQLPLUS/NOLOG
SQL*Plus: Release 11.2.0.2.0 Production on Fri May 23 19:53:42 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> CONN SYS/SYSTEM11g AS SYSDBA
Connected.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> STARTUP RESTRICT
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 272633544 bytes
Database Buffers 255852544 bytes
Redo Buffers 5791744 bytes
Database mounted.
Database opened.
SQL>
SQL>
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252;
Database altered.
SQL>
SQL>
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL> STARTUP
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 272633544 bytes
Database Buffers 255852544 bytes
Redo Buffers 5791744 bytes
Database mounted.
Database opened.
SQL>SQL> select * from v$nls_parameters where parameter like '%CHARACTERSET%';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
WE8MSWIN1252
NLS_NCHAR_CHARACTERSET
AL16UTF16
No comments:
Post a Comment