質問編集履歴
1
プログラムに誤りがあったので修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,22 +17,40 @@
|
|
17
17
|
setlocal
|
18
18
|
|
19
19
|
:: Oracle接続情報
|
20
|
-
set HOST=**
|
20
|
+
set HOST=**
|
21
|
-
set PORT=***
|
21
|
+
set PORT=****
|
22
22
|
set SERVICE=**
|
23
23
|
|
24
|
-
set USER=**
|
24
|
+
set USER=***
|
25
|
-
set PASS=**
|
25
|
+
set PASS=***
|
26
26
|
|
27
|
+
|
27
28
|
rem batファイルのあるディレクトリを取得
|
29
|
+
|
28
30
|
set "BASEDIR=%~dp0"
|
29
31
|
|
32
|
+
|
30
33
|
rem CSVファイルの出力先を設定
|
31
|
-
set "CSVDIR=***"
|
32
34
|
|
35
|
+
set "CSVDIR=**"
|
36
|
+
|
37
|
+
|
33
38
|
rem logファイルの出力先を設定
|
39
|
+
|
34
40
|
set "LOGDIR=**"
|
35
41
|
|
42
|
+
|
43
|
+
rem 日付付きログファイルを作成
|
44
|
+
for /f "tokens=1-3 delims=/- " %%a in ("%date%") do (
|
45
|
+
set "YYYY=%%a"
|
46
|
+
set "MM=%%b"
|
47
|
+
set "DD=%%c"
|
48
|
+
)
|
49
|
+
|
50
|
+
set "LOGDATE=%YYYY%%MM%%DD%"
|
51
|
+
set "LOGFILE=%LOGDIR%\export_%LOGDATE%.log"
|
52
|
+
|
53
|
+
|
36
54
|
rem sqlファイル
|
37
55
|
set "EXPORT_SQL=%BASEDIR%sql\atena.sql"
|
38
56
|
|
@@ -41,56 +59,52 @@
|
|
41
59
|
set "outputatena=%CSVDIR%\TCat_ATENA.csv"
|
42
60
|
|
43
61
|
|
44
|
-
echo CSVファイルの出力処理開始
|
45
|
-
|
46
62
|
echo [%DATE% %TIME%] CSVファイルの出力処理開始 >> "%LOGFILE%"
|
47
63
|
|
48
|
-
echo データを出力中…
|
49
64
|
|
50
|
-
echo [%DATE% %TIME%] 整列用CSV出力開始 >> "%LOGFILE%"
|
51
|
-
|
52
65
|
sqlplus -S %USER%/%PASS%@%HOST% @%EXPORT_SQL% "%CSVDIR%" >> "%LOGFILE%" 2>&1
|
53
66
|
|
54
|
-
echo [%DATE% %TIME%] 整列用CSVの出力を完了しました >> "%LOGFILE%"
|
55
67
|
|
56
|
-
echo [%DATE% %TIME%] CSV出力開始 >> "%LOGFILE%"
|
57
|
-
echo CSVファイルの出力中…
|
58
|
-
|
59
|
-
rem CSVの出力 0件の場合でもCSVが出力される
|
68
|
+
rem 連携用CSVの出力 0件の場合でもCSVが出力される
|
60
69
|
powershell -NoProfile -Command ^
|
61
70
|
"Get-Content '%inputatena%' -Encoding UTF8 | ForEach-Object { $fields = $_ -split ','; $processedFields = $fields | ForEach-Object { '\"' + $_.Trim() + '\"' }; $processedFields -join ',' } | Out-File -FilePath '%outputatena%' -Encoding UTF8" >> "%LOGFILE%" 2>&1
|
62
71
|
|
72
|
+
|
63
|
-
rem CSVの出力件数をログファイルに記述
|
73
|
+
rem 連携用CSVの出力件数をログファイルに記述
|
64
74
|
powershell -NoProfile -Command ^
|
65
75
|
"$count = (Get-Content '%CSVDIR%\TCat_ATENA.csv' -Encoding UTF8).Count; 'TCAT_ATENA.csv出力件数: ' + $count | Out-File -FilePath '%LOGFILE%' -Encoding UTF8 -Append"
|
66
76
|
|
67
77
|
|
78
|
+
echo 連携用CSVの出力を完了しました
|
79
|
+
|
68
80
|
echo [%DATE% %TIME%] 連携用CSVの出力を完了しました >> "%LOGFILE%"
|
69
81
|
|
70
82
|
rem 整列用CSVの削除
|
71
83
|
del "%inputatena%"
|
72
84
|
|
85
|
+
|
73
86
|
pause
|
74
87
|
endlocal
|
75
88
|
exit /b
|
89
|
+
|
76
90
|
```
|
77
91
|
|
78
92
|
```sqlファイル
|
79
93
|
DEFINE CSVDIR = '&1'
|
80
94
|
|
81
|
-
SET HEADING OFF
|
82
95
|
SET ECHO OFF
|
83
96
|
SET FEEDBACK OFF
|
97
|
+
SET HEADING OFF
|
84
98
|
SET LINESIZE 13000
|
85
|
-
SET PAGESIZE
|
99
|
+
SET PAGESIZE 0
|
86
100
|
SET TRIMSPOOL ON
|
87
101
|
SET TERMOUT OFF
|
88
102
|
SET WRAP OFF
|
89
103
|
SET COLSEP ','
|
90
|
-
SET UNDERLINE OFF
|
91
104
|
|
105
|
+
|
92
106
|
SPOOL &CSVDIR/trim_ATENA.csv
|
93
|
-
SELECT * FROM
|
107
|
+
SELECT * FROM tcat_atena_DUMMY WHERE YUKOFLAG = 1;
|
94
108
|
SPOOL OFF
|
95
109
|
|
96
110
|
EXIT;
|