Ich nicht ganz folgen, wenn ich eine einfache Einfügung von numerischen Daten in ein Varchar Feld warum tut es links Pad es mit 2 Leerzeichen. Ist nicht Varchar soll Leerzeichen abschneiden (Nachlauf ok ... aber wo ist die Regel, dass Sie "Frontpad" mit Leerzeichen). Warum dann Pad mit 2 führenden LeerzeichenTeradata SQL VARCHAR und Leerzeichen
INSERT INTO v VALUES (,1243444,3455435,8768810,'fdff',5,7,8,,)
Hier (,1243444,3455435,8768810,'fdff',5,7,8,,)
sind (someirrelvant_datatype,varchar(x),varchar(y),varchar(z),char(5),smallint,int,int,Timestamp)
So Daten wie dieser So
SEL CHAR2HEXINT (colA) ,colA FROM v
313732353732 172572 /* this is some other pre-existing value*/
2020202033343535343335 3455435 /* this is value just inserted */
sehen, wenn Sie oben 20202020
Hex sehen für 2 spaces aka ' '
2.e Frage (nicht Fortsetzung der obigen Situation)
Auch ich habe Daten für eine varchar (50) col wie diese
HMSA
232434343
HMSA
4343434343
434343434
Hier ist der HMSA
hat ein Leerzeichen 2020 HEX
aber auch andere Werte haben nicht trailing spaces
. Ich bin mir nicht sicher, was los ist. Jetzt ist hier nicht varchar
sollen alle nachgestellten Leerzeichen wegwerfen? Wie kommen Daten mit HMSA<space>
gelandet Nicht sicher. Irgendwelche Ideen ?
Ok lässt so auf einige Merkwürdigkeiten sehen aus kommenden:
insert ('yada ') into tb /* tb is volatile & SET.There are 4 spaces */
insert ('yada') into tb
Query Failed. 2802: Duplicate row error in tb
Alles klar zu sehen, was das sieht aus wie
7961646120202020 yada /*There are 4 spaces - 20 x 4 */
So auf dem zweiten Einsatz den Raum Vergleichsteil abwarf und Hat ein trim(oldvalue) vs trim (new value)
Danke .... Dieter wie immer, eine wunderbare Erklärung und 'neue Nachrichten' auf so Es passieren viele alltägliche Dinge in der db-Welt, und hoffentlich werden viele diesen wertvollen q & a nützlich finden – user1874594