アプリ版:「スタンプのみでお礼する」機能のリリースについて

JAVAの初心者です。
Eclipse、フレームワーク:Springを使って開発しています。

JDBCを使ってSQLSeverのテーブル(テーブル名、列名共に日本語)にInsertする際、
下記のエラーが出て悩んでいます。

com.microsoft.sqlserver.jdbc.SQLServerException: 列名 '工場特性少数01' が無効です。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement

(SQLServerPreparedStatement.java:390)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute

(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:308)
at dao.SykListDAO.insert(SykListDAO.java:655)

***以下省略***


SQLにInsertする部分のソースは、下記のとおりです。

sql = "INSERT INTO \"出荷一覧表_照合用\" (";
sql = sql + "\"照合結果\", ";
sql = sql + "\"部品名_照合用\", ";

***途中省略***
sql = sql + "\"工場特性文字10\", ";
sql = sql + "\"工場特性少数01\", ";
sql = sql + "\"工場特性少数02\", ";
sql = sql + "\"工場特性少数03\", ";
sql = sql + "\"工場特性少数04\", ";
sql = sql + "\"工場特性少数05\", ";
sql = sql + "\"工場特性少数06\", ";
sql = sql + "\"工場特性少数07\", ";
sql = sql + "\"工場特性少数08\", ";
sql = sql + "\"工場特性少数09\", ";
sql = sql + "\"工場特性少数10\", ";

***途中省略***

sql = sql + ") VALUES(";
sql = sql + "?, ";
sql = sql + "?, ";
sql = sql + "?, ";

***途中省略

sql = sql + "?, ";
sql = sql + "?, ";
sql = sql + "?, ";
sql = sql + "?)";

// 実行するSQL文とパラメータを指定する
pStmt = con.prepareStatement(sql);
pStmt.setString(1, SykList.get照合結果());
pStmt.setString(2, SykList.get部品名_照合用());
***途中省略***

pStmt.setString(52, SykList.get工場特性文字10());
pStmt.setString(53, SykList.get工場特性少数01());
pStmt.setString(54, SykList.get工場特性少数02());
pStmt.setString(55, SykList.get工場特性少数03());
pStmt.setString(56, SykList.get工場特性少数04());
pStmt.setString(57, SykList.get工場特性少数05());
pStmt.setString(58, SykList.get工場特性少数06());
pStmt.setString(59, SykList.get工場特性少数07());
pStmt.setString(60, SykList.get工場特性少数08());
pStmt.setString(61, SykList.get工場特性少数09());
pStmt.setString(62, SykList.get工場特性少数10());

***途中省略***

pStmt.setString(88, SykList.getタイプロット());

System.out.println("★sql:" + sql);

i = pStmt.executeUpdate();

// コミット
con.commit();

日本語のテーブルなので、前後に \" と "を付けてみたり(最初はつけていませんでしたが)しましたが、なぜか列名 '工場特性少

数01' でエラーになります。

確かにテーブルに該当の列は存在するのですが、
エラーの解決方法をご教授いただけないでしょうか。

A 回答 (1件)

少数、小数 なんて事は無いですよね。

    • good
    • 0
この回答へのお礼

返答ありがとうございました!
おっしゃるとおり、テーブルは「小数」、Insert文は「少数」でした。
初歩的なミスでお恥ずかしく、申し訳ありませんでしたが、助かりました。
ありがとうございました。

お礼日時:2018/08/10 13:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A