Sap ase 大容量复制[复制到]如何替换或更改monet db/sybase中一列的数据类型(在大容量复制期间)?

Sap ase 大容量复制[复制到]如何替换或更改monet db/sybase中一列的数据类型(在大容量复制期间)?,sap-ase,monetdb,Sap Ase,Monetdb,我正在尝试将我的数据从sybase迁移到monetdb(或相反),为此,我从sybase使用bcp输出,并复制到monetdb中 问题是某些数据类型在monetdb中不可用,例如datatime。为了解决这个问题,我可以在monetdb中定义一个函数,将datetime格式转换为monetdb特定的格式 但是,当我尝试使用bulkcopy命令时,如何在特定列上调用此函数 COPY INTO TABLE from file using delimiters; 使用分隔符将文件复制到表中; s

我正在尝试将我的数据从sybase迁移到monetdb(或相反),为此,我从sybase使用bcp输出,并复制到monetdb中

问题是某些数据类型在monetdb中不可用,例如datatime。为了解决这个问题,我可以在monetdb中定义一个函数,将datetime格式转换为monetdb特定的格式

但是,当我尝试使用bulkcopy命令时,如何在特定列上调用此函数
COPY INTO TABLE from file using delimiters; 使用分隔符将文件复制到表中;

sybase中bcp的情况相同

编辑2: (我想我解决了我的问题,尽管最初的问题仍然存在)我想从monetdb和sybase中的csv文件批量复制数据。csv文件有一列带有unix时间戳(从1970年起的秒数)。由于与人类可读的日期时间(YYYY-MM-DD HH:MM:SS)格式相比,使用unix时间戳进行查询比较困难,因此我想将该时间戳列转换为日期时间格式

我无法在大容量复制时更改数据类型,但定义(使用)了将时间戳转换为人类可读格式的函数

--For Sybase used dateadd function : select * from gaurav.table where dateadd(ss,t_stamp,'1/1/1970') '2013-02-27 (less than sign) 10:17:29.463114'; --对于Sybase使用的dateadd函数: 从gaurav.table中选择*日期添加(ss,t_邮票,'1/1/1970')'2013-02-27(小于符号)10:17:29.463114'; --对于Monetdb定义的函数: 创建函数“epoch”(sec INT)返回时间戳外部名称时间戳。“epoch”; 从gaurav.table中选择*,其中历元(图章)(小于符号)“2013-02-27 10:17:29.463114”;
我不确定ab是否是monetdb,但在Sybase ASE中,您可以为表定义视图,将Sybase datetime转换为所需的格式。创建视图后,您可以直接将BCP从视图中删除,并且您的数据应该准备好进行导入

您可以将BCP转换为表视图,并完成相同的任务


有关视图的更多信息可以在Sybase的

中找到,我不确定是否有monetdb,但在Sybase ASE中,您可以为表定义视图,将Sybase datetime转换为所需的格式。创建视图后,您可以直接将BCP从视图中删除,并且您的数据应该准备好进行导入

您可以将BCP转换为表视图,并完成相同的任务


关于视图的更多信息可以在Sybase的

中找到,感谢您的回答,我有一个带有unix时间戳的txt表,我用bcp将它加载到Sybase中,然后能够用select*从gaurav.table where dateadd(ss,t_stamp,'1/1/1970')查询具有人类可读日期的数据。<'2013-02-27 10:17:29.463114'。。。。但是我可以在bcpbcp期间将unix时间戳转换为datetime格式吗?bcpbcp不允许任何数据更改,但您可以将BCP转换为表视图,并以这种方式转换数据。是的,我想我可以使用linux工具(如sed或awk)更改csv文件中的原始数据,以在bcp之前更改数据,或使用您提到的自定义视图。感谢您的回答,我有一个带有unix时间戳的txt表,我用bcp将其加载到sybase中,然后能够使用select*从gaurav.table中查询具有人类可读日期的数据,其中dateadd(ss,t_stamp,'1/1/1970')<'2013-02-27 10:17:29.463114'。。。。但是我可以在bcpbcp期间将unix时间戳转换为datetime格式吗?bcpbcp不允许任何数据更改,但是您可以将BCP转换为表视图,并以这种方式转换数据。是的,我可以使用linux工具(如sed或awk)更改csv文件中的原始数据,以在BCP之前更改数据,或者使用您提到的自定义视图。 --For Monetdb defined a function : create function "epoch"(sec INT) returns TIMESTAMP external name timestamp."epoch"; select * from gaurav.table where epoch(t_stamp) (less than sign) '2013-02-27 10:17:29.463114';