我有excel,我正在尝试导入oracle数据库表。
excel中的一些值包括带有双冒号的14:39.5。我应该在oracle数据库表中提供哪些数据来存储这个值?
当前已将varchar数据类型及其在导入期间抛出的错误提供如下:
Conversion error! Value: "00:12:01.615518000" to data type: "Number". Row ignored! Value is '00:12:01.615518000'. Cannot be converted to a decimal number object. Valid format: 'Unformatted'发布于 2021-09-03 16:33:03
您可以将其存储为INTERVAL DAY(0) TO SECOND(9)数据类型:
CREATE TABLE table_name (
time INTERVAL DAY(0) TO SECOND(9)
);然后,您可以使用TO_DSINTERVAL传递值,并将'0 '加到开头:
INSERT INTO table_name (time)
VALUES ( TO_DSINTERVAL('0 ' || '00:12:01.615518000') );db<>fiddle https://dbfiddle.uk/?rdbms=oracle_18&fiddle=2a516c1bbb6954ea13831d2b84149aeb
发布于 2021-09-03 15:20:55
如果它是日期/时间戳的一部分,则如果可以添加日期组件,则可以将其存储为DATE或TIMESTAMP。Oracle不只是一个TIME数据类型。
如果不能向它添加日期组件,那么假设它是一个时间间隔,则可以将其转换为秒或微秒(丢失冒号),并将其存储为NUMBER。
如果您想要保持正确的格式,您唯一的选择是使用VARCHAR2或类似的东西将其存储为文本。
https://stackoverflow.com/questions/69046866
复制相似问题