2013-02-20 68 views
1

如何创建用户定义的表(表名是一个字符串)的Oracle用java如何用java

String Tablename="student"; 
stmt=con.prepareStatement("create table"+Tablename+"(name varchar(12),class varchar(12))"); 
stmt.executeUpdate(); 

与出字符串即用户创建用户定义的表(表名是一个字符串)在Oracle定义的表的名称,它工作正常:

stmt=con.prepareStatement("create table student (name varchar(12),class varchar(12))"); 

但上面列出的版本,这需要字符串作为用户名显示以下错误

java.sql.SQLException: ORA-00901: invalid CREATE command 

回答

3

请在表名前后留出空格。

你原来的代码导致该SQL命令得到执行:

create tableMyTablename(name varchar(12),class varchar(12)) 

而且在于,在tableMyTablename不是理解为DB ...

正确:

stmt=con.prepareStatement("create table "+Tablename+" (name varchar(12),class varchar(12))"); 

另外还有一些注意事项:

  • Java命名:变量名开始小写字母
  • 本(准备语句)并没有真正意义。拥有只能为表创建相同结构的语句是不可重复使用的。
  • 明智的做法是避免+连接字符串和其他对象的字符串表示...它可能会有非常意想不到的结果,甚至编译错误...
  • 日志记录:在这种情况下,始终明智的做法是记录创建的SQL命令。即使是(呸!)System.out.println();是聊胜于无...
2

将一个空格后 “创建表”,即

"create table " 

你的发言被评价为创造tablestudent ...