2016-08-24 10 views
0

以下のアクセスクエリを、より大きなタスクの一部としてpowershellを使用して実行しようとしています。powershellを使用してdetediffとカンマでアクセスクエリを実行する

SELECT PG.LastName+`", `"+PG.FirstName AS Name, PG.Gender, PG.Ethnicity, PG.Language, PG.PhoneNumber, PG.FinancialClass AS FinClass, PG.BirthDate, Int(DateDiff(`"d`",PG.BirthDate,Now())/365.2425) AS Age, Switch(Int(DateDiff(`"d`",PG.BirthDate,Now())/365.2425)<12,PG.GLastName,Int(DateDiff(`"d`",PG.BirthDate,Now())/365.2425)>=12,Null) AS GLastName, Switch(Int(DateDiff(`"d`",PG.BirthDate,Now())/365.2425)<12,PG.GFirstName,Int(DateDiff(`"d`",PG.BirthDate,Now())/365.2425)>=12,Null) AS GFirstName FROM TestData INNER JOIN PG ON TestData.PI = PG.PINumber WHERE (((PG.Id) Not In (734,735))) 

アクセスから定期的にクエリを実行すると、正常に動作します。私はPowerShellを通過それを実行しようとしていたので、私は引用符とコンマの前に `記号を追加しましたが、私は実行すると、クエリは、まだ以下のエラーを投げていること

IErrorInfo.GetDescriptionはE_FAIL(0x80004005が)

で失敗しました

私はいくつかの以前のスレッドをチェックし、上記の変更を加えましたが、それでもうまくいかないようです。

上記のクエリに何が間違っているかについてのご意見はありますか?

おかげで、 Sreekar

答えて

0

は、私がここに文字列(下記の例)、または非拡張文字列(単一引用符「何か」)でそれを宣言するだろうので、私は心配する必要はありませんでしたエスケープ文字。

以下の二重引用符で囲まれたhere-stringの中にPowerShellの変数を含めることができます("SELECT $myVariable ...")。

私はすべてのエスケープ文字を見つけることができるので、このように書式設定しないでください。

@' 
SELECT ... 
'@ 

注:ここでは、文字列を開くときにスタートが改行以外のものに続いてはいけない

$query = @" 
SELECT PG.LastName + ", " + PG.FirstName AS Name, 
    PG.Gender, 
    PG.Ethnicity, 
    PG.Language, 
    PG.PhoneNumber, 
    PG.FinancialClass AS FinClass, 
    PG.BirthDate, 
    Int(DateDiff("d", PG.BirthDate,Now())/365.2425) AS Age, 
    Switch(
     Int(DateDiff("d", PG.BirthDate, Now())/365.2425) < 12, PG.GLastName, 
     Int(DateDiff("d", PG.BirthDate, Now())/365.2425) >= 12, Null 
    ) AS GLastName, 
    Switch(
     Int(DateDiff("d", PG.BirthDate, Now())/365.2425) < 12, PG.GFirstName, 
     Int(DateDiff("d", PG.BirthDate,Now())/365.2425) >= 12, Null 
    ) AS GFirstName 
    FROM TestData 
    INNER JOIN PG ON TestData.PI = PG.PINumber 
    WHERE (((PG.Id) Not In (734,735))) 
"@ 

このここでは、文字列の単一引用符で囲まれた変種もあります。 here-stringを閉じるときには、末尾に何も置くことはできません(空白の字下げを含む)。

関連する問題