質問編集履歴
1
質問の内容について補足と詳細を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,11 +4,45 @@
|
|
4
4
|
|
5
5
|
バッチファイルにて、SQLPLUSを実行しCSVファイルを作成。その後、作成したCSVファイル内の特定の文字列を置換する、という処理を実現させたいと考えています。
|
6
6
|
|
7
|
+
置換処理は、「特定の値を持つのカラムのみ囲み文字を削る」というものです。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
CSVファイル出力直後・置換前
|
12
|
+
|
13
|
+
"CODE","NAME","AGE","SEX","OTHER"
|
14
|
+
|
15
|
+
"0001","太郎",20,"male","XXX"
|
16
|
+
|
17
|
+
"0002","花子",21,"female","XXX"
|
18
|
+
|
19
|
+
"0003","一郎",22,"male","YYY"
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
上記のうち、"XXX"をXXXに置換
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
置換後
|
28
|
+
|
29
|
+
"CODE","NAME","AGE","SEX","OTHER"
|
30
|
+
|
31
|
+
"0001","太郎",20,"male",XXX
|
32
|
+
|
33
|
+
"0002","花子",21,"female",XXX
|
34
|
+
|
35
|
+
"0003","一郎",22,"male","YYY"
|
36
|
+
|
7
37
|
|
8
38
|
|
9
39
|
### 発生している問題・エラーメッセージ
|
10
40
|
|
11
|
-
処理自体は実現できているのですが、出力されるCSVファイルのサイズが非常に大きく、文字列置換処理でかなり時間がかかってしまっているので、それを解消したいのです。
|
41
|
+
下記のソースコードで処理自体は実現できているのですが、出力されるCSVファイルのサイズが非常に大きく、文字列置換処理でかなり時間がかかってしまっているので、それを解消したいのです。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
置換処理は「特定の値を持つのカラムのみ囲み文字を削る」というものであるため、SQLのREPLACEなどでも対応できません。また、「特定の値」はカラムが限定できません。
|
12
46
|
|
13
47
|
|
14
48
|
|
@@ -86,9 +120,9 @@
|
|
86
120
|
|
87
121
|
:replace_str
|
88
122
|
|
89
|
-
rem CSV内のAAAという文字列を
|
123
|
+
rem CSVファイル内の"AAA"という文字列をAAAに変換
|
90
124
|
|
91
|
-
set l=%line:AAA=
|
125
|
+
set l=%line:"AAA"=AAA%
|
92
126
|
|
93
127
|
>>%fname% echo %l%
|
94
128
|
|