Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Tricky: Column sort with Popup-key LOV

614097Feb 8 2008 — edited Feb 27 2009
Hi everyone,

I guess this is a tricky one:
Column sorting doesn't seem to work if you have a Popupkey LOV in your tabular form.

See the following example:
http://quickimg.com/uploads/f6388ab3680bdeac63cb8795a98d81fe.png

(The yellow fields you see are form detail information displayed by the Firefox Extension Web Developer Toolbar, highly recommendable, by the way)

The form element names now are in the right order (00, 01, 02, 03 ...).

However, if you sort the table by Column 1 (Source) this order gets tumbled:
http://quickimg.com/uploads/93b976c603132db84fc8881211617718.png

That's quite some problem because the Key returned by the popup refers to the ROWNUM which does not correlate with the correct row anymore.

Anyone got an idea how to workaround this problem?

cheers,

Michael

Comments

Simon Cheng-Oracle

This fix is in 11.2.0.4

Rod Allen

Hi,

This is what I thought originally as it was 'reported' as fixed in Oracle Support but I tested it and the problem I was facing remains. This either means the the problem I am seeing is not exactly the same (and I am happy to be corrected if this is the case) or the core problem has not been fixed. To illustrate try compiling this and testing with JDBC 11.2.0.4 against an 11.2.0.4 database (ensuring the latest ojdbc6.jar is first in your CLASSPATH and adapt for your environment)

import java.sql.*;

import java.sql.SQLException;

import oracle.jdbc.pool.OracleDataSource;

public class OracleDriverTest {

    /**

    * @param args the command line arguments

    * @throws java.sql.SQLException

    */

    public static void main(String[] args) throws SQLException {

        Connection connection = getConnection();

            Statement stmt;

            stmt = connection.createStatement();

            DatabaseMetaData dmd = connection.getMetaData();

            ResultSet rs = dmd.getColumns("", "SCOTT", "BONUS", "%"))

                while (rs.next()) {

                    System.out.println("Column: " + rs.getString("COLUMN_NAME"));

                    System.out.println("Data type: " + rs.getInt("DATA_TYPE"));

                    System.out.println("Size: " + rs.getInt("COLUMN_SIZE"));

                    System.out.println("Decimal digits: " + rs.getInt("DECIMAL_DIGITS"));

                }

    }

    public static Connection getConnection() throws SQLException {

        String username = "SCOTT";

        String password = "password";

        String thinConn = "jdbc:oracle:thin:@//localhost/ORCL";

        OracleDataSource ods;

        ods = new OracleDataSource();

        ods.setUser(username);

        ods.setPassword(password);

        ods.setURL(thinConn);

        Connection conn = ods.getConnection();

        DatabaseMetaData dbmd = conn.getMetaData();

        System.out.println("Database : " + dbmd.getDatabaseProductVersion());

        System.out.println("JDBC Driver : " +dbmd.getDriverVersion());

        conn.setAutoCommit(false);

        return conn;

    }

}

When I run this against my database I see this

$ /opt/jdk1.6.0_38/bin/java OracleDriverTest

Database : Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

JDBC Driver : 11.2.0.4.0

Column: ENAME

Data type: 12

Size: 10

Decimal digits: 0

Column: JOB

Data type: 12

Size: 9

Decimal digits: 0

Column: SAL

Data type: 3

Size: 0

Decimal digits: -127

Column: COMM

Data type: 3

Size: 0

Decimal digits: -127

now compare the results when I use the oracle.jdbc.J2EE13Compliant=true argument

$ /opt/jdk1.6.0_38/bin/java -Doracle.jdbc.J2EE13Compliant=true OracleDriverTest

Database : Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

JDBC Driver : 11.2.0.4.0

Column: ENAME

Data type: 12

Size: 10

Decimal digits: 0

Column: JOB

Data type: 12

Size: 9

Decimal digits: 0

Column: SAL

Data type: 3

Size: 38

Decimal digits: 0

Column: COMM

Data type: 3

Size: 38

Decimal digits: 0

This illustrates both the problem I am facing and a potential workaround/solution. The question is - is this the same bug or something different?

Regards


Rod

1 - 2
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Mar 27 2009
Added on Feb 8 2008
9 comments
2,235 views