PDA

View Full Version : Datentyp NVARCHAR



malzusrex
28-10-05, 11:03
moin, moin.

ich habe hier einen Create Table für einen SQL-Server. Da ist ein Feld mit nvarchar angegeben.
Welchen Datentype entspricht den das uff der AS400, wenn ich den CREATE für die AS umsetzen möchte?

Gruß Ronald

Fuerchau
28-10-05, 11:05
Ganz einfach VARCHAR !

malzusrex
28-10-05, 11:10
aha, ist ja eigentlich nacheliegend. aber für was steht eigentlich das N ?

Danke für die schnelle Antwort

Fuerchau
28-10-05, 11:15
Naja, so ganz richtig ist das nicht, kommt eben auf den Inhalt an und wie die Daten zu verarbeiten sind:

„nchar“ und „nvarchar“
Zeichendatentypen, bei denen es sich um Unicodedaten entweder fester Länge (nchar) oder variabler Länge (nvarchar) handelt und die den UNICODE UCS-2-Zeichensatz verwenden.

nchar(n)

Unicode-Zeichendaten fester Länge mit n Zeichen. n muss ein Wert zwischen 1 und 4.000 sein. Die Speichergröße beträgt das Zweifache von n Byte. Die SQL-92-Synonyme für nchar sind national char und national character.

nvarchar(n)

Unicode-Zeichendaten variabler Länge mit n Zeichen. n muss ein Wert zwischen 1 und 4.000 sein. Die Speichergröße in Bytes beträgt das Zweifache der Anzahl der eingegebenen Zeichen. Die eingegebenen Daten können 0 Zeichen lang sein. Die SQL-92-Synonyme für nvarchar sind national char varying und national character varying.

Hinweise
Wenn n in einer Datendefinitions- oder Variablendeklarationsanweisung nicht angegeben ist, beträgt die Standardlänge 1. Falls n bei der CAST-Funktion nicht angegeben ist, ist die Standardlänge 30.

Verwenden Sie nchar, wenn die Dateneinträge in einer Spalte vermutlich alle ungefähr die gleiche Größe haben werden.

Verwenden Sie nvarchar, wenn die Dateneinträge in einer Spalte voraussichtlich sehr unterschiedliche Größen haben werden.

Objekten, für die nchar oder nvarchar verwendet wird, wird die Standardsortierung der Datenbank zugewiesen, es sei denn, mithilfe der COLLATE-Klausel wird eine bestimmte Sortierung zugewiesen.

SET ANSI_PADDING OFF gilt nicht für nchar und nvarchar. SET ANSI_PADDING hat für nchar und nvarchar immer den Wert ON.

Für die AS/400 bedeutet dies:
nvarchar = vargraphic ccsid 13488
varchar = graphic ccsid 13488

Die Frage ist hier die Weiterverarbeitung auf der AS/400 !

KM
28-10-05, 11:15
Das stimmt so nicht ganz. Der Datentyp nvarchar auf dem SQL-Server bedeutet Unicode (also 2 Byte pro Zeichen), während varchar 1 Byte pro Zeichen belegt. Somit musst Du auf der iSeries ein Feld mit Datentyp GRAPHIC und CCSID 13488 anlegen.

Gruß,
KM

kuempi von stein
28-10-05, 11:21
aha, ist ja eigentlich nacheliegend. aber für was steht eigentlich das N ?

Danke für die schnelle Antwort
ich hab auch noch was gefunden...

http://www.aspfaq.com/show.asp?id=2522

have fun

k.

malzusrex
28-10-05, 11:44
Danke euch noch mal. Ich denke das ich die Schnittstelle gebacken bekomme. Jedenfalls habe ich wieder was ausführlich dazu gelernt.

Gruß Ronald