0

我们有一个产生这个时间戳的数据库:

YYYY-MM-DD HH24:MI:SS

为了用这个时间戳加载 csvs,有没有办法可靠地做到这一点?我尝试了许多格式化选项,希望它只是添加 .00.00 并符合标准,但没有运气。我错过了什么吗?

我期待这样的事情可能吗?作为报表或文件格式的一部分复制?

TIMESTAMP_FORMAT = (TYPE='CSV' TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS America/Los_Angeles')

有问题的表:

在有问题的表格中是这样的:

 CREATE OR REPLACE TABLE UsageValues (
     UsageTypeName VARCHAR(40000)  NULL, 
     UsageTotal NUMBER(38,0)  NULL, 
     etl_uuid VARCHAR(40000)  NULL, 
     etl_deviceServer VARCHAR(40000)  NULL, 
     etl_timestamp TIMESTAMP  NULL
);

目标列已经是时间戳。我改变了它以满足不同的需求仍然得到

'Timestamp '2020-04-09 23:01:07' is not recognized'

这是现在的会话参数

TIMESTAMP_INPUT_FORMAT YYYY-MM-DD HH24:MI:SS AUTO SESSION  
4

1 回答 1

0

我试图重现这个问题,创建了一个简单的文件来加载。内容如下:

2020-02-20 23,Gokhan
2010-02-03 11,Test

我创建了一个阶段并将文件加载到阶段:

CREATE STAGE mystage;
put file://test.csv @mystage;

我创建了一个表并运行复制命令:

create table load_test (t1 timestamp, v1 varchar );
copy into LOAD_TEST from @mystage;

因为目标列的类型是时间戳,所以会自动解析并插入。结果如下:

select * from LOAD_TEST;
+-------------------------+--------+                                            
| T1                      | V1     |
|-------------------------+--------|
| 2020-02-20 23:00:00.000 | Gokhan |
| 2010-02-03 11:00:00.000 | Test   |
+-------------------------+--------+
于 2020-04-08T22:51:11.533 回答