我正在尝试使用虚拟列创建oracle表,如下所示 在液基中 创建表MY_TABLE (entry_datetime DATE不为null, entry_date DATE AS(TRUNC(entry_datetime)))
根据文档,我尝试如下使用ValueComputed属性
<changeSet author="base_script" id="idx_31710" context="btr_rem" dbms = "oracle">
</changeSet>
<changeSet author="my_scripts" id="t11" dbms="oracle">
<createTable
remarks= ""
tableName= "my_table1">
<column name="entry_datetime" type="date" >
<constraints nullable="false"/>
</column>
<column name="entry_date" type="DATE" ValueComputed="TRUNC(entry_datetime)"></column>
</createTable>
</changeSet>
但是我运行时却出现如下错误 cvc-complex-type.3.2.2:属性“ ValueComputed”不允许出现在元素“ column”中。
我尝试将计算属性用作 但它给人错误 cvc-complex-type.3.2.2:属性“已计算”不允许出现在元素“列”中。
答案 0 :(得分:2)
您正在创建新表,而不是将值分配给列。
这需要一个defaultValueComputed
属性。
例如:
<column name="entry_date" type="DATE" defaultValueComputed="TRUNC(entry_datetime)"></column>