質問編集履歴

9

 

2023/07/29 13:52

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -5,7 +5,8 @@
5
5
 
6
6
  ### 環境
7
7
 
8
- - データベースはOracleDB
8
+ - Oracle サーバー 19c EE
9
+ - Oracle クライアント 19.3
9
10
  - サーバーとクライアントOSはWindows10
10
11
  -
11
12
 

8

タグ変更

2023/07/29 13:42

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
File without changes

7

追記

2023/07/29 12:54

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -85,6 +85,12 @@
85
85
  また、bat実行時先頭行に
86
86
  環境変数NLS_LANG=Japanese_Japan.UTF8 が定義されていませんと記載されていることに先ほど気が付きました。
87
87
 
88
+ 6,
89
+ Oracleの文字コードを
90
+ SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
91
+ で確認したら
92
+ AL32UTF8
93
+ でした。
88
94
 
89
95
  アドバイスを頂けないでしょうか?
90
96
  また、質問の仕方自体に悪い点がある場合もご指摘いただければ助かります(ここで質問するのは初めてなのです)。

6

2023/07/29 12:43

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  - Insertされた文字列が文字化けしてしまう現象の解消。
4
4
  - bat実行画面は文字化けしていません。
5
+
6
+ ### 環境
7
+
8
+ - データベースはOracleDB
9
+ - サーバーとクライアントOSはWindows10
10
+ -
5
11
 
6
12
  ### 前提
7
13
  batファイルでsqlファイルを実行し、テーブル作成・データ追加を行おうとしています。

5

誤字修正

2023/07/29 12:24

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -77,7 +77,7 @@
77
77
  =>
78
78
  bat実行時の出力も文字化けしなかったが、Insertされた日本語文字列は文字化けしていました。
79
79
  また、bat実行時先頭行に
80
- 環境変数NLS_LANG=Japanese_Japan.UTF8と記載されていることに先ほど気が付きました。
80
+ 環境変数NLS_LANG=Japanese_Japan.UTF8 が定義されていませんと記載されていることに先ほど気が付きました。
81
81
 
82
82
 
83
83
  アドバイスを頂けないでしょうか?

4

@REM chcp 65001とコメントアウトしました。

2023/07/29 12:22

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
  4,
65
65
  set NLS_LANG=Japanese_Japan.UTF8
66
66
  をCreateDB.batに追記しました。
67
- =>bat実行時の出力("行を一行追加しました"など)は文字化けしないようになりました。Insertされた文字列文字化けしています。
67
+ =>bat実行時の出力("行を一行追加しました"など)は文字化けしInsertされた文字列文字化けしています。
68
68
 
69
69
  5,
70
70
  CreateDB.batの
@@ -74,7 +74,11 @@
74
74
  @REM chcp 65001
75
75
  set NLS_LANG=Japanese_Japan.UTF8
76
76
  に変更しました。
77
+ =>
77
- =>bat実行時の出力も文字化けし、Insertされた日本語文字列文字化けしていました。
78
+ bat実行時の出力も文字化けしなかったが、Insertされた日本語文字列文字化けしていました。
79
+ また、bat実行時先頭行に
80
+ 環境変数NLS_LANG=Japanese_Japan.UTF8と記載されていることに先ほど気が付きました。
81
+
78
82
 
79
83
  アドバイスを頂けないでしょうか?
80
84
  また、質問の仕方自体に悪い点がある場合もご指摘いただければ助かります(ここで質問するのは初めてなのです)。

3

chcmを追記した時の挙動を追加。

2023/07/29 12:13

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -66,6 +66,15 @@
66
66
  をCreateDB.batに追記しました。
67
67
  =>bat実行時の出力("行を一行追加しました"など)は文字化けしないようになりました。Insertされた文字列は文字化けしています。
68
68
 
69
+ 5,
70
+ CreateDB.batの
71
+ chcp 65001
72
+ set NLS_LANG=Japanese_Japan.UTF8
73
+
74
+ @REM chcp 65001
75
+ set NLS_LANG=Japanese_Japan.UTF8
76
+ に変更しました。
77
+ =>bat実行時の出力も文字化けし、Insertされた日本語文字列も文字化けしていました。
69
78
 
70
79
  アドバイスを頂けないでしょうか?
71
80
  また、質問の仕方自体に悪い点がある場合もご指摘いただければ助かります(ここで質問するのは初めてなのです)。

2

set NLS_LANG=Japanese_Japan.UTF8の挿入前後について追記しました。

2023/07/29 12:08

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 実現したいこと
2
2
 
3
+ - Insertされた文字列が文字化けしてしまう現象の解消。
3
- - 文字化けの解消
4
+ - bat実行画面は文字化けしていません
4
5
 
5
6
  ### 前提
6
7
  batファイルでsqlファイルを実行し、テーブル作成・データ追加を行おうとしています。
@@ -11,6 +12,7 @@
11
12
  ```CreateDB.bat
12
13
  @echo off
13
14
  chcp 65001
15
+ set NLS_LANG=Japanese_Japan.UTF8
14
16
 
15
17
  cd /d %~dp0
16
18
  @REM Execute SQL
@@ -59,5 +61,11 @@
59
61
  これが文字化けするのなら、Oracle自体の設定ミスかと思いますので。
60
62
  =>コミットは成功し、日本語英語ともに正常にInsertできました。
61
63
 
64
+ 4,
65
+ set NLS_LANG=Japanese_Japan.UTF8
66
+ をCreateDB.batに追記しました。
67
+ =>bat実行時の出力("行を一行追加しました"など)は文字化けしないようになりました。Insertされた文字列は文字化けしています。
68
+
69
+
62
70
  アドバイスを頂けないでしょうか?
63
71
  また、質問の仕方自体に悪い点がある場合もご指摘いただければ助かります(ここで質問するのは初めてなのです)。

1

bashと書いているところをbatと書き直しました。

2023/07/29 11:50

投稿

fugusuki2202
fugusuki2202

スコア16

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
  ### 試したこと
45
45
 
46
46
  1,
47
- bash, sql各ファイルがどの文字コードで書かれているか確認しました。
47
+ bat, sql各ファイルがどの文字コードで書かれているか確認しました。
48
48
  =>UTF-8でした。
49
49
 
50
50
  2,
@@ -54,7 +54,7 @@
54
54
  =>文字化けすることに変わりはなかったが、文面は変わりました。
55
55
 
56
56
  3,
57
- bashかsqlplusかそれ以外か、どの部分が原因なのかわからなかったので、
57
+ batかsqlplusかそれ以外か、どの部分が原因なのかわからなかったので、
58
58
  切り分けを目的としてSQL DeveloperからInsertしました。
59
59
  これが文字化けするのなら、Oracle自体の設定ミスかと思いますので。
60
60
  =>コミットは成功し、日本語英語ともに正常にInsertできました。