LAS to oracle converter

Dear all,
I'm a newbie to Oracle spatial 11g. I have LiDAR point clouds in LAS format with millions of points. I would like to import these points into the database as sdo_pc type and later generate TIN from these point clouds for performing the line of sight analysis. I have the Pro Oracle Spatial for Orable 11g book but it does not explain much on how to import the data from LAS files.
Does anyone have steps or solutions for this?
All suggestions are greatly appreciated.
Best regards,
Nan :)

Hello,
Please, send if possible java las converter to spatial (or link to get it) and instruction how to use it.
I'm very interested in development las to spatial and presentation las data from oracle spatial 11g in viewer, (desktop and web viewer version).
Please note my email address [email protected]
Best regards
KSS

Similar Messages

  • SQL Server to Oracle Converted Model missing users

    I am doing a migration from SQL Server to Oracle with about 100 users. The captured model seems to be correct and all of the users are there. But, when creating the Oracle Converted Model, not all of the users are being converted. On the first attempt, the Converted Model had only 21 users, and on the next attempt, the Converted Model only had 16 users. Does anyone know what could be causing this?

    Oracle Database XE does not allow more than one instance per server.
    To define a primary key correct syntax is:
    Create table summary(
    Field NOT NULL PRIMARY KEY,
    Or:
    PRIMARY KEY constraint tabla_PK (field)
    To generate the value of the primary key you must create a sequence before or after creating the table:
    Create Sequence summary_seq
    Start with 1
    Increment by 1
    Nocycle;
    You can use the sequence in INSERT INTO or through a trigger:
    With Insert Into:
    Insert into Summary
    Values (summary_seq.nextval, valkor1, value2 ,...);
    With a trigger:
    Create or replace Trigger BI_summary
    Before Insert on SUMMARY
    For each row
    Begin
    Select summary_seq.nextval into campoPK
    From dual;
    End;

  • Oracle convert function

    Friends and Gurus,
    Table: comments
    column: c1
    characterset: WE8IS08859P1
    I am trying to use Oracle convert function to identify rowid's where column length greater than 4000 characters.
    Table comments was created under 'WE8IS08859P1' characterset and I'm moving this table to 'AL32UTF8'.
    I don't have csscan installed so trying to query sql and convert column to 'AL32UTF8' characteset and find rowid's to fix.
    I have tried below but doesn't help
    SELECT MAX(length(CONVERT(c1,'AL32UTF8'))) FROM comments;
    SELECT length(CONVERT(c1,'AL32UTF8'))
    FROM comments
    WHERE length(c1) > 4000;
    did anybody faced similar issue?

    Hi,
    Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved, so that the people who want to help you can re-create the problem and test their ideas.
    Simplify the problem as much as possible.  For example, instead of looking fro strings that have more than 4000 characters (or bytes), post a problem where you want to find strings longer than 4 characters (or bytes).
    Always say which version of Oracle you're using (for example, 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002
    Are you interested in the number of characters, or the number of bytes?  Use LENGTHB if you want the length in bytes.

  • Can Oracle convert literals to bind variables?

    Good morning everyone.
    I have a procedure similar to this in our database:
        FUNCTION Get_Tag_Element_Id_For_Set(Element_Attr_Id_Table_In   in    ATTRIBUTE_TABLE_ID_TAB) RETURN NUMBER IS
          v_Select_Statement                    VARCHAR2(32767);
          v_Element_Id                             ELEMENT.Element_Id%TYPE;
        BEGIN
          FOR I IN 1..Element_Attr_Id_Table_In.COUNT LOOP
            IF v_Select_Statement IS NULL THEN
              v_Select_Statement := 'SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Element_Attribute_Id = ' || Element_Attr_Id_Tab_In(i);
            ELSE
              v_Select_Statement := v_Select_Statement || ' intersect ' ||
                                    'SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Element_Attribute_Id = ' || Element_Attr_Id_Table_In(i);
            END IF;
          END LOOP;
          EXECUTE IMMEDIATE v_Select_Statement INTO v_Element_id;
          RETURN v_Element_Id;
        END;What this does is to create a query similar to this:
    SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Tag_Element_Attribute_Id = 1 intersect
    SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Tag_Element_Attribute_Id = 2 intersect
    SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Tag_Element_Attribute_Id = 3 intersect
    SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Tag_Element_Attribute_Id = 4 intersect
    SELECT distinct Element_Id FROM ELEMENT_ATTRIBUTE_MANY_2_MANY WHERE Tag_Element_Attribute_Id = 5;
    I am using Dynamic SQL because the number of intersect pieces can vary from 1 to 15 and in the future it can grow.
    The problem that I have is that because the literals are part of the string, the query is being hard parsed every single time. In our production environment this means 100s of thousands of times per day which according to our DBA has added 15% plus to our average load. I know that I can come up with a rewrite to avoid this, but I was wondering if there is a parameter I can set at the session or at the database level where the database itself can convert this kind of query into one with bind variables.
    Thanks,
    Tom
    Edited by: Thomas Morgan on May 3, 2013 8:21 PM

    Thomas Morgan wrote:
    Basically I have an XML document.
    The document has ELEMENTS.
    ELEMENTS can have attributes.
    There is a many to many relationship between ELEMENT and ATTRIBUTES so I have a XREF table to represent this relationship.
    When I receive a new document, I need to determine if a group of ATTRIBUTES already exist together in the XREF table so I have to find their common ELEMENT_ID or NULL in which case I would create a new ELEMENT and associate the new set of attributes to the new ELEMENT.
    Since the number of attributes can vary from 1 to around 15 for now, I had to dynamically build the query that find the common ID(intersect) if it exists.
    Here is some DDL and inserts:
    CREATE TABLE ELEMENT(ELEMENT_ID NUMBER NOT NULL);
    CREATE TABLE ELEMENT_ELEMENT_ATTRIBUTE_XREF(Element_Id NUMBER NOT NULL, Element_Attribute_Id NUMBER NOT NULL);
    ALTER TABLE ELEMENT_ELEMENT_ATTRIBUTE_XREF ADD CONSTRAINT ELEMENT_ATTR_MANY_2_MANY_PK PRIMARY KEY(Element_Id, Element_Attribute_Id);
    ALTER TABLE ELEMENT ADD CONSTRAINT ELEMENT_PK PRIMARY KEY(Element_Id);
    INSERT INTO ELEMENT VALUES(1);
    INSERT INTO ELEMENT VALUES(2);
    INSERT INTO ELEMENT VALUES(3);
    INSERT INTO ELEMENT VALUES(4);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(1, 1);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(1, 2);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(2, 1);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(3, 1);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(3, 3);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(3, 4);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(3, 5);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(4, 6);
    INSERT INTO ELEMENT_ELEMENT_ATTRIBUTE_XREF VALUES(4, 7);
    So for instance if I passed an array (Attribute ID Tab) containing ELEMENT_ATTRIBUTE_ID list 6 and 7 I would get 4 as the answer.
    Hope this helps,
    Thanks,
    TomAwesome, thanks!
    I'm not sure this works 100% for what you need, but I thought I'd give it a shot. I've used a built in array (sys.odcinumberlist) that you should have access to on your installation (assuming you have a relatively recent version of Oracle).
    I left out the part where you would loop through the array you are currently passing in to your procedure to build up this new array that you can use in a SQL statement.
    Cheers,
    create or replace procedure maybe_this
       in_list           sys.odcinumberlist
    is
       l_commonality     number;
    begin
       begin
          select
             distinct
                xref.element_id
          into
             l_commonality
          from
                table(cast(in_list as sys.odcinumberlist))  list
            ,  element_element_attribute_xref   xref
          where
             xref.element_attribute_id = list.column_value;
          dbms_output.put_line('match on element_id = ' || l_commonality);
       exception
          when too_many_rows or no_data_found
          then
             dbms_output.put_line('no match');
       end;
    end;
    ME_TUBBZ?exec maybe_this(sys.odcinumberlist(1,2));
    no match
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    ME_TUBBZ?exec maybe_this(sys.odcinumberlist(6,7));
    match on element_id = 4
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01

  • Oracle CONVERT Function use in ODI

    Hi,
    I am using the convert function while doing data transfer between 2 databases in ODI.
    The NLS_CHARACTERSET of source data base is WE8ISO8859P1 and that of the target is AL32UTF8.
    When I use CONVERT(v_string, WE8ISO8859P1, AL32UTF8) as a target column expression in ODI Designer, it converts the pound symbols '£' in source data to '¿' in the target database. But for all other usual characters there is no such problem observed
    If anyone has faced such issue and resolved it or know any workaround, your help would be appreciated.
    Thanks.

    Don't pass the '£' character in the v_string and simply pre-pend it to the correctly converted string

  • Need inputs on CONVERT function in oracle.

    My source DB is : US7ASCII
    My target DB is : AL32UTF8
    Basically I am using oracle CONVERT funciton to convert the data.
    Unforutnately AL32UTF8 is not predefined in CONVERT function.
    So, is there are any other ways to convert the data ? Plz let me know.
    Thx,
    Vi.

    You have two databases. Database A uses a US7ASCII character set. Database B uses an AL32UTF8 character set.
    - Is all the data in Database A actually US7ASCII data?
    - What version of Oracle is Database A running? What version of Oracle is Database B running?
    - On which database are you running the CONVERT function?
    - Why do you believe you need to use the CONVERT function? If you are moving data from one database to another, Oracle should automatically take care of character set conversion.
    Justin

  • How To Convert Oracle To Mysql

    Hi,
    I have an oracle database with certain number of objects in it and I want it to convert/migrate to mysql.
    I have done the reverse using oracle sql developer and it was pretty convenient,but I am not finding any likewise feature for converting oracle to mysql.
    Can someone help me to do so?
    Thanks
    Arnab

    Arnab,
    Even if Google didn't provide a 'free lunch', ie software you don't need to pay for, your attempt to get something for free should be directed at a MySQL forum and not at an Oracle forum.
    Why would anyone using Oracle convert to a product with much less features?
    Your question is off-topic here.
    Sybrand Bakker
    Senior Oracle DBA

  • Empty Strings are converted to NULLs

    We are developing a Java application intended to work with multiple databases. We want to store empty strings but oracle converts this to NULL values. Is there a way to tell the Oracle Database not to convert the empty string to NULL and to store it as an empty string?
    Thanks
    Joaquim Franco <[email protected]>
    GEDI, SA

    Our project started with a MySQL database and the code is full of built queries like "Select Field from table where field = var" where var can be an empty string. It would be easier for us to turn a switch in the database then to look for every query in the application and add code to test is var is empty a change the query to "Select Field from table where field is NULL".
    Best Regards
    Joaquim Franco
    &gt; It is a quirk of Oracle that it regards empty strings
    &gt; and NULLs as being the same thing. This behaviour
    &gt; has been built into the database forever. Oracle
    &gt; keep threatening to change but I suspect they are
    &gt; scared of the impact, not least on their own code.
    &gt; As Oracle increasingly embrace Java they may decide
    &gt; to revisit this - I don't know whether the behaviour
    &gt; is changed in 10G.
    &gt;
    &gt; What sort of problems does it cause you?
    &gt;
    &gt; Cheers, APC

  • Convert time in miliiseconds to date format

    I have a column in my table with datatype number(38,0) , in that column i have values in form of miliseconds since 1970 e.g 1152567973042...
    i have a requirement to convert this time in milliseconds to today's date, which i can do as
    1152567973042 / 3600 / 24 / 365 == x
    1970 + x = today's date
    is there a function in oracle supporting this, or i have to customize my requirements and write a function.
    Thanks in anticipation

    Your function will not work precisely because it does not account for leap years. You should use Oracle date math. If you add a number to an Oracle date datatype, it assumes that the number is in days. Oracle will automatically account for leap years. Try this:
    DECLARE
    mydate DATE;
    milliseconds_since_1970 NUMBER(30,7);
    BEGIN
    milliseconds_since_1970 := ?;
    mydate := TO_DATE( '01-JAN-1970', 'DD-MON-YYYY') + milliseconds_since_1970/(1000*60*60*24);
    DBMS_OUTPUT.PUT_LINE('mydate = ' || to_char( mydate, 'DD-MON-YYYY HH24:MI:SS' ) );
    END;
    This converts your milliseconds (replace ? with the number) to days and then adds the days to January 1, 1970. The result is an Oracle date datatype adjusted for leap years.
    Oracle date datatypes have hours, minutes, and seconds. Since these were not specified for 1/1/1970, they default to zero. Since milliseconds_since_1970 has 7 decimal places, it will contain fractional days which Oracle converts to hours, minutes, and seconds.
    I'm not sure what format Oracle stores date datatypes in. You have to convert them with a format string every time you use them.
    Kevin Tyson

  • Stored Procedures with Date data types and Oracle

    This should be easy.... But i keep getting the error:
    [Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1,
    column 7: PLS-00306: wrong number or types of arguments in call to
    'RETRIEVE_TS' ORA-06550: line 1, column 7: PL/SQL: Statement
    ignored
    And I got it worked out to where i know it is a problem with
    the way i am using the date data types in a stored procedure....
    In the past i usually avoided calling procedures in Oracle
    with date as the in type.... It is always easiest to let oracle
    convert the string to a date.... Unfortunately now i am stuck with
    having a date type in the procedure call.... So the question is:
    WHAT IS THE PROPER WAY TO SUBMIT DATE/TIME STAMP IN A STORED
    PROCEDURE?
    The Oracle Procedure looks like this:
    PROCEDURE retrieve_ts (
    p_at_tsv_rc IN OUT sys_refcursor,
    p_units IN OUT VARCHAR2,
    p_officeid IN VARCHAR2,
    p_timeseries_desc IN VARCHAR2,
    p_start_time IN DATE,
    p_end_time IN DATE,
    p_timezone IN VARCHAR2 DEFAULT 'GMT',
    p_trim IN NUMBER DEFAULT false_num,
    p_inclusive IN NUMBER DEFAULT NULL,
    p_versiondate IN DATE DEFAULT NULL,
    p_max_version IN NUMBER DEFAULT true_num
    AND the stored procedure call looks like this:
    <cfset ed = Now()>
    <cfset sd = #DateAdd("d",-lbt,Now())#>
    <cfstoredproc datasource="CWMS"
    procedure="cwms.cwms_ts.retrieve_ts"
    returncode="no">
    <cfprocparam type="inout" variable="unit" value="#unit#"
    dbvarname="@p_units"
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="in" value="MVS"
    dbvarname="@p_officeid"
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="in" value=#id.cwms_ts_id#
    dbvarname="@p_timeseries_desc"
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="in" value="#sd#"
    dbvarname="@p_start_time"
    cfsqltype="cf_sql_date">
    <cfprocparam type="in" value="#ed#"
    dbvarname="@p_end_time"
    cfsqltype="cf_sql_date">
    <cfprocparam type="in" value="#tz#"
    dbvarname="@p_time_zone"
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="in" value="0"
    dbvarname="@p_trim"
    cfsqltype="cf_sql_numeric">
    <cfprocparam type="in" value=""
    null = "yes"
    dbvarname="@p_inclusive"
    cfsqltype="cf_sql_numeric">
    <cfprocparam type="in" value=""
    null="yes"
    dbvarname="@p_versiondate"
    cfsqltype="cf_sql_date">
    <cfprocparam type="in" value="1"
    dbvarname="@p_max_version"
    cfsqltype="cf_sql_numeric">
    <cfprocresult name="ts_dat">
    </cfstoredproc>
    Text

    Yeah.... One is a type INOUT ref cursor.... which is denoted
    by the cfprocresult....
    By the way:
    Phil - the code example with a little tweaking worked fine on
    my machine....
    <<cfstoredproc procedure="test_pkg.test"
    datasource="myDSN" returncode="no">
    <cfprocparam type="IN" cfsqltype="cf_sql_timestamp"
    value="15-JUN-2005">
    <cfprocparam type="OUT" cfsqltype="cf_sql_varchar"
    variable="v_out">
    <cfprocresult name="rs1">
    </cfstoredproc>
    PROCEDURE test(
    v3_out OUT ref_cur_type,
    v1_in IN date default null,
    v2_out OUT varchar2
    IS
    BEGIN
    v2_out := TO_CHAR(v1_in, 'mm/dd/yyyy');
    OPEN v3_out
    FOR
    SELECT *
    FROM user
    WHERE activation_date >= v1_in;
    END test;
    Why do i still get this error......
    Here is what it looks like now:
    PROCEDURE retrieve_ts (
    p_at_tsv_rc IN OUT sys_refcursor,
    p_units IN OUT VARCHAR2,
    p_officeid IN VARCHAR2,
    p_timeseries_desc IN VARCHAR2,
    p_start_time IN DATE,
    p_end_time IN DATE,
    p_timezone IN VARCHAR2 DEFAULT 'GMT',
    p_trim IN NUMBER DEFAULT false_num,
    p_inclusive IN NUMBER DEFAULT NULL,
    p_versiondate IN DATE DEFAULT NULL,
    p_max_version IN NUMBER DEFAULT true_num
    <cfstoredproc datasource="CWMS"
    procedure="cwms.cwms_ts.retrieve_ts"
    returncode="no">
    <cfprocparam type="INOUT" variable="p_units"
    value="#unit#" <!---p_units--->
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="IN" value="MVS"
    <!---p_officeid--->
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="IN" value=#id.cwms_ts_id#
    <!---p_timeseries_desc--->
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="IN" value="#sd#"
    <!---p_start_time--->
    cfsqltype="cf_sql_timestamp">
    <cfprocparam type="IN" value="#ed#"
    <!---p_end_time--->
    cfsqltype="cf_sql_timestamp">
    <cfprocparam type="IN" value="#tz#"
    <!---p_timezone--->
    cfsqltype="cf_sql_varchar">
    <cfprocparam type="IN" value="0" <!---p_trim--->
    cfsqltype="cf_sql_integer">
    <cfprocparam type="IN" value=""
    <!---p_inclusive--->
    null = "yes"
    cfsqltype="cf_sql_numeric">
    <cfprocparam type="IN" value=""
    <!---p_versiondate--->
    null="yes"
    cfsqltype="cf_sql_timestamp">
    <cfprocparam type="IN" value="1"
    <!---p_max_version--->
    cfsqltype="cf_sql_integer">
    <cfprocresult name="ts_dat">
    <!---sys_refcursor--->
    </cfstoredproc>
    If I truly am short a parameter, How do you specify the INOUT
    sys_refcursor?

  • How I work with MS-SQL function in oracle

    I’m working in oracle now but I don’t know how can I use following function in oracle.
    convert, dateadd, datediff, fetch_status, isnumeric, reverse, str and stuff

    Also available in 10g, the model clause version, taken from this How to display text in reverse order ?.
    WITH t AS (SELECT 'abcdefg' col1
                 FROM DUAL
                UNION
               SELECT ''
                 FROM DUAL   )
    SELECT col1
         , new_col1
      FROM t       
    MODEL
       PARTITION BY (ROWNUM rn)
       DIMENSION BY (0 dim)
       MEASURES     (col1, CAST ('' AS VARCHAR2(255)) new_col1)
       RULES ITERATE(99) UNTIL (LENGTH(new_col1[0]) = LENGTH(col1[0]))
          (new_col1[0] = SUBSTR(col1[0], ITERATION_NUMBER + 1, 1) || new_col1[0])
    COL1    NEW_COL1
    abcdefg gfedcbaC.

  • Convert number field to nvarchar2

    How??? I tried using the to_char and convert functions but I keep getting a 'character set mismatch'...

    Try using the "TRANSLATE ... USING" It converts text into the character set specified for conversions between the database character set and the national character set.
    The text argument is the expression to be converted.
    Specifying the USING CHAR_CS argument converts text into the database character set. The output datatype is VARCHAR2.
    Specifying the USING NCHAR_CS argument converts text into the national character set. The output datatype is NVARCHAR2.
    This function is similar to the Oracle CONVERT function, but must be used instead of CONVERT if either the input or the output datatype is being used as NCHAR or NVARCHAR2.
    Example
    The examples below use the following table and table values:
    CREATE TABLE t1 (char_col CHAR(20),
    nchar_col nchar(20));
    INSERT INTO t1
    VALUES ('Hi', N'Bye');
    SELECT * FROM t1;
    CHAR_COL NCHAR_COL
    Hi Bye
    UPDATE t1 SET
    nchar_col = TRANSLATE(char_col USING NCHAR_CS);
    UPDATE t1 SET
    char_col = TRANSLATE(nchar_col USING CHAR_CS);
    SELECT * FROM t1;
    CHAR_COL NCHAR_COL
    Hi Hi

  • Load LiDAR data into Spatial 11g making use of Point Cloud Type?

    Dear all,
    from an aerial LiDAR scan I have approximately 226 million points, spread over 9 files. I would like to load them into Oracle Spatial 11g, making use of the new point cloud data type. I have the book "Pro Oracle Spatial for Oracle Database 11g" here and Appendix E explains how you have these two tables that together manage your point cloud. I find the example given in the book rather simplified though as they have only x, y and z and a row id colum. In addition to this I also have r, g, b and i (intensity) values.
    I was wondering if anyone could give me a hint on how to store all the information in one table and making use of the sdo_pc data type at the same time.
    Also, the example has the points already in a table, but I'd like to load it all directly from my files into the point cloud table (I know how to use sqlldr, but how do I get it into this point cloud table structure). What's the cleverest way to go about this?
    All ideas are greatly appreciated!!
    Regards,
    Bia.

    Hi,-
    Our LAS converter supports LAS 1.1 format.
    LAS version 1.0 has fewer entries for the data than LAS version 1.1 so you might just ignore those extra fields that donot exist in LAS 1.0.
    Therefore, i am expecting your data to be fine with our LAS to SDO_PC converter.
    Thanks

  • Query suggestion

    Hi All,
    I need to apply condition where column should not be null and also must not be an empty string.
    I wrote like:
    WHERE (TRIM(ITEM_BAR_CODE)!='' AND ITEM_BAR_CODE IS NOT NULL) OR (TRIM(ITEM_COLOR)!='' AND ITEM_COLOR IS NOT NULL) But I am not getting the accurate results.
    I know its a very silly question, but somehow I am not getting the solution. :-(
    Please suggest.
    Thanks to all
    Bhupinder

    Here Oracle converts an empty string to NULL after
    trim. Don't you read what people write you?
    Rob wrote:
    Empty strings are considered nulls too.
    Oracle processes an empty string in a SQL statement as a null value.

  • Issue when SelectOneChoice is used with Domain data type in JDev 11.1.2.0.0

    Hi,
    I am facing one issue while working with SelectOneChoice along with Custom Domain data type. Sample app to simulate the issue is available at http://www.filejumbo.com/Download/6FDF6ECF2922BD24
    Issue Details.
    Base view object’s attribute is of type CustomString, for which another static VO’s attribute is attached as LOV. LOV attribute is of type String. Because of this data type mismatch between LOV VO attribute and Base VO attribute, while working in screen, initially we were facing Class cast exception.
    Cannot convert <<LOV Attr. Val.>> of type class java.lang.String to class model.domain.common.CustomString This is not only for this type of SelectOneChoice but also for InputText field whose underlying VO attribute is of type CustomString (i.e. any Custom Domain type)
    On raising this in Jdeveloper forum, I came to know that adding a default oracle converter against the UI Component will take care of converting to respective data type. After added the converter for InputText and SelectOneChoice components, this issue got resolved. This was our lesson while working in Jdeveloper version 11.1.1.3.0. Converter we used,
    <f:converter converterId="oracle.genericDomain"/> When we try the same scenario in Jdev Version 11.1.1.4.0, without having the oracle converter itself, SelectOneChoice started working fine!! (i.e. it is able to set the base attribute with LOV attribute’s value but with proper base attribute’s domain data type). Anyhow, converter is required for InputText.
    When we try the same scenario in Jdeveloper new version 11.1.2.0.0, it started giving class cast exception when we don’t have oracle converter for SelectOneChoice. But by adding it, though it didn’t give such class cast exception message, though a selection is made in SelectOneChoice, VO attribute has not been updated with the new value. Instead it is updated with null value (Checked the setter method of view row impl by having break point) . Because of this, after a selection is made, when we try to read the attribute value from VO on button click, VO attribute always returns null.
    We have also tried our own converters but there is no change in the behavior.
    The above misbehavior can be tested either by having SOP programmatically or by refreshing the SelectOneChoice by giving its id as Partial trigger to itself with autosubmit set to true, so that the selected value will be reset to null irrespective of the selection made.
    For convenience, Issue details with Sample application is shared. Shared link : http://www.filejumbo.com/Download/6FDF6ECF2922BD24
    Shared folder contains
    1. Sample App developed on Jdev 11.1.1.4.0 to ensure it didn’t give this error.
    2. Sample App developed on Jdev 11.1.2.0.0 to simulate this error.
    3. Error details in a document.
    Can anybody have a look at this and tell me why this misbehavior and is it a bug? If so, any workaround available to continue the development?
    Thanks in Advance.
    Raghu
    Edited by: Raguraman on Sep 10, 2011 10:31 AM

    Sorry for the late reply John and Frank. Ya i did. Thank you.
    One more detail:
    I tested the behavior in Jdeveloper 11.1.2.0.0. The recent surprise is Select One Choice is behaving perfectly when it used in Grid layout and fail to work when it is form layout. I am getting surprised why behavior of component varies based on the way it refers the binding.
    for form layout,
    value=#{bindings.
    for grid layout,
    value=#{row.bindings.
    The bug details (#/title) are Bug 12968871 - RUNTIME CONVERSION FAILURE WHEN USING CUSTOM DOMAIN OBJECT VALIDATION IN EO
    Edited by: Raguraman on Sep 12, 2011 8:23 PM
    Edited by: Raguraman on Sep 12, 2011 8:31 PM

Maybe you are looking for