1
これはなぜ機能しないのでしょうか?oracleに行を挿入する際に問題が発生する
表の名前は、TEST_COLUMN
というプライマリキーの列が1つのみ、TESTTABLE
です。私はそれが何かばかだと確信していますが、私は尋ねると思った。 私はすでにデータベースに接続されていますので、私はそのコード
Statement statement = connection.createStatement();
String test = "test";
statement.executeUpdate("INSERT INTO TESTTABLE (TEST_COLUMN) VALUES (" + test + ")");
を提供する心配はありませんでした私はそうしようと、それはvarchar型の列であると仮定しています
ORA-00984: column not allowed here
私はすでに何が違いますか? – auwall
一重引用符は間違いなく頭の問題を釘付けにしました。 @auwall SQLインジェクションを避けるには、['PreparedStatement's(http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html)を参照してください。 – pickypg
@auwall:Oracleの文字データ定数は、単一引用符で囲む必要があります。これは、この文でOracleに指定するものです。一般に、Oracleでこのように動的文を作成することは、@ pickypgの状態とパフォーマンスの問題の両方の理由から、悪い考えです。可能であれば、バインド変数を使用する必要があります。 – DCookie