電子書籍の厳選無料作品が豊富!

Oracle内のデータを更新しようとしていますが
ORA-00904というエラーが表示されます。
調べていると列名は「”」で囲ってはいけないと
書かれていたので、それでいろいろ試行錯誤してみたのですが
エラーがなくなりません。

「SYAIN1」と「SYAIN2」は変数になっています。
このSQL文が機能するように、アドバイス頂けるとうれしいです。

int row_count = smt.executeUpdate(Update SYAIN_MASTER set SYAIN_NAME = SYAIN2 where SYAIN_ID SYAIN1);

A 回答 (1件)

DBのカラム型も書いてください。


あと、where句の条件はカンで適当に書いてます。

smt.executeUpdate("Update SYAIN_MASTER set SYAIN_NAME = '" + SYAIN2 + "'" + " where SYAIN_ID = '" + SYAIN1 + "'");

もちっとJavaとSQLの勉強しましょう。(数値型なら''でくくる必要ないですが、文字型だと'でくくる必要があります)

あと、初心者っぽいので今のところ問題ないけど、業務アプリ開発するならばこの記述方法はNG、詳細は「SQLインジェクション」とか調べてください。
    • good
    • 0
この回答へのお礼

おっしゃる通り初心者です(^^;)
まだプログラムというものを始めたばかりです。

答えてくださってありがとうございました。
SQLまだまだ使うと思うので、SQLインジェクションについて勉強しようと思います。

お礼日時:2009/03/03 11:25

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