如何使用java创建用户自定义表(表名在字符串中)
String Tablename="student";
stmt=con.prepareStatement("create table"+Tablename+"(name varchar(12),class varchar(12))");
stmt.executeUpdate();
没有字符串,即用户定义的表名,它工作正常:
stmt=con.prepareStatement("create table student (name varchar(12),class varchar(12))");
但是上面列出的以字符串作为用户名的版本显示以下错误
java.sql.SQLException: ORA-00901: invalid CREATE command
最佳答案
请在表名前后留空格。
您的原始代码导致执行此 SQL 命令:
create tableMyTablename(name varchar(12),class varchar(12))
而且,数据库无法理解 tableMyTablename
...
正确:
stmt=con.prepareStatement("create table "+Tablename+" (name varchar(12),class varchar(12))");
还有一些注意事项:
- Java 命名:变量名以小写字母开头
- 这(准备陈述)没有任何意义。有一个语句只能为一个表创建相同的结构是不可重用的。
- 明智的做法是避免使用 + 连接字符串和其他对象的字符串表示...它可能会产生意想不到的结果,甚至编译错误...
- 记录:在这种情况下,记录创建的 SQL 命令总是明智的。即使是 (讨厌!)
System.out.println();
总比没有好...
关于java - 如何使用java在oracle中创建用户定义表(表名在字符串中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979316/