java.sql.SQLException:ORA-00904

我得到以下exception –

java.sql.SQLException: ORA-00904: : invalid identifier ORA-06512: at line 1 

以下是我试图执行的查询 –

 public static final String DATABASE_TABLE = "LnPData"; public static final String CREATE_SQL = "DECLARE " + "t_count INTEGER; " + "v_sql VARCHAR2(1000) := 'create table " +DATABASE_TABLE + "(" + "(ID number(10,0), " + "CGUID VARCHAR(255), " + "PGUID VARCHAR(255), " + "SGUID VARCHAR(255), " + "USERID VARCHAR(255), " + "ULOC VARCHAR(255), " + "SLOC VARCHAR(255), " + "PLOC VARCHAR(255), " + "ALOC VARCHAR(255), " + "SITEID VARCHAR(255), " + "PRIMARY KEY ( ID ))'; " + "BEGIN " + "SELECT COUNT(*) " + "INTO t_count " + "FROM user_tables " + "WHERE table_name = '" +DATABASE_TABLE + "'; " + "IF t_count = 0 THEN " + "EXECUTE IMMEDIATE v_sql; " + "END IF; " + "END; "; 

在控制台上,它被打印为 –

 DECLARE t_count INTEGER; v_sql VARCHAR2(1000) := 'create table LnPData((ID number(10,0), CGUID VARCHAR(255), PGUID VARCHAR(255), SGUID VARCHAR(255), USERID VARCHAR(255), ULOC VARCHAR(255), SLOC VARCHAR(255), PLOC VARCHAR(255), ALOC VARCHAR(255), SITEID VARCHAR(255), PRIMARY KEY ( ID ))'; BEGIN SELECT COUNT(*) INTO t_count FROM user_tables WHERE table_name = 'LnPData'; IF t_count = 0 THEN EXECUTE IMMEDIATE v_sql; END IF; END; 

更改

 "v_sql VARCHAR2(1000) := 'create table " +DATABASE_TABLE + "(" + "(ID number(10,0), " + 

 "v_sql VARCHAR2(1000) := 'create table " +DATABASE_TABLE + "(ID number(10,0), " + 

它正在发挥作用。 你只有一个不正确的支架。