|
|
|
insert .... returning into в Oracle 9.2 через JDBC
|
|||
|---|---|---|---|
|
#18+
Всем доброе время суток! Всем наверное, известно, что БД Oracle поддерживает синтаксис insert into t (c1,c2) values (...) returning id into :bindvar который позволяет вставив в таблицу запись сразу получить сгенеренные триггером или дефолтными значениями поля. С другой стороны в JDBC есть понятие Auto-generated keys. Есть даже пример: String sql = "INSERT INTO AUTHORS (LAST, FIRST, HOME) VALUES " + "(?, ?, ?, keyColumn)"; PreparedStatement addAuthor = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); addAuthor.setString(1, "Wordsworth"); addAuthor.setString(2, "William"); addAuthor.setString(3, "England"); int rows = addAuthor.executeUpdate(); ResultSet rs = stmt.getGeneratedKeys(); if (rs.next()) { ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); do { for (int i = 1; i <= colCount; i++) { String key = rs.getString(i); System.out.println("key " + i + "is " + key); } } while (rs.next();) } else { System.out.println("There are no generated keys."); } Причем сразу при выполнении con.prepareStatement у меня выпадает: java.lang.AbstractMethodError: java.sql.PreparedStatement java.sql.Connection.prepareStatement(java.lang.String, int) Oracle 9.2.0.4 на Windows XP драйвер JDBC из JDeveloper 10g (9.0.5.1) Не знает ли кто что за беда? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 20:55 |
|
||
|
insert .... returning into в Oracle 9.2 через JDBC
|
|||
|---|---|---|---|
|
#18+
С Auto-generated keys не работал. Можно так сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 10:07 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=821&tid=2153045]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 284ms |
| total: | 399ms |

| 0 / 0 |
