Bug #723
fermé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
Mis à jour par Anonyme il y a plus de 14 ans
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
Mis à jour par Anonyme il y a plus de 14 ans
- Statut changé de New à Closed
- Assigné à mis à David Lesimple
- Version cible mis à Version 5.2.1
- % réalisé changé de 0 à 100