ora-00972-Bezeichner ist zu lang, oracle 10g
Bin ich immer den Fehler im Titel genannten.
Ich bin mit einem 36 charecter ID. Dieser Fehler wird nur ausgelöst, In meinem sqldatasource in meinem asp.net webform.
Es ist nicht ein problem, wenn ich updates in Oracle sql developer
.
Wie kann ich dieses Problem beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oracle unterstützt ein Bezeichner mit höchstens 30 Zeichen und Ihre Bezeichner Länge
36
ist größer als die.so machen es 30 Zeichen lang sein.sehen diese link
Wenn Sie erfolgreich ausführen von DML (UPDATE tableName SET ...) aus einem anderen Umfeld wie SQL-Developer, dann Ihr asp.net code muss das irgendwie angeben oder konstruieren Sie den Namen der Tabelle oder Spalte name der Tabelle falsch. Oracle löst diese Ausnahme aus, wenn es analysiert, die entweder als >30 Charaktere vor allen anderen Prüfungen.
Als Srinivas darauf hingewiesen, daß die maximale Länge ist 30, also 36 Zeichen-id können nicht aus SQL-Entwickler können Sie nach der Anweisung, die "arbeiten" im SQL Developer?
Ist Ihre SQL-Entwickler, der konfiguriert ist, um ein multi-byte Zeichensatz? Wilde Vermutung, zumal ich erwarten würde, dass zu werfen
ORA-12899: value too large for column
anstatt ORA-00972.Ah, ich sehe - es ist nicht so, dass Spalte name, ist 36 Zeichen lang ist, ist es die eigentlichen Daten. Froh, dass wir geklärt, dass man bis.
Als zu "warum ist das passiert aus einem ASP.NET SqlDataSource", ich vermute, dass irgendwo entlang der Linie es ein problem der Konvertierung zwischen ASCII und Unicode. NVARCHAR2 ist Unicode, aber ich habe den Verdacht, dass etwas nicht spielt schön in die Unicode-Welt. Überprüfen Sie web server, clients, Datenbank, alles, was man sich denken kann - ich vermute, Sie werden feststellen, dass irgendwo entlang der Linie es gibt einen ASCII-client gibt, sprechen nicht mit Unicode korrekt, und ist immer gemischt wegen der Länge ein Unicode-string (32 Unicode-Zeichen nehmen bis 64 bytes (vorausgesetzt, UTF-16)).
Glück.