将行插入oracle时出现问题

auw*_*all 1 java oracle insert

知道为什么这不起作用吗?

表的名称TESTTABLE只有一列TEST_COLUMN,它是主键.我确定这是愚蠢的,但我想我会问.我已经连接到数据库,所以我不担心提供该代码

Statement statement = connection.createStatement();
String test = "test";
statement.executeUpdate("INSERT INTO TESTTABLE (TEST_COLUMN) VALUES (" + test + ")");
Run Code Online (Sandbox Code Playgroud)

给了我这个错误

ORA-00984: column not allowed here
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 5

我假设这是一个varchar列,所以尝试:

statement.executeUpdate("INSERT INTO TESTTABLE (TEST_COLUMN) VALUES ('" + test + "')");
Run Code Online (Sandbox Code Playgroud)

请注意数据周围的单引号.

  • 单引号肯定会把问题钉在头上.@auwall你应该考虑使用[`PreparedStatement`s](http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html)来帮助避免SQL注入. (2认同)