0

我正在尝试使用 java 在 oracle10g 数据库上执行一个简单的 CREATE TABLE 查询。这就是我正在做的事情:

Connection conn = //create connection
//open connection.  No errors/warnings are generated so I assume this succeeds 
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("CREATE TABLE t1 (c1 INTEGER NOT NULL, c2 VARCHAR(100), c3 INTEGER NULL, CONSTRAINT m_pk PRIMARY KEY (c1));");
...
//close connection.  No errors again so I assume it succeeds.

当我直接在命令行上执行命令(复制并粘贴到终端窗口)时,它成功了。当我运行上面的java代码时,这是我得到的错误:

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character

我不明白我怎么会有一个无效的字符,因为将它复制并粘贴到终端工作得很好。如果我去掉“;” 在查询结束时,一切都运行没有任何错误,但没有按预期创建表。我已经尝试了上述查询的许多变体,但似乎没有任何效果。只是做“CREATE TABLE t1;” 什么都不做,做“CREATE TABLE t1 (c1 INTEGER);” 也不做任何事情。

4

2 回答 2

0

没关系。我在这里发帖时大吃一惊!在 java 中执行查询时,我不认为将分号放在语句的末尾。我试过不把分号放在最后,它运行没有错误,但我以为我检查了我的数据库,发现没有创建表。我现在已经确认删除分号是有效的!

于 2013-04-21T00:18:21.953 回答
0

您不需要在末尾添加分号。您可以尝试在没有它的情况下运行该程序吗?

于 2013-04-21T00:19:48.753 回答