J'ai créé une table comme suit: J'ai la colonne mais je reçois une erreur: p> erreur à la ligne 1 Quel pourrait être le meilleur type de données pour ces longs texte à Oracle? P> P> notes code> qui a plus de 100 caractères.so, j'ai essayé est: p> < Pré> xxx pré>
Ora-01861: littéral ne correspond pas à la chaîne de format p>
blockQuote>
4 Réponses :
Datation de naissance code> est une date, pas une varachar, vous devez donc la convertir:
to_date('1968-12-08', 'yyyy-mm-dd')
Après avoir changé la date à TO_Date, j'ai eu cette erreur :: ora-12899: valeur trop grande pour la colonne "Shop". "Employés". "Notes" (réel: 165, maximum: 100)
@ KarkiaShwin Error est assez clair, vous essayez d'insérer 165 caractères, tandis que la définition est jusqu'à 100
Évidemment, vous ne pouvez pas vous attendre à mettre quelque chose aussi long que 300 caractères dans quelque chose qui accepte 100 caractères, pouvez-vous?
Mais ce n'est pas votre problème. La date est. La 4ème colonne est OH, oui - retour à votre question initiale (bien que la mauvaise question dans ce contexte ): meilleur type de données pour un texte long em>. Vous pouvez créer une colonne dont le type de données est Enfin, votre requête: P> Date de naissance Code>, son type de données est
date code>, mais vous insérez une chaîne
'1968-12- 08 ' code> est strong> une chaîne. Vous auriez dû utiliser une date littéral, c'est-à-dire
date '1968-12-08' code>. P>
varchar2 (4000) code> et il accepte de manière heureuse que la chaîne "longue" utilisée. Ou, vous pouvez même choisir un
clob code> qui accepte jusqu'à 4 giga de caractères; Plus que suffisant pour vous, je présume. P>
SQL> INSERT INTO employees
2 (EmployeeID, LastName, FirstName, BirthDate, Photo, Notes)
3 VALUES
4 (1, 'Davolio', 'Nancy', date '1968-12-08', 'EmpID1.pic',
5 substr('Education includes a BA in psychology from Colorado State University. She also completed (The Art of the Cold Call). Nancy is a member
of Toastmasters International.', 1, 100))
6 ;
1 row created.
SQL>
La conversion de la chaîne en date est nécessaire dans chaque fois que les dates sont utilisées. P>
Il y a deux façons de convertir votre chaîne à la date. P>
acclamations !! p> 1968-12-08 code> est une chaîne et vous devez insérer la date dans votre table. P>
date '1968-12-08' CODE> LI>
to_date ('1968-12-08', 'yyyy-mm-dd') code> li>
ol>
Après avoir changé la date à TO_Date, j'ai eu cette erreur :: ora-12899: valeur trop grande pour la colonne "Shop". "Employés". "Notes" (réel: 165, maximum: 100)
@KarkiaShwin Votre colonne Notes n'est que de 100 octets et vous essayez d'insérer 165 caractères. Réduisez la taille des notes à 100 caractères. Voir des réponses ci-dessous.
@Karkiashwin Je dirais que je dirais que je dirais que "ora-12899: valeur trop grande pour la colonne" i> Erreur est assez explicite. Cela signifie que vous avez fixé le problème avec la date et déplacés sur le prochain numéro.
Dans ce cas, je suggère simplement de créer simplement la colonne code> code> plus grande: dbfiddle ici p> Si vous avez besoin de quelque chose de plus grand que celui-ci, vous pouvez utiliser le type de données p > p>