Bonjour,

J'ai une table tout simple (fonctions_generiques) avec quelques champs, dont un champs IDFG en NUMBER de précision 5, qui est l'ID de chaque ligne en clé primaire de la table.
Je voudrais en faire un auto increment comme sur MySQL.

Après avoir faire quelques recherches j'ai donc utilisé une séquence et un trigger qui sont :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CREATE SEQUENCE sequencefg
START WITH 1
INCREMENT BY 1;
et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE OR REPLACE TRIGGER incrementfg
BEFORE INSERT ON fonctions_generiques
FOR EACH ROW
BEGIN
    SELECT sequencefg.nextval INTO :NEW.idfg FROM dual;
END;
Et voici ma requête d'insertion (en PHP grâce à PDO) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$req = $bdd->prepare('INSERT INTO FONCTIONS_GENERIQUES VALUES(\'\', :code_fonction, :code_contrat, :code_generique, :quantite, :frequence,
                                 :datedeb, :datefin, :identifiant, :date_modif)');
 
            $req->execute(array('code_fonction' => $_POST['code_fonction'],
                                'code_contrat' => $_POST['code_contrat'],
                                'code_generique' => $_POST['code_generique'],
                                'quantite' => $_POST['quantite'],
                                'frequence' => $_POST['frequence'],
                                'datedeb' => timestamp($_POST['datedeb']),
                                'datefin' => timestamp($_POST['datefin']),
                                'identifiant' => $_SESSION['user']['identifiant'],
                                'date_modif' => time()
                                )) or die(print_r($bdd->errorInfo()));
Que je mette le champs idfg vide ('') ou sequencefg.nextval, j'ai cette erreur qui apparait :
Array ( [0] => HY000 [1] => 1722 [2] => OCIStmtExecute: ORA-01722: Nombre non valide (ext\pdo_oci\oci_statement.c:146) ) 1
Et si je ne mentionne rien devant :code_fonction en ignorant l'id, comme le montrent certains exemples, il m'affiche une erreur du même style : nombre de paramètres insuffisants (ou quelques comme comme ça).

Sauriez-vous d'où peut venir ce problème ?