回答編集履歴

5

微修正4

2016/09/03 11:44

投稿

tomari_perform
tomari_perform

スコア760

test CHANGED
@@ -72,6 +72,4 @@
72
72
 
73
73
  なお、本来であれば、たとえ1000個以上のテーブルがあっても、
74
74
 
75
- どんなテーブルがあり、どんなデータが格納されているかを把握し
75
+ どんなテーブルがあり、どんなデータが格納されているかを把握したいところ。
76
-
77
- 置換する事で、どの画面のどこの表示に影響するか把握できたうえで置換したいところ。

4

微修正3

2016/09/03 11:44

投稿

tomari_perform
tomari_perform

スコア760

test CHANGED
@@ -1,4 +1,4 @@
1
- -評価だったので、少し編集。回答内容は変えてません。
1
+ -評価だったので、少し編集。
2
2
 
3
3
 
4
4
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  SELECT カラム名 as BEFORE
24
24
 
25
- , REPLACE(カラム名,'首相','総理) as AFTER
25
+ , REPLACE(カラム名,'首相','総理') as AFTER
26
26
 
27
27
  FROM テーブル名
28
28
 

3

微修正2

2016/09/03 11:43

投稿

tomari_perform
tomari_perform

スコア760

test CHANGED
@@ -50,6 +50,26 @@
50
50
 
51
51
 
52
52
 
53
+ 上記SQLの作り方は、言語によって様々なので指定してほしいところ。
54
+
55
+ desc テーブル名; 等で
56
+
57
+ テーブルとカラムの一覧を取得してEXCEL等に貼り付けて、
58
+
59
+ ="SELECT "&A2&" FROM "&A1&" WHERE "&A2&" like '%首相%';"
60
+
61
+ とコピーすればすぐに作れる。
62
+
63
+
64
+
65
+ まとめて実行したい場合、SQL文の最後に実行結果を
66
+
67
+ テーブル名+カラム名のファイル名でファイル出力しても良いでしょう。
68
+
69
+ (Oracleなら、USER_OBJECTS等でもテーブル名とカラム名は取得できる。)
70
+
71
+
72
+
53
73
  なお、本来であれば、たとえ1000個以上のテーブルがあっても、
54
74
 
55
75
  どんなテーブルがあり、どんなデータが格納されているかを把握し、

2

微修正

2016/09/03 11:42

投稿

tomari_perform
tomari_perform

スコア760

test CHANGED
@@ -1,4 +1,4 @@
1
- なぜか、-評価だったので、少し編集。回答内容は変えてません。
1
+ -評価だったので、少し編集。回答内容は変えてません。
2
2
 
3
3
 
4
4
 
@@ -40,7 +40,7 @@
40
40
 
41
41
  UPDATE テーブル名
42
42
 
43
- カラム名 = REPLACE(カラム名,'首相','総理)
43
+ カラム名 = REPLACE(カラム名,'首相','総理')
44
44
 
45
45
  WHERE カラム名 like '%首相%'
46
46
 

1

なぜか、-評価だったため。

2016/09/03 11:37

投稿

tomari_perform
tomari_perform

スコア760

test CHANGED
@@ -1,3 +1,7 @@
1
+ なぜか、-評価だったので、少し編集。回答内容は変えてません。
2
+
3
+
4
+
1
5
  > データベースの全テーブルから、特定の文字列検索したいのですが、
2
6
 
3
7
  何かいい方法はありませんか?
@@ -8,19 +12,41 @@
8
12
 
9
13
 
10
14
 
11
- 面倒であれば、プログラムのソースはgrep置換で変更。
12
-
13
- テーブルについては、全テーブルのVARCHAR等の全カラムについてのみ、
14
-
15
- 全てUPDATEにて、REPLACE文を投げてはいかがでしょうか。
16
-
17
- (システム要件を満たせるは謎ですが
15
+ 以下の手順でしょうか。
18
16
 
19
17
 
20
18
 
21
- ちなどこに存在するかは、上記UPDATE文をSELECT文に変えれば、
19
+ 1.全テーブルのVARCHAR等の全カラムについてのみ、以下のようなSQLで抽出する
22
20
 
21
+ ```SQL
22
+
23
+ SELECT カラム名 as BEFORE
24
+
25
+ , REPLACE(カラム名,'首相','総理) as AFTER
26
+
27
+ FROM テーブル名
28
+
29
+ WHERE カラム名 like '%首相%'
30
+
31
+ ;
32
+
33
+ ```
34
+
35
+
36
+
37
+ 2.上記SQLで引っかかったカラムに対して、以下のSQLを実行する。
38
+
39
+ ```SQL
40
+
23
- 見つけられるはずです。
41
+ UPDATE テーブル名
42
+
43
+ カラム名 = REPLACE(カラム名,'首相','総理)
44
+
45
+ WHERE カラム名 like '%首相%'
46
+
47
+ ;
48
+
49
+ ```
24
50
 
25
51
 
26
52