尝试使用java在oracle 10g数据库上执行SQL查询但是出现ORA-00911错误

时间:2013-04-20 23:57:52

标签: java oracle oracle10g ora-00911

我正在尝试使用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

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

2 个答案:

答案 0 :(得分:0)

没关系。我在这里张贴了枪!在java中执行查询时,我不认为将分号放在语句的末尾。我曾尝试不将分号放在最后,它运行没有错误,但我认为我检查了我的数据库,发现没有创建表。我现在已经证实放下分号已经奏效了!

答案 1 :(得分:0)

您最后不需要添加分号。你可以尝试运行该程序而不在那里吗?