Voici la requête que j'essaie d'exécuter.
CREATE SEQUENCE "GARY"."TABL_PROD_DWH_SEQ" MINVALUE 1 MAXVALUE 99999999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE NOPARTITION;
Erreur de démarrage à la ligne: 1 dans la commande -
CRÉER LA SÉQUENCE "GARY". "TABL_PROD_DWH_SEQ" MINVALUE 1 MAXVALUE 99999999999999999999999999999999 AUGMENTATION DE 1 COMMENCE PAR 21 NOPARTITION NOCYCLE CACHE 20 NOORDER;
Rapport d'erreur - Erreur SQL: ORA-00933: la commande SQL ne s'est pas correctement terminée 00933. 00000 - "La commande SQL ne s'est pas correctement terminée" 'Cause: 'Action:
3 Réponses :
Quelle version d'Oracle utilisez-vous? NOPARTITION
ne sonne pas une cloche. Il se peut qu'il ne soit disponible que sur les versions plus récentes.
Vous pouvez également utiliser NOMAXVALUE
. Cela semble plus intuitif que votre valeur arbitraire.
Veuillez consulter la question / réponse suivante: Oracle 12.2 - Remplacement de la fonctionnalité NOPARTITION
Votre problème est NOPARTITION.
Il s'agit d'une fonctionnalité non prise en charge non documentée après une version d'Oracle (je pense 12).
Voir également: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9523071800346490539
http://sqlfiddle.com/#!4/1afa88 (Oracle 11g R2)
Ce qui suit fonctionne:
CREATE SEQUENCE "TABL_PROD_DWH_SEQ" MINVALUE 1 MAXVALUE 99999999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
On vous a déjà dit la plupart des choses. Permettez-moi d'ajouter quelques mots.
Votre problème ressemble à celui qui se produit lorsque les gens utilisent des paramètres qu'ils ne comprennent pas tout à fait. Je m'excuse si j'ai l'air impoli , mais - c'est mon impression. Pourquoi? À cause de l'apparence de cette déclaration CREATE SEQUENCE
.
Aucune personne vivante que je connais ne l'a jamais écrite manuellement
MAXVALUE
(diable, c'est indéfini de toute façon), 1
, 20
par défaut) À part commencer par
, tout le reste est de toute façon par défaut donc vous auriez pu utiliser
SQL> create sequence tabl_prod_dwh_seq start with 21; Sequence created. SQL> select tabl_prod_dwh_seq.nextval from dual; NEXTVAL ---------- 21 SQL> select tabl_prod_dwh_seq.nextval from dual; NEXTVAL ---------- 22 SQL>
et obtenez le même résultat. Alors ... jetez un œil à la documentation relative à la version de votre base de données , essayez de la suivre, ne faites pas ce qui n'est pas autorisé (ou non documenté), restez aussi simple que possible et vous serez bien.
Les documents Oracle indiquent que la valeur maximale peut avoir 28 chiffres ou moins pour les valeurs positives, mais que vous avez défini 32 chiffres.
@GARY Salut, je pense que vous avez oublié de sélectionner une réponse.