我在Oracle 10gR2數據庫與IOT表:不能與JBDC updateRow方法更新的Oracle IOT表
create table countries (
id number primary key,
name varchar2(30) not null enable
) organization index;
我嘗試用這種爪哇(版本1.6)的代碼來更新表值:
Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
ResultSet src = stmt.executeQuery("select id, name from countries");
src.next();
src.updateString("name", "__test__");
src.updateRow();
但updateRow引發SQLException(ORA-01410:invalid ROWID)。如果我嘗試更新堆(普通)表 - 所有作品。
我使用此代碼與不同版本的Oracle驅動程序(從這裏http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html)
經過一番研究,我已經檢測到物聯網和HEAP表具有的rowid的不同格式:
IOT例如* BAJzKgwCwRb +
HEAP示例AAAbgVAAJAAMyr8AAA
但是我仍然不知道如何解決這個問題。你有什麼想法嗎?
跟蹤是個好主意!謝謝! 關於您的解決方法的想法:謝謝,但我不需要解決方法,我想了解爲什麼它不起作用。這是一個錯誤或實施限制或只是我的錯誤。 – glebreutov 2010-03-02 16:40:24