teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解決後のPGを記載。回答者の皆様。ありがとうございます。

2019/02/25 02:56

投稿

reraNine
reraNine

スコア124

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,35 @@
39
39
  Invoke-Sqlcmdのオプションに不備があるのでしょうか...
40
40
 
41
41
  ご教授をお願いできればと思います。
42
- 何卒よろしくお願い致します。
42
+ 何卒よろしくお願い致します。
43
+
44
+
45
+ ----------------------------------------------
46
+ 以下の形にて修正
47
+ ```Powershell
48
+ $Error.Clear()
49
+
50
+ $DBSERVER = "aaaa"
51
+ $DB = "bbbb"
52
+ $ID = "xxxx"
53
+ $PASSWORD = "yyyy"
54
+ $SQLFILE = "C:xxx\yyy\zzz.sql"
55
+
56
+ [hashtable]$sqlCmdParam = @{
57
+ ServerInstance = $DBSERVER
58
+ Database = $DB
59
+ Username = $ID
60
+ Password = $PASSWORD
61
+ InputFile = $SQLFILE
62
+ Verbose = $true
63
+ OutputSqlErrors = $true
64
+ }
65
+ Invoke-Sqlcmd @sqlCmdParam | Export-Csv $TSV -NoTypeInformation -Encoding Unicode -Delimiter "`t"
66
+ if($Error[0] -ne $null) {
67
+ #Error[0]をログに書き込む
68
+ }
69
+ ```
70
+ きっとExport-Csvもスプラッティングで省略できるでしょう、、、時間が出来たら挑戦。
71
+
72
+ 関連記事の回答者を含め、
73
+ この場を借りて、回答者の皆様へ御礼申し上げます。

1

ソースコード改行エスケープ付与 + \tデミリタオプション付与

2019/02/25 02:56

投稿

reraNine
reraNine

スコア124

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,7 @@
4
4
  https://teratail.com/questions/175395
5
5
 
6
6
  少々引用させていただきます。
7
+
7
8
  -----------------------------------------------------------------------
8
9
  現在PowerShellから
9
10
  sqlファイルに定義されているSELECT文からTSVファイルを出力するpgを作成中です。
@@ -14,14 +15,13 @@
14
15
  $PASSWORD = "yyyy"
15
16
  $SQLFILE = "C:xxx\yyy\zzz.sql"
16
17
  $TSV = "C:aaa\bbb\ccc\ddd.tsv"
17
- #改行エスケープは後程調べて実装します...
18
- $Result = Invoke-Sqlcmd
18
+ $Result = Invoke-Sqlcmd `
19
- -ServerInstance $DBSERVER
19
+ -ServerInstance $DBSERVER `
20
- -Database $DB
20
+ -Database $DB `
21
- -Username $ID
21
+ -Username $ID `
22
- -Password $PASSWORD
22
+ -Password $PASSWORD `
23
- -InputFile $SQLFILE
23
+ -InputFile $SQLFILE `
24
- -Verbose -OutputSqlErrors $true | Export-Csv $TSV -NoTypeInformation -Encoding Unicode
24
+ -Verbose -OutputSqlErrors $true | Export-Csv $TSV -NoTypeInformation -Encoding Unicode -Delimiter "`t"
25
25
  ```
26
26
  上記PGにてSQLからTSV出力が可能となりました。
27
27
  ここで、試しにSQLファイルを修正し、存在しない列を参照する様変更して