我在Oracle 10g中创建了一个带有TIMESTAMP(9)的表。然后我尝试在该列中插入CURRENT_TIMESTAMP值但不幸的是得到了错误消息:值对于列太大:(实际:35,最大值:25)
然后我尝试了这个查询:
从dual选择长度(current_timestamp);
计数是35。
但Oracle不允许我在创建表结构时定义TIMESTAMP(35)。
在这种情况下,如何在创建表时定义Timestamp列以及如何在Timestamp列中插入Current Timestamp值?
答案 0 :(得分:1)
您可以发布表定义以及用于插入CURRENT_TIMESTAMP
的确切SQL语句吗?如果您实际插入TIMESTAMP
,则不应该出现该错误
SQL> create table foo ( col1 timestamp(9) );
Table created.
SQL> insert into foo values( current_timestamp );
1 row created.
length(current_timestamp)
隐式将时间戳转换为字符串并确定该字符串的长度。您获得的错误似乎意味着当您尝试将数据插入表中时会发生类似的转换。