Bonjour,
Alors j'ai étais voir dans le tuto execute immediate, j'ai fais ce qui était demandé main en vain j'ai une erreur à la ligne 22 l'erreur doit être toute bête mais je n'arrive pas a la corrigée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ORA-00922: option erronée ou absente ORA-06512: à "O2.AUGMENTATION", ligne 22 ORA-06512: à ligne 6 08 09Un peu d'aide me ferait le plus grand bien, merci d'avance !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 create or replace PROCEDURE Augmentation (BEX IN VARCHAR2) AS YEARS VARCHAR2(4); YEARSTMP VARCHAR2(4); NUM VARCHAR2(8); TMP VARCHAR2(8); RES VARCHAR2(13); SIZ NUMBER; CAL NUMBER; RQTSQ VARCHAR2(255); BEGIN SELECT ANNEE INTO YEARSTMP FROM ANNEE WHERE PK_ANNEE = 1; SELECT TO_CHAR(SYSDATE, 'YY') INTO YEARS FROM DUAL; DBMS_OUTPUT.PUT_LINE(YEARSTMP); DBMS_OUTPUT.PUT_LINE(YEARS); IF YEARSTMP != YEARS THEN RQTSQ := 'CREATE OR REPLACE SEQUENCE NUMERO_SEQUENTIEL_O2 START WITH 1 MAXVALUE 99999999 MINVALUE 1'; EXECUTE IMMEDIATE RQTSQ ; DBMS_OUTPUT.PUT_LINE('NOUVELLE SEQUENCE'); END IF; SELECT NUMERO_SEQUENTIEL_O2.NEXTVAL INTO TMP FROM DUAL; SIZ := length(TMP); CAL := 8 - SIZ; FOR i IN 1..CAL LOOP NUM := NUM || '0'; END LOOP; NUM := NUM || TMP; RES := BEX || YEARS || NUM ; DBMS_OUTPUT.PUT_LINE(RES); END;
bye
Partager