【发布时间】:2019-01-22 02:50:38
【问题描述】:
假设我有一个相应的包含以下列的 tableX -id | name | description | contact_no
现在如果我执行插入操作insert into tableX(id, contact_no, name, description) value(?,?,?,?)
[注意列的顺序]
oracle 将按什么顺序插入每一列的值?
i) 根据insert 声明
ii) 根据表格中的列顺序X
iii) 或 oracle 按字母顺序对列进行排序 [id, contact_no, description, name] 并相应地放置它们。
【问题讨论】:
-
只是想知道 - 为什么(选项 iii)你会认为它可能是字母顺序的?你是从哪里得到这个想法的?
-
@JeffreyKemp Hibernate 在持久化的同时进行排序。我想知道甲骨文是否在下面做那种事情!
-
@JeffreyKemp 让我解释一下我遇到的情况,在我的一个
domain中,我有一个名为description的属性,其数据类型是LOB。description之后还有一些其他字段,其数据类型是原始类型。在执行persist操作时,我得到了 ORA-24816 异常。为了解决这个错误,我将字段名称重命名为zzzDescription,这导致 hibernate 将此字段放在插入查询的末尾。 -
这与按字母顺序排列列名无关。听起来 Hibernate 有点奇怪,这本身就是一个完整的问题......
-
@JeffreyKemp 是 oracle 的问题。 Oracle 不能在任何原始类型之前插入包含任何 clob 数据的行。我得到的确切错误是否则 ORA-24816:在抛出实际 LONG 或 LOB 列后提供扩展的非 LONG 绑定数据
标签: oracle hibernate spring-mvc