shell - 如何从 bcp 添加 sysdate
问题描述
我有一个具有以下示例数据格式的 .csv 文件:
REFID|PARENTID|QTY|DESCRIPTION|DATE
AA01|1234|1|1st item|null
AA02|12345|2|2nd item|null
AA03|12345|3|3rd item|null
AA04|12345|4|4th item|null
要将上述文件加载到我正在使用以下 BCP 命令的表中:
/bcp $TABLE_NAME in $FILE_NAME -S $DB_SERVER -t "|" -F 1 -U $DB_USERNAME -d $DB_NAME
我想在这里查看的内容如下(从 bcp 添加 sysdate 而不是 null)
AA01|1234|1|1st item|3/16/2020
AA02|12345|2|2nd item|3/16/2020
AA03|12345|3|3rd item|3/16/2020
AA04|12345|4|4th item|3/16/2020
更新: 我能够通过 -F 1 选项使用@Jamie 回答排除标题,但在使用 bcp 插入日期时寻求一些帮助。尝试寻找一些旧的问答,但到目前为止没有运气..
解决方案
要排除单个标头记录,可以使用 -F 选项。这将告诉 BCP 文件中的哪一行是开始加载的第一行。对于您的示例, -F2 应该可以正常工作。但是,您的命令还有其他问题。看评论。
如您所述,无法使用 BCP 命令引入新数据。在将数据复制到表中时,BCP 无法引入日期值。为此,我建议为您的日期列设置默认值,或者首先将原始数据加载到没有日期列的表中,然后您可以在后期处理中引入您认为合适的日期值。
推荐阅读
- powershell - exe批处理脚本到带有参数的powershel中的exe
- ffmpeg - 使用ffmpeg同时将图像序列转换为视频和叠加
- r - 错误:“sf”的包或命名空间加载失败
- powershell - 用于查看 CPU 百分比的任务管理器日志
- java - 你怎么能执行一个重复的JSoup任务,即使应用程序在android的后台也能工作
- android - 用我的安卓手机+谷歌浏览器调试网页?
- java - 错误状态记录器无法识别的格式说明符
- assembly - 从 x86 向 C 函数传递参数
- node.js - 如何使用他们的 id 检查用户是否是机器人?
- java - JavaFx 播放声音文件