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

質問編集履歴

1

プログラムに誤りがあったので修正しました

2025/06/26 07:22

投稿

tefutefute-fu
tefutefute-fu

スコア3

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 50000
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 atena;
107
+ SELECT * FROM tcat_atena_DUMMY WHERE YUKOFLAG = 1;
94
108
  SPOOL OFF
95
109
 
96
110
  EXIT;