无法使用bcp逗号导入|中的数据分隔文件到临时表

时间:2019-04-29 12:16:26

标签: sql-server file bcp

我正在使用bcp命令行将管道分隔文件中的数据加载到临时表中,如下所示:

public override void Entrada0_ProcessInputRow(Entrada0Buffer Row)
{
    if (Row.latdestrad == 0)
    {
        Row.kms = 0;
    }
    else
    {
        Row.kms = Math.Acos(
            (Math.Sin(Row.latorgrad) * (Math.Sin(Row.latdestrad))) +
            (Math.Cos(Row.latorgrad) * (Math.Cos(Row.latdestrad)) * Math.Cos(Row.londestrad - Row.lonorgrad)))
            * 57.29577951 * 111.302;
    }
}

#!/usr/bin/bash FILE="example.csv" sqlplus -s abcd/abcd@XE <<EOF SET PAGESIZE 50000 SET COLSEP "," SET LINESIZE 200 SET FEEDBACK OFF SPOOL $FILE SELECT * FROM myTable; SPOOL OFF EXIT

Create table tempdb..##test
(
  test1 int,
  test2 int,
  test3 int
)

在文件的第一行中是标题,这就是为什么我将2放置为“ -c -q -t -F 2”的原因。 在临时表的情况下,我无法加载文件,但在普通表的情况下,它将加载至文件中。我想在临时表中加载它的原因是我想在临时表中添加新列,然后在新文件中查询出来,然后将该文件加载到具有更新列的最终表中。

谢谢!

1 个答案:

答案 0 :(得分:0)

仅当会话处于活动状态时临时表才处于活动状态,而导入完成后cmd丢弃会话-临时表无法生存。您需要使用其他步骤扩展批次以使用临时表(添加列,更新),然后在同一批次中进行导出。