【发布时间】:2016-02-07 12:28:05
【问题描述】:
我正在尝试在 JSP 页面中创建插入查询,如下所示
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
try
{
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:" + "XE", "hr","hr");
if (connection != null)
{
statement = connection.createStatement();
String q2 = "INSERT INTO HR.tweets (";
q2 = q2 + "DATE_TIME,USER_NAME,TWEET_BEFORE,TWEET_AFTER)";
q2 = q2 + "VALUES (";
q2 = q2 + "(select SYSDATE from dual),";
q2 = q2 + "'" + tweet.getUser().getScreenName() + "'" + ",";
q2 = q2 + "'" + tweet.getText() + "'" +",";
q2 = q2 + "'" + finalstring + "')";
statement.execute(q2);
statement.close();
connection.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
在statement.execute(q2) 我收到ORA-00917: missing comma error。
以下查询是在代码中创建的:
INSERT INTO HR.tweets (DATE_TIME,USER_NAME,TWEET_BEFORE,TWEET_AFTER)VALUES ((select SYSDATE from dual),'Dannazxcv','RT @HugotInhinyero: Wish we could turn back time to the good old days. When our mama sings us to sleep but now we're stressed out.????????
#engin…','hugotinhinyero turn back time good days. mama sing sleep we're stress out. engin' )
请帮助我。
【问题讨论】:
-
以下查询是在代码中创建的:INSERT INTO HR.tweets (DATE_TIME,USER_NAME,TWEET_BEFORE,TWEET_AFTER)VALUES ((select SYSDATE from dual),'Dannazxcv','RT @HugotInhinyero: Wish我们可以让时光倒流到过去的美好时光'压力很大。引擎')
-
将这两行改为
q2 = q2 + "SELECT"; q2 = q2 + "SYSDATE,";,并在末尾添加一个 FROM DUAL 参数 -
首先不需要
select。只需在 values 子句中使用sysdate。但你应该真的使用PreparedStatement