Sql CREATE TABLE语句中缺少右括号

Sql CREATE TABLE语句中缺少右括号,sql,oracle,ddl,Sql,Oracle,Ddl,我试图使用JDBC在Oracle DB中创建一个表,但在下面的语句中出现了“缺少右括号”错误。我查过谷歌和我的参考书,语法是正确的 stmt.executeQuery("create table Employee("+ "Name varchar2(20),"+ "EmpId integer(2),"+ "EmpDesignation varchar2(20),"+ "EmpResidence varchar2(20))"); 您的问题是您使用的是INTEGER。您应该

我试图使用JDBC在Oracle DB中创建一个表,但在下面的语句中出现了“缺少右括号”错误。我查过谷歌和我的参考书,语法是正确的

stmt.executeQuery("create table Employee("+
   "Name varchar2(20),"+
   "EmpId integer(2),"+
   "EmpDesignation varchar2(20),"+
   "EmpResidence varchar2(20))");

您的问题是您使用的是
INTEGER
。您应该使用
编号

stmt.executeQuery("create table Employee(Name varchar2(20),EmpId number(2),EmpDesignation varchar2(20),EmpResidence varchar2(20))");
如果只想使用
整数
,请删除长度,请参见以下代码:

stmt.executeQuery("create table Employee(Name varchar2(20),EmpId integer ,EmpDesignation varchar2(20),EmpResidence varchar2(20))");

您不能为
整数
添加长度:

stmt.executeQuery("create table Employee(Name varchar2(20),EmpId integer ,EmpDesignation varchar2(20),EmpResidence varchar2(20))");

你有没有试过用queryBrowser直接运行查询?啊,那些Oracle错误消息,它们总是晦涩难懂…@ManuelJain没有,我还没有试过。。但是我的问题解决了。@Tejvir:如果你的问题解决了,那么接受Jens的回答。“我在谷歌上和我的参考书上都查过了”——显然你查错了书。因为Oracle手册没有记录这种语法:非常感谢您,我已经尝试了您的建议,而且效果很好。。我也尝试过@SumitSingh建议,这也很有效。@Tejvir如果答案解决了您的问题,请随意接受。如果Tejvir来自MySQL:
number(2)
与MySQL的
integer(2)
不一样。Oracle的
number(2)
将有效地将值的范围限制在最大99,而MySQL的
integer(2)
只是提示客户端应用程序应该显示多少位数。它将愉快地存储远大于99@Tejvir如果您的问题得到解决,您可以接受任何答案: