ORA-01861 : le littéral ne correspond pas à la chaîne de format
Dans SQL, l'erreur "ORA-01861 : le littéral ne correspond pas à la chaîne de format " se produit lors de l'insertion d'une valeur de données dans une table et le format du littéral ne correspond pas à la chaîne de format spécifiée. Cette erreur se produit souvent lorsque vous tentez d'insérer une valeur de date dans un format spécifique.
Considérez l'instruction INSERT suivante :
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', '1989-12-09', 'M', 02086950291, 07498635200);
Dans cette instruction, la colonne DOB est définie comme une date. Cependant, le format littéral « 1989-12-09 » n'est pas reconnu pour les dates SQL. Pour résoudre ce problème, utilisez la fonction TO_DATE() pour convertir la chaîne littérale dans le format correct :
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', TO_DATE('1989-12-09', 'YYYY-MM-DD'), 'M', 02086950291, 07498635200);
En spécifiant la chaîne de format 'AAAA-MM-JJ', SQL reconnaît le littéral '1989- 12-09' comme date au format année-mois-jour et l'insère avec succès dans la colonne DOB.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!