查询ORACLE DB上的错误

时间:2014-04-28 09:05:29

标签: java sql oracle oracle10g

我正在使用oracle 10g,我写了一个像这样的创建表查询 -

String UserTable="CREATE TABLE UserDetail ( \n" +
               "        idNo INT(64) NOT NULL , \n" +
               "        name VARCHAR(50),\n" +
               "        email VARCHAR(50),  \n" +
               "        state VARCHAR(50),\n"+
               "       country VARCHAR(50),\n" +                    
               "        CONSTRAINT person_pk PRIMARY KEY ('idNo')"
                   + ");";


          // Connection con2=DriverManager.getConnection(DbAddress,"vivek","123456");
           PreparedStatement st2=conn.prepareStatement(UserTable);
           st2.executeUpdate();
           conn.close();

但它提供以下异常 -

java.sql.SQLSyntaxErrorException: ORA-00907: missing right parenthesis

在syssout上,查询变成了这个 -

CREATE TABLE UserDetail ( 
    idNo INT(64) NOT NULL , 
    name VARCHAR(50),
    email VARCHAR(50),  
    state VARCHAR(50),
   country VARCHAR(50),
   CONSTRAINT person_pk PRIMARY KEY (idNo)

);

请帮忙。

2 个答案:

答案 0 :(得分:0)

删除以下行

 CONSTRAINT person_pk PRIMARY KEY ('idNo')

请在代码中使用以下行

 CONSTRAINT person_pk PRIMARY KEY (idNo)

答案 1 :(得分:0)

哦,我得到了解决方案 - 我使用的是Int而不是Number而且它不受支持。查询应该是 -

"CREATE TABLE UserDetail ( \n" +
           "        idNo NUMBER NOT NULL , \n" +
           "        name VARCHAR(50),\n" +
           "        email VARCHAR(50),  \n" +
           "        state VARCHAR(50),\n"+
           "       country VARCHAR(50),\n" +                    
           "        CONSTRAINT person_pk PRIMARY KEY ('idNo')"
               + ");";