简体   繁体   English

使用BTEQ插入Teradata时的时间戳无效

[英]Invalid Timestamp when inserting to teradata with BTEQ

So I want to insert something into a table which was created before with bteq. 所以我想在以前用bteq创建的表中插入一些东西。 I already googled for this (eg here ) however I already cast on the column and that did not erase the error. 我已经用谷歌搜索了这个(例如here ),但是我已经在该列上进行了投射,但是并没有消除错误。

The creation statement looks like this: 创建语句如下所示:

.logmech LDAP
.logon databae/user_id,pwd
.set width 256
.set retcancel on database libname;
DATABASE libname;
create MULTISET table libname.IRIS( "SEPAL_LENGTH" FLOAT,  "SEPAL_WIDTH" FLOAT,  "PETAL_LENGTH" FLOAT,  "PETAL_WIDTH" FLOAT,  "TARGET" FLOAT,  "TIMESTAMP1" TIMESTAMP(6) FORMAT 'YYYY-MM-DDBHH:MI:SS.S(6)' DEFAULT NULL ,  "NULL_VALUES" FLOAT) UNIQUE PRIMARY INDEX("TimeStamp1");
.QUIT
.LOGOFF
.EXIT

And the insertion Statement looks like the following: 插入语句如下所示:

.logmech LDAP
.logon databae/user_id,pwd
.set width 256
.set retcancel on database libname;
DATABASE libname;
.IMPORT VARTEXT FILE =/path_to_file/data.csv, skip=1;
.REPEAT *
USING "SEPAL_LENGTH" (varchar(2000)),  "SEPAL_WIDTH" (varchar(2000)),  "PETAL_LENGTH" (varchar(2000)),  "PETAL_WIDTH" (varchar(2000)),  "TARGET" (varchar(2000)),  "TIMESTAMP1" (varchar(2000)),  "NULL_VALUES" (varchar(2000)) 
INSERT INTO IRIS_delete VALUES(cast( :"SEPAL_LENGTH"  as FLOAT), cast( :"SEPAL_WIDTH"  as FLOAT), cast( :"PETAL_LENGTH"  as FLOAT), cast( :"PETAL_WIDTH"  as FLOAT), cast( :"TARGET"  as FLOAT), cast( :"TIMESTAMP1"  as TIMESTAMP(6) FORMAT 'YYYY-MM-DDBHH:MI:SS.S(6)'), cast( :"NULL_VALUES"  as FLOAT));
.QUIT
.LOGOFF
.EXIT

By executing the insert statement I get the error: 通过执行插入语句,我得到了错误:

*** Failure 6760 Invalid timestamp. ***故障6760无效的时间戳。 Statement# 1, Info =0 语句#1,信息= 0

Here are some examples for the csv: 以下是csv的一些示例:

|sepal_length|sepal_width|petal_length|petal_width|target|TimeStamp1|Null_values 0|5.1|3.5|1.4|0.2|0.0|2018-09-18 13:26:30.583216| | sepal_length | sepal_width | petal_length | petal_width | target | TimeStamp1 |空值0 | 5.1 | 3.5 | 1.4 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

1|4.9|3.0|1.4|0.2|0.0|2018-09-18 13:26:30.583216| 1 | 4.9 | 3.0 | 1.4 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

2|4.7|3.2|1.3|0.2|0.0|2018-09-18 13:26:30.583216| 2 | 4.7 | 3.2 | 1.3 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

3|4.6|3.1|1.5|0.2|0.0|2018-09-18 13:26:30.583216| 3 | 4.6 | 3.1 | 1.5 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

4|5.0|3.6|1.4|0.2|0.0|2018-09-18 13:26:30.583216| 4 | 5.0 | 3.6 | 1.4 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

5|5.4|3.9|1.7|0.4|0.0|2018-09-18 13:26:30.583216| 5 | 5.4 | 3.9 | 1.7 | 0.4 | 0.0 | 2018-09-18 13:26:30.583216 |

6|4.6|3.4|1.4|0.3|0.0|2018-09-18 13:26:30.583216| 6 | 4.6 | 3.4 | 1.4 | 0.3 | 0.0 | 2018-09-18 13:26:30.583216 |

7|5.0|3.4|1.5|0.2|0.0|2018-09-18 13:26:30.583216| 7 | 5.0 | 3.4 | 1.5 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

8|4.4|2.9|1.4|0.2|0.0|2018-09-18 13:26:30.583216| 8 | 4.4 | 2.9 | 1.4 | 0.2 | 0.0 | 2018-09-18 13:26:30.583216 |

9|4.9|3.1|1.5|0.1|0.0|2018-09-18 13:26:30.583216| 9 | 4.9 | 3.1 | 1.5 | 0.1 | 0.0 | 2018-09-18 13:26:30.583216 |

Do you know what is wrong with the timestamp? 您知道时间戳记有什么问题吗?

Mimi, the number and order of column in your bteq script and data file are not matching Check below sample for columns specified in script and number of column in file 咪咪,您的bteq脚本和数据文件中的列数和顺序不匹配检查下面的示例以查看脚本中指定的列和文件中的列数

"SEPAL_LENGTH" (1),  "SEPAL_WIDTH"(2),  "PETAL_LENGTH"(3),  "PETAL_WIDTH"(4),  "TARGET"(5),  "TIMESTAMP1"(6),  "NULL_VALUES"(7)

col1->0|  col2->5.1|  col3->3.5|  col4->1.4|  col5->0.2|  col6->0.0|  col7->2018-09-18 13:26:30.583216|  col8->

You can resolve your issue by adding 1 more column before the timestamp column in your table and bteq script like below where I added "TARGET1" before timestamp column 您可以通过在表和bteq脚本中的timestamp列之前再添加1列来解决问题,如下所示,我在timestamp列之前添加了“ TARGET1”

USING "SEPAL_LENGTH" (varchar(2000)),  "SEPAL_WIDTH" (varchar(2000)),  "PETAL_LENGTH" (varchar(2000)),  "PETAL_WIDTH" (varchar(2000)),  "TARGET" (varchar(2000)),  "TARGET1" (varchar(2000)),  "TIMESTAMP1" (varchar(2000)),  "NULL_VALUES" (varchar(2000)) 
INSERT INTO IRIS_delete VALUES(cast( :"SEPAL_LENGTH"  as FLOAT), cast( :"SEPAL_WIDTH"  as FLOAT), cast( :"PETAL_LENGTH"  as FLOAT), cast( :"PETAL_WIDTH"  as FLOAT), cast( :"TARGET"  as FLOAT), cast( :"TARGET1"  as FLOAT), cast( :"TIMESTAMP1"  as TIMESTAMP(6) FORMAT 'YYYY-MM-DDBHH:MI:SS.S(6)'), cast( :"NULL_VALUES"  as FLOAT));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用Python插入Teradata时的无效日期 - Invalid Date when inserting to Teradata using Python 格式化Teradata中bteq中的输出 - Format output in bteq in teradata 在Teradata中的bteq中使用.GOTO处理错误 - Error handing with .GOTO in bteq in teradata 将 panda df 移至 teradata 表:[HY000] [Teradata][ODBC Teradata Driver][Teradata Database] 时间戳无效 - Move panda df to teradata table: [HY000] [Teradata][ODBC Teradata Driver][Teradata Database] Invalid timestamp BTEQ Teradata将多个文件导入一个表 - BTEQ Teradata Import Multiple files into one table ANSI DATETIME上的无效操作(在Teradata中将一个时间戳减去另一个时间戳) - Invalid Operation On An ANSI DATETIME (Subtracting one timestamp from another in Teradata) reg。 Teradata SQL / BTEQ / BTET。 使用BTEQ导出到带有2个选项卡的Excel报告 - reg . Teradata SQL / BTEQ / BTET . Export to an excel report with 2 tabs using BTEQ 如何编写批处理 (*.bat) 脚本以使用 BTEQ 执行 Teradata 查询? - How to write batch (*.bat) script to execute Teradata query using BTEQ? 用于在两个 Teradata 服务器之间复制数据的 Bteq 脚本 - Bteq Scripts to copy data between two Teradata servers Teradata-如何在使用extract()函数时解决时间戳丢失的时间 - Teradata - How to account for missing hours in timestamp when using extract() function
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM