Bug #723
closed
Erreur de mise à jour de la base v5.1 vers 5.2 sous Oracle
100%
Description
DBBuilder ne serait-il pas testé sous Oracle ? ;-)
D'emblée, nous obtenons ceci :
CREATE TABLE SC_FormsOnline_Forms
(
id int NOT NULL,
xmlFormName varchar(80) NOT NULL,
name varchar(80) NOT NULL,
description varchar(200),
creationDate date NOT NULL,
state int NOT NULL,
instanceId varchar(80) NOT NULL,
alreadyUsed smallint NOT NULL DEFAULT 0,
creatorId varchar(20) NOT NULL,
title varchar(200) NOT NULL DEFAULT ''
)
/home/silver/SilverpeasV5/dbRepository/oracle/formsOnline/001/create_table.sql
at com.silverpeas.dbbuilder.DBBuilderPiece.executeSingleUpdate(DBBuilderPiece.java:247)
at com.silverpeas.dbbuilder.DBBuilderPiece.executeInstructions(DBBuilderPiece.java:177)
at com.silverpeas.dbbuilder.DBBuilder.processSQLFiles(DBBuilder.java:770)
at com.silverpeas.dbbuilder.DBBuilder.processDB(DBBuilder.java:630)
at com.silverpeas.dbbuilder.DBBuilder.main(DBBuilder.java:345)
Caused by: java.sql.SQLException: ORA-00907: parenthèse de droite absente
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:891)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at com.silverpeas.dbbuilder.DBBuilderPiece.executeSingleUpdate(DBBuilderPiece.java:244)
... 4 more
....
***ERROR RETURNED BY THE RDBMS : ORA-00907: parenthèse de droite absente
***STATEMENT ON ERROR IS :
CREATE TABLE SC_FormsOnline_Forms
(
id int NOT NULL,
xmlFormName varchar(80) NOT NULL,
name varchar(80) NOT NULL,
description varchar(200),
creationDate date NOT NULL,
state int NOT NULL,
instanceId varchar(80) NOT NULL,
alreadyUsed smallint NOT NULL DEFAULT 0,
creatorId varchar(20) NOT NULL,
title varchar(200) NOT NULL DEFAULT ''
)
/home/silver/SilverpeasV5/dbRepository/oracle/formsOnline/001/create_table.sql
Updated by Anonymous over 14 years ago
L'erreur provient du fait que les clauses DEFAULT et NOT NULL sont interverties. Par exemple :
alreadyUsed smallint DEFAULT 0 NOT NULL,
title varchar(200) DEFAULT '' NOT NULL
Par ailleurs, une autre erreur intervient dans les contraintes: il ne faut pas oublier qu'Oracle limite le nom de chaque objet à 30 caractères et pas un de plus !!
***ERROR RETURNED BY THE RDBMS : ORA-00972: l'identificateur est trop long
***STATEMENT ON ERROR IS :
ALTER TABLE SC_FormsOnline_FormInstances ADD
CONSTRAINT PK_SC_FormsOnline_FormInstances PRIMARY KEY
(
id
)
/home/silver/SilverpeasV5/dbRepository/oracle/formsOnline/001/create_constraint.sql
at com.silverpeas.dbbuilder.DBBuilderPiece.executeSingleUpdate(DBBuilderPiece.java:247)
at com.silverpeas.dbbuilder.DBBuilderPiece.executeInstructions(DBBuilderPiece.java:177)
at com.silverpeas.dbbuilder.DBBuilder.processSQLFiles(DBBuilder.java:770)
at com.silverpeas.dbbuilder.DBBuilder.processDB(DBBuilder.java:630)
at com.silverpeas.dbbuilder.DBBuilder.main(DBBuilder.java:345)
Caused by: java.sql.SQLException: ORA-00972: l'identificateur est trop long
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:891)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at com.silverpeas.dbbuilder.DBBuilderPiece.executeSingleUpdate(DBBuilderPiece.java:244)
... 4 more
....
***ERROR RETURNED BY THE RDBMS : ORA-00972: l'identificateur est trop long
***STATEMENT ON ERROR IS :
ALTER TABLE SC_FormsOnline_FormInstances ADD
CONSTRAINT PK_SC_FormsOnline_FormInstances PRIMARY KEY
(
id
)
/home/silver/SilverpeasV5/dbRepository/oracle/formsOnline/001/create_constraint.sql
Updated by Emmanuel Hugonnet over 14 years ago
- Project changed from 9 to FormsOnline
Updated by Anonymous over 14 years ago
- Status changed from New to Closed
- Assignee set to David Lesimple
- Target version set to Version 5.2.1
- % Done changed from 0 to 100