回答編集履歴
4
追記
test
CHANGED
@@ -29,3 +29,5 @@
|
|
29
29
|
もっと高速化できるとは思いますが、数十万程度ならこれで十分かと。
|
30
30
|
|
31
31
|
あと、DB にもよるのでしょうが、insert 文を大量に投げるより、CSV からインポートした方がいい場合もありますよ。
|
32
|
+
|
33
|
+
一度 CSV にエクスポートしてから、Perl なり Python なり好きなスクリプトを使って加工し、インポートするのが一番簡単で、すでにそのような方法を取られている場合、数十万件程度でそこまでの時間(ここで質問して答えが返ってくるまでの時間)がかかるとは思えないんですが。
|
3
追記
test
CHANGED
@@ -27,3 +27,5 @@
|
|
27
27
|
```
|
28
28
|
|
29
29
|
もっと高速化できるとは思いますが、数十万程度ならこれで十分かと。
|
30
|
+
|
31
|
+
あと、DB にもよるのでしょうが、insert 文を大量に投げるより、CSV からインポートした方がいい場合もありますよ。
|
2
追記
test
CHANGED
@@ -1,3 +1,29 @@
|
|
1
1
|
変換にはどのようなスクリプトをお使いですか?
|
2
2
|
|
3
3
|
追記お願いします。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
ちなみに PowerShell だとこれで
|
8
|
+
|
9
|
+
```PowerShell
|
10
|
+
|
11
|
+
$data = @{}; sql $udl "select * from t" |% { if (-not $data.ContainsKey($_.name)) { $data[$_.name] = @{} }; $data[$_.name][$_.category] = $_.data }
|
12
|
+
|
13
|
+
$data.Keys |% {$d = $data[$_]; $fields = [string]::Join(",", ($d.Keys |% {$_})); $values = [string]::Join(",",($d.Keys |% {"'" + $d[$_] + "'"})); "insert into newTable (name,{0}) values({2},{1});" -f $fields, $values, $_}
|
14
|
+
|
15
|
+
```
|
16
|
+
|
17
|
+
このような結果が得られます。
|
18
|
+
|
19
|
+
```
|
20
|
+
|
21
|
+
insert into newTable (name,hoge,fuga) values('bbb','d03','d04');
|
22
|
+
|
23
|
+
insert into newTable (name,hoge,fuga) values('ccc','d05','d06');
|
24
|
+
|
25
|
+
insert into newTable (name,hoge,fuga) values('aaa','d01','d02');
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
もっと高速化できるとは思いますが、数十万程度ならこれで十分かと。
|
1
編集
test
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
変換にはどのようなスクリプトをお使いですか?
|
2
2
|
|
3
|
-
|
3
|
+
追記お願いします。
|