我正在使用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”的原因。 在临时表的情况下,我无法加载文件,但在普通表的情况下,它将加载至文件中。我想在临时表中加载它的原因是我想在临时表中添加新列,然后在新文件中查询出来,然后将该文件加载到具有更新列的最终表中。
谢谢!
答案 0 :(得分:0)
仅当会话处于活动状态时临时表才处于活动状态,而导入完成后cmd丢弃会话-临时表无法生存。您需要使用其他步骤扩展批次以使用临时表(添加列,更新),然后在同一批次中进行导出。