Forms 6i Against 9i UTF8 database with NLS_LENGTH_SEMANTICS = CHAR

Hi all,
I have a 9.2.0.4 database which was created with a character set of UTF8.
I want to start storing multibyte characters in this database so I changed the init.ora parameter NLS_LENGTH_SEMANTICS to CHAR and restarted.
I then installed my application into the database and all the definitions have correctly been created using CHAR length semantics.
The client to this application is Forms 6i but I am having serious problems compiling it against the application schema.
When I open a pll library and try to compile I get Error 201 for every %type variable declaration and also for server based packages.
I am definitely connected and to the correct schema where the objects all exist.
I have another application schema - identical except that it was created before I made the change to NLS_LENGTH_SEMANTICS so it uses BYTE. When I compile the same library connected to this schema there are no problems.
Also, if I try to connect to the CHAR schema using Forms (i.e. 8.0.6) SQL*Plus it crashes with a Windows Application Error. If I connect with a 9.2.0.1 SQL*Plus its fine.
My question is should it be possible to compile a 6i Form against a UTF8 database with CHAR NLS length semantics at all? Have I done something wrong or am I barking up the wrong tree? Has anyone else tried this?
Many thanks in advance,
Kevin.

Hi,
Thanks for the responses but I don't think you're quite right. Forms 6i should indeed work with Unicode as a database character set as long as it is UTF8 rather than AL32UTF8. This can be seen in various Metalink documents and also in the Release 6i Guidelines for Building Applications here (section 4.1.5):
http://download-west.oracle.com/otn_hosted_doc/forms/forms/A73073_01.pdf
The problems started when I changed NLS_LENGTH_SEMANTICS to CHAR. Its understandable if Forms 6i does not recognise this setting as it pre-dates it but I wanted to confirm this.
We want to migrate our existing application to work with multibyte characters. Unfortunately there are table columns, PL/SQL variables etc. that are too small when defined as a length in bytes.
I am looking for the least impact method to rectify this. On the server I can use NLS_LENGTH_SEMANTICS but if I can't get Forms to work with it then I may need to rethink.
I realise that using Forms 9i or 10g would support the parameter but it is not possible to upgrade at the moment.
Has anyone any other suggestions or methods for migrating an application to using multibyte characters?
Thanks again,
Kevin.

Similar Messages

  • Looking for a form in the VIS demo database with lots of data

    Hi all,
    I am looking for a form in the VIS demo database (that ships with Oracle Applications) that contains a lot (1 MB or more) of data. Specifically, when I perform some type of search in the form, I would like more than 1 MB of data to be transferred over the network to the client.
    With Oracle Applications 11i, I was using this form: CRM Resource Manager, Vision Enterprises → Resources
    This was nice because searching for all resources resulted in 4.6 MB of data being sent by the server. However, in Oracle Applications R12, the same query in the same form only sends about 100 KB of data. :-(
    Does anyone know any other forms that have lots of data in them?
    - Kyle

    Thanks for that - I found the form. However, it appears the database table is empty - when I perform a search for all jobs, no records are returned.Nevermind, after some trial and error I found a site that had lots of jobs defined. Thanks for the pointer!
    I'm still running into the same problem I was seeing with the previous form I was using. This is what I'm doing:
    1. Open the form.
    2. Search for all records.
    3. Jump to the very last record.
    In Oracle Applications 11i, this would cause a large amount of data to be transferred over the network (4.6 MB for the previous form I was using and 2.6 MB for this new "Discrete Jobs" form I'm trying). However, the behavior is different in Oracle Applications R12. When I perform the same steps in the same forms, only a fraction of the data is transferred over the network (~100 KB).
    Ideally, I would like a set of steps (and a form) that will produce the same results in both 11i and R12. More realistically, I just need a form (or a new test procedure) in R12 that will spit out more than 1 MB of data.

  • Compile Form against UTF8 Database

    Hello,
    Is it necessary to compile a Form against UTF8 Database to run it against UTF8 Database?
    I'm on Forms 10.1.2.0.2 and Database 10.2.0.3.
    Database Parameters are:
    NLS_CHARSET=UTF8
    NLS_LENGTH_SEMANTICS=CHAR
    Can I compile a Form against WE8MSWIN1252 Database (NLS_LENGTH_SEMANTICS Parameter of the DB is also set to CHAR and when compiling the form the environment variable is also set to CHAR), and run the form against UTF8 Database (including the needed .env file in the formsweb.cfg), or do I have to set NLS_LANG and recompile the form against UTF8 database?
    thx and regards,
    Christian

    Well I thought that I have to ask support...But I hoped someone had some experiences with that.
    But here are some troubles I had with UTF8, maybe it helps someone, if not it's a nice type-in training ;-):
    We had some very strange behaviours regarding forms with UTF8 databases, so the first believe was, that I have to generate against UTF8 database.
    Well - the bad thing was the NLS_LENGTH_SEMANTICS parameter, which we set to CHAR for UTF8, and also for WE8, for the reason that a VARCHAR2(255) can really contain 255 chars, and not maybe 255/3 chars...
    As the strange "Signature of Package has been changed" error which occured in UTF8 also occured in WE8, I did some researches.
    The problem occured, when I had a record type (no %rowtype, no %type) declared in a database package spec, instanciated in forms, and given as a parameter to another stored procedure.
    scenario:
    forms compiled with NLS_LENGTH_SEMANTICS=CHAR, the package created and compiled with NLS_LENGTH_SEMANTICS=CHAR; => correct behaviour.
    now in sqlplus:
    alter session set NLS_LENGTH_SEMANTICS=BYTE;
    alter package <recordpackage> compile;
    and run the form again => ora-4062.
    but as said: after some time this behaviour also happened in WE8.... Charset, and at the moment I didn't have any other troubles...hm...I'll have to do some checks.
    but thanks for your response
    regards

  • OAS WEB FORM 9.0.4 configuration for NLS_LENGTH_SEMANTICS=CHAR

    We have NO issue using Oracle Form(Developer 2000) with Oracle Application Server Configuration with UTF8 characterset. Everything is set correctly.
    As UTF8 is multi BYTE character set, we have to find a way Oracle Form can work with NLS_LENGTH_SEMANTICS=CHAR while inserting, updating etc upon datatype value. e.g. table a has a column b with VARCHAR2(400). We need to allow users to enter 400 character. We have database set up correctly to NLS_LENGTH_SEMANTICS=CHAR
    Oracle FORM DOES WORK if we go to individual field/column(for the table) on form field property and modify SEMANTICS value from DEFAULT to CHAR.
    Is there a way we can just modify default the OAS form level configuration for SEMANTICS to save time going to each form and modifying each filed to make it work?
    Thanks in advance!
    Nirali

    Thanks a lot for quick reply!
    We also have TAR open with Oracle. I think we just have to move on to manul affort. Thanks again!
    Nirali

  • WEB(OAS) Form 10g(9.0.4) NLS_LENGTH_SEMANTICS=CHAR

    We have NO issue using Oracle Form(Developer 2000) with Oracle Application Server Configuration with UTF8 characterset. Everything is set correctly.
    As UTF8 is multi BYTE character set, we have to find a way Oracle Form can work with NLS_LENGTH_SEMANTICS=CHAR while inserting, updating etc upon datatype value. e.g. table a has a column b with VARCHAR2(400). We need to allow users to enter 400 character. We have database set up correctly to NLS_LENGTH_SEMANTICS=CHAR
    Oracle FORM DOES WORK if we go to individual field/column(for the table) on form field property and modify SEMANTICS value from DEFAULT to CHAR.
    Is there a way we can just modify default the OAS form level configuration for SEMANTICS to save time going to each form and modifying each filed to make it work?
    Thanks in advance!
    Nirali
    Edited by: user453485 on Sep 29, 2008 12:31 PM

    Thanks a lot for quick reply!
    We also have TAR open with Oracle. I think we just have to move on to manul affort. Thanks again!
    Nirali

  • OWB-Import does not distinguish between nls_length_semantics char and byte.

    We have a 10g-DB with UTF8 charset and nls_length_semantics=char and we've created an OWB warehouse module for 10g with several tables in it. After deploy operation for a table the column length attributs are looking nice. But if we re-import this table the varchar fields have the threefold length!
    This makes life hard for us, because sometimes it's necessary to reconcile discrepancies in development cycle and some tables have about 150 columns.
    Does anybody have suggestions?
    The OWB version is 10.1.0.3.0.
    Regards
    Ralf

    Ralf,
    Oracle stores the length of VARCHAR columns in two ways in its metadata. One is the length as required by the application, and the other is the length required to store UTF data.
    One UTF character can take upto 3 characters of storage. When OWB reads in the definition from data dictionary, it uses the actual characters allocated to the column, and thus u see a three fold increase in VARCHAR columns.
    Try this for your table
    select
    column_name, data_length, char_length
    from
    user_tab_columns
    where
    table_name='nameOfTable'
    And that is how Oracle designed the database, but unfortunately OWB does not have that twin way of seeing things.
    - Jojo

  • JDBC thin driver pads CHAR col to byte size when NLS_LENGTH_SEMANTICS=CHAR

    We're using an Oracle 9.2 database with the database character set specified as AL32UTF8 with NLS_LENGTH_SEMANTICS set to CHAR. I've reproduced this problem with both the "classes12.zip" and "ojdbc14.jar" available with the Oracle 9.2 client installation.
    The problem occurs with the JDBC thin driver. The problem does not occur with the JDBC OCI driver (nor SQL*Plus 9.2).
    There are 2 relatively simply workarounds: use the OCI driver or convert CHAR columns to VARCHAR2 columns. I'm mostly curious as to whether there is some kind of setting for the thin driver to circumvent this problem, or if this is actually expected behavior. We're not that familiar with the NLS_LENGTH_SEMANTICS setting.
    Consider a table as follows:
    create table my_table (status CHAR(1));
    If I describe the table it correctly shows the column using CHAR semantics.
    STATUS CHAR(1 CHAR)
    Given the AL32UTF8, this means that 4 bytes of storage are reserved for this column.
    If I insert a single ASCII character in this table (for example "A") then read it back using the JDBC thin driver, I get the string "A " - the letter A followed by 3 spaces. In other words, the thin driver appears to have padded the value to its BYTE length. The OCI driver and SQL*Plus do not pad the value.
    I understand that CHAR columns are normally blank padded when the data size is shorter than the defined column length, but I think that with NLS_LENGTH_SEMANTICS=CHAR, the padding should be based on the length of the column in chars, not in bytes.
    Can anyone shed some light on this issue?
    Thanks in advance,
    Tim

    Update:
    I guess I should mention we're using Java 2 SDK 1.4.1_01 on Windows XP with an Oracle 9.2 database on Windows 2000.

  • Cannot run a UNICODE kernel against a non-UTF8 database

    Hi,
    I am trying to install SAP ECC 6.0 SR2 . am using  windows 2003 server oracle 10g db.
    please help me how to resolve this...
    sapparam: sapargv( argc, argv) has not been called.
    sapparam(1c): No Profile used.
    sapparam: SAPSYSTEMNAME neither in Profile nor in Commandline
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe: START OF LOG: 20100717144107
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe: sccsid @(#) $Id: //bas/700_REL/src/R3ld/R3load/R3ldmain.c#13 $ SAP
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe: version R7.00/V1.4 [UNICODE]
    Compiled Jul 17 2007 01:28:45
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe -testconnect
    DbSl Trace: ORA-1403 when accessing table SAPUSER
    DbSl Trace: Cannot run a UNICODE kernel against a non-UTF8 database (charset = AL32UTF8)
    (DB) ERROR: db_connect rc = 256
    DbSl Trace: Default conn.: already connected to DEV
    (DB) ERROR: DbSlErrorMsg rc = 29
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe: job finished with 1 error(s)
    D:\usr\sap\DEV\SYS\exe\uc\NTI386\R3load.exe: END OF LOG: 20100717144108

    Reinstallae the server .problem solved thanks to 3everyone

  • CONNECTING ORACLE 9I OR 10G DATABASE WITH ORACLE 10G FORMS AND REPORTS

    pls tell how to connect oracle 9i or 10g database with oracle developer suite 10g . though the forms are getting connected but not running with error as
    FRM-10142 the HTTP listner is not running on pls start the listner or check your runtime preferences.
    now pls tell how to start listner and how to chage runtime preferences.
    though i have worked with oracle 9i and forms 6i where we used to copy the tnsnames.ora from network/admin of oracle to forms 6i tnsnames.ora.
    thank you, you may be thinking such a long question.....

    sir
    By server i mean the computer where oc4j and backend database are running is one one of the client pc not a dedicated server..., these database and 10g dev suite are installed in one of the client machine,
    all the clients are using same internet explorer as browser.
    no message is being displyed on some of the client machine where these forms are not being uploaded on browser instead it displays as done in status bar without actually showing anything at all...
    sir so far as jinitiator or JRE is concered i have seen on the client machine (where my forms are running on internet explorer) a pop up is displyed telling one activex control is required to run this program and click to install it..
    after clicking it download jinitiator from server and after installing jinitiator my forms are loaded and start functioning...
    what i feel is as i said this machine where oc4j and database is running is one of the client machine so some other clients do not have acess to this machine, so this might be the reason why those clints are not able to run the said forms on the internet explorer.... can it be so... kindly tell..
    thank you for your patience for reading the question

  • Connecting MS-Access database with Oracle Forms

    Hai,
    Can any one suggest as to how I can connect MS-Access database
    with Oracle Developer Forms. What is the procedure ? Suggest me
    if I need to install any drivers. Waiting for an early reply.
    Warm Regards,
    Raghav.
    email:[email protected]

    Not possible as far as I know.
    Probably because ODBC itself (the defined interface) doesn't support it.
    There is a commercial MS Access (java only) driver that might support it.

  • Using Mutliple Databases with Oracle Forms

    Hi,
    How do you force an Oracle Form (11gR2) to use a particular Database? Is this something you have to code inside the form, or can it be some kind of configuration parameter outside the form - i.e. I don't need to recompile the form everytime I want to point to a different database?
    Is it possible to pass a parameter into the form via the form URL which can instruct it to use a certain database?
    Any help is very very much appreciated.
    Cheers.

    christian erlinger wrote:
    You can pass the connectstring (userid=xyz/xyz@blabla), and forms logs on to this database. For obvious reasons I wouldn't want to pass in username/pass etc on the command line, however I'd like to pass in a variable which the form can then parse to determine which database to connect to. Is that possible?
    >
    I don't need to recompile the form everytime I want to point to a different database?that depends. if you are accessing your database objects qualified like
    schema.procedure;
    Luckily the schema names are the same across the multiple databases.
    and the schema name differs from database to database you not only would need to recompile but do changes in the code.
    Thanks.

  • Oracle Forms 6i(32-bit)  = Oracle database 10g R2 Windows 2008 R2 64-bit)

    We have Oracle database 10g R2 installed on a Microsoft Windows 2008 R2 (64-bit) (SERVER1)
    We have Oracle Forms 6i (patch 4a) installed on a Microsoft Windows XP Professional (32-bit) (SERVER2)
    I am not able to connect from SERVER2 to SERVER1, either through SQLPLUS or FORMS BUILDER.
    Its giving some DLL error.
    Is it because forms 6i (32-bit) cannot connect to a 64-bit database on a 64-bit OS ?

    There might be problems with 8i clients (like forms 6i) if the database uses AL32UTF8 characterset indeed (if you need unicode and you need to run forms 6i use UTF8 instead) but this should not be related to the platform of the database.
    The platform of the database server really should not matter as the forms runtime talks via SQL*Net with the database server and in the end it does not matter if the database runs on linux, windows whatsoever or unix 32 or 64 bit for the client. The only problem you'll encounter is that SQL*Net also changes with versions and thus "older" clients might not be able to communicate with "newer" servers and vice versa.
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
    PARAMETER                                                       |VALUE
    ----------------------------------------------------------------|---------------------------
    NLS_CHARACTERSET                                                |WE8MSWIN1252
    SQL>I just tried a 6i form (6.0.8.25.2) connected to this database. It worked ;) (again: not certified)
    cheers

  • Running forms 6i on a 10g database

    We are encountering problems running forms 6i on a 10g database. the forms keep dropping and we get ifrun files with access_voilation c0000005 error. Has anyone encountered this problem

    Some breaking news - we are planning to certify 6i against 10g - but as Frank points out - you will be required to patch up - we are targetting Patch 17.
    Regards
    Grant Ronald
    Forms Product Management

  • Column width in jDeveloper on UTF8 database

    I'm using jDeveloper (10.1.3) on a 10g database (10.1.0.2) with a UTF8 characterset.
    All character columns show 3 times the actual width in jDeveloper.
    Is there a way to tell jDeveloper to deal with this situation?
    P.S. NLS_LENGTH_SEMANTICS = CHAR, which is not the default.

    Hi Westerla,
    Character semantics has not been supported in JDeveloper 10.1.3, yet.
    In UTF8 database, 1 char = 3 byte. This is the reason you have 3 times length text field.
    Possible workaround is to update size of inputText.

  • How to use your own database with your users to authenticate in a Web app?

    Hello, everybody!
    I'm starting to write my first web application and I'm going to use JSF, JPA and EJB3 in this application. One of the first things that I have to do on it is the authentication part where I'll have a page with a user name and a password for the user to login. So, as I'm new to all this in Java (I've already implemented this on .NET in the past), I was studying the Java EE 5 Tutorial, especifically the section "Example: Using Form-Based Authentication with a JSP Page". But I saw that the users that the sample application uses come from the file realm on the Application Server. The users are created there and assigned a name, a password and a group. After the users are in the Application Server we can simply uses forms authentication declaratively in the deployment descriptor (web.xml).
    But the problem is that this doesn't work to me as I already have my own database with my users, so I want to use it instead of having to create the users on the Application Server.
    So, I'm asking you how to do that. Of course I'm not expecting that you place the code here to me as I know that such a thing could be complicated. Instead, I'm asking if you know about some tutorial, article, book or something that teaches how to do what I want. But I would like to see theses examples using JSF and/or EJB3 because these are the technologies that I'm using to develop. It's a pity that the Java EE 5 Tutorial doesn't have an example using a custom database as I know that this situation is very common in the majority of web sites.
    Thank you very much.
    Marcos

    From memory, it goes like this... You just create a
    raw jdbc connection on your user database using a
    special "login" DB user account, which has
    permissions only to an "authenticate" stored query,
    which accepts two arguments: username & password, and
    returns a boolean 0 or 1 rows found.When I implemented this in .NET's ASP.NET I had the same solution. I had an special user created in the database that I used to log in. When the real user entered his username and password I was already logged in and I had just to check his username and password agains the right table in my database.
    But that was only possible bacause when I connected to the database using my hidden user, I used the rights APIs in ASP.NET that coordinate the authentication process. This means that before login in, no one could access any resources (pages, atc...). So what I'm saying is that I can't manager this manually in Java. Java has to have some API or whatever to allow me to control the login process programmatically, while letting the Application Server control the access to the resources.

Maybe you are looking for

  • How to improve the performance of the abap program

    hi all, I have created an abap program. And it taking long time since the number of records are more. And can anyone let me know how to improve the performance of my abap program. Using se30 and st05 transaction. can anyone help me out step by step r

  • MTO multiple Customer PO's

    Hello , Kindly help me with scenario. I intially create a sales order( MTO) against a customer PO number say cust A for 1000 pieces. The production begins and somwhere down i want this line item in MTO to be split across different customer PO's , dif

  • Getting Auth error for cFolder only for first time

    Dear Experts, I am getting authorization error when I click on "Tech RFx" button from vendor side. After that if I close that cFolder window and again clicking on "Tech RFx" button, it is allowing me to go ahead without any error! I tried debugging,

  • List of Rosetta Apps

    Hey there party people, I'm interested in Lion, but am concerned about losing Rosetta. I have a small AppleWorks database I use, so I know i've gotta find a home for that (be toto the rescue I hope). However, I'm not sure what else i'm running that n

  • Installation stops: Reboot to complete deinstallation ...

    I am installing a new PC and couldn't install Adobe Flash Player due to Firefox, so I deinstalled Firefox. Now I cannot reinstall Firefox. Whenever I have approved of the standard installation, I get a message, that I have to reboot to finish deinsta