web-dev-qa-db-ja.com

BCPユーティリティ:「コピー方向は、「in」、「out」、または「format」のいずれかである必要があります

SQLエージェントジョブをSQL Server 2008 R2インスタンスから2016インスタンスに移動しました。このジョブはPowerShellスクリプトを呼び出し、次にそれはbcp.exeを呼び出しました。ジョブを移動した後、私はこのエラーを受け取ります:

コピー方向は、「in」、「out」、または「format」のいずれかでなければなりません。

コマンドは変更されず、ジョブの場所とインスタンスのバージョンのみが変更されました。

bcp "SELECT * FROM [dbo].[Table]" queryout "\\filerepository\ftp\text_file.txt" -T -c -t"|" -S"ServerName" -d"MyDB"

また、2012 bcp.exeを使用してこれをローカルで実行し、同じエラーを受け取りました。 bcpユーティリティの本のオンライン記事を比較すると、このコマンドの構文に影響を与える変更はありません。

助言をいただければ幸いです。

更新:PowerShellスクリプト

$ErrorActionPreference = "stop"
$serverInstance = "Server"
$databaseName = "DB"


# construct query
$query = @"
SELECT *
FROM [dbo].[Table]
"@

$query = $query -replace "`n|`r|`t"," "

# output results
$extractPath = "\\filerepository\ftp\"
$fileName = "CTBRI_$(Get-Date -Format "yyyy-MM-dd")_text_file.txt"
$path = Join-Path $extractPath $fileName;

$cmd = "`"$query`" queryout `"$path`" -T -c -t`"|`" -S`"$serverInstance`" -d`"$databaseName`""

bcp $cmd

if($LASTEXITCODE -ne 0)
{
    throw "bcp did not exit with a success code of 0. Hopefully there are more detailed messages above."
}
2
SQL Hammer

SQL Server 2008R2、2012、2016をホストするサーバー/ VM上のPowershellの同じバージョン?

クエリを囲む二重引用符を削除する解析エラーは、このエラーになります。

ロニー・ニーダーシュタット

2
sqL_handLe