AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder
Thema durchsuchen
Ansicht
Themen-Optionen

Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

Ein Thema von Bernhard Geyer · begonnen am 15. Jul 2004 · letzter Beitrag vom 16. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#1

Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 15. Jul 2004, 10:46
Beim MS-SQL-Server können in einem Datensatz maximal 8060 (!) Bytes in varchar-Felder gefüllt werden (Max Tablerow-Size).

Weiss jemand, ob es eine solche Beschränkung auch bei MySQL bzw. Oracle vorhanden ist bzw. wie dort die Grenzen sind?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 15. Jul 2004, 10:56
Zitat von Bernhard Geyer:
...ob es eine solche Beschränkung auch bei MySQL...
Hai Bernhard,
bei mySQL ist laut meiner Doku bei 255 schluss.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von -tobi-
-tobi-

Registriert seit: 24. Mär 2004
53 Beiträge
 
Delphi 7 Professional
 
#3

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 15. Jul 2004, 11:05
Hallo,

Oracle kann Felder als VarChar und VarChar2 für 4000 Zeichen anlegen.

Gruß
tobi
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 15. Jul 2004, 11:14
Danke für die Infos, aber ihr habt die Frage Falsch verstanden.

Es geht nicht darum wieviel ein varchar-Feld aufnehmen kann, sondern bis zu welcher Länge (Speicherumfang) alle varchar-Felder in einem Record gefüllt werden können.

Beispiel:
Ich definiere eine Tabelle mit 10 varchar-Feldern der Länge 1000. Diese kann ich jedoch nicht alle komplett füllen, da diese sonst 10000 Zeichen = 10000 Bytes benötigen würden. Und dies ist über der 8060 Bytes-Grenze des MS-SQL-Server.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 15. Jul 2004, 11:35
Zitat von Bernhard Geyer:
Danke für die Infos, aber ihr habt die Frage Falsch verstanden.....
Dann musst Du gaaaaanz deutlich schreiben
Ich habe noch nichts über eine Einschränkung bei mySQL gefunden. Ich werde es im zweifel einfach mal testen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 16. Jul 2004, 09:28
Zitat von -tobi-:
Hallo,

Oracle kann Felder als VarChar und VarChar2 für 4000 Zeichen anlegen.

Gruß
tobi
Generell würde ich in Ora nie den Typ VarChar verwenden. Dafür gibt's ja VarChar2, der ein paar Optimierungen hinter sich hat.

Zitat von Bernhard:
Beim MS-SQL-Server können in einem Datensatz maximal 8060 (!) Bytes in varchar-Felder
Man könnte also gerade mal 2 VarChar(2000) bzw. 1 VarChar(4000) in einer Tabelle haben??? (Ich weiß jetzt aber nicht, ob das VarChar im SQL Svr auch 2 Byte/Character hat)

OT: solche großen Textfelder gehören IMHO sowieso in einen CLob
  Mit Zitat antworten Zitat
Benutzerbild von -tobi-
-tobi-

Registriert seit: 24. Mär 2004
53 Beiträge
 
Delphi 7 Professional
 
#7

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 16. Jul 2004, 09:48
Zitat von Robert_G:
Generell würde ich in Ora nie den Typ VarChar verwenden. Dafür gibt's ja VarChar2, der ein paar Optimierungen hinter sich hat.
Das habe ich schon gemerkt. Ich bin schon mit Char und mit Varchar in Fehler gelaufen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 16. Jul 2004, 11:33
Zitat von Robert_G:
Generell würde ich in Ora nie den Typ VarChar verwenden. Dafür gibt's ja VarChar2, der ein paar Optimierungen hinter sich hat.
Haben wir eh. varchar war als "Überbegriff" für alle Datenbanken gedacht.

Zitat von Robert_G:
(Ich weiß jetzt aber nicht, ob das VarChar im SQL Svr auch 2 Byte/Character hat)
Nur wenn es als nvarchar angelegt wurde. varchar hat 1 Byte/Character[/quote]

Zitat von Robert_G:
OT: solche großen Textfelder gehören IMHO sowieso in einen CLob
Ich habe nicht das Problem das das Feld so groß wird, sondern das ich viele kleine Felder habe (vom Kunden auch konfigurierbar). Und danach will er auch suchen. Und (bei MS-SQL) sind die ntext-Felder nicht sehr kooperativ bezüglich suche (Bei Memofelder geht nur der Abfrage nach null bzw. like).
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 16. Jul 2004, 11:39
Zitat:
Nur wenn es als nvarchar angelegt wurde. varchar hat 1 Byte/Character
Genau darauf würde ich mich nicht verlassen. Mir ist es oft genug untergekommen, dass für einen VarChar2 2 B/Chr verwendet wurden.

Wenn es im SQL Svr wirklich nur 1 B/Chr ist, kannst du dich bei 8KB doch ziemlich auslassen (solange es wirklich nur "kleinere" Felder sind).

OT: Diese Einschränkung ( die 8 KB) gehört wohl neben dem SELECT-Locking zu den nervigsten "Features" von M$ Spross...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Grenzen von MS-SQL/Oracle/MySQL bezüglich varchar-Felder

  Alt 16. Jul 2004, 12:16
Zitat von Robert_G:
Genau darauf würde ich mich nicht verlassen. Mir ist es oft genug untergekommen, dass für einen VarChar2 2 B/Chr verwendet wurden.
Bei MS-SQL sollte das aber nicht der Fall sein (evtl. bei anderen DB's). Auszug aus der MS-SQL-Hilfe
Zitat:
varchar[(n)]

Nicht-Unicode-Zeichendaten variabler Länge mit n Byte. n muss ein Wert zwischen 1 und 8.000 sein. Die Speichergröße entspricht der tatsächlichen Länge der eingegebenen Daten in Byte, nicht n Byte. Die eingegebenen Daten können 0 Zeichen lang sein. Die SQL-92-Synonyme für varchar sind char varying oder character varying.
Zitat von Robert_G:
Wenn es im SQL Svr wirklich nur 1 B/Chr ist, kannst du dich bei 8KB doch ziemlich auslassen (solange es wirklich nur "kleinere" Felder sind).
Muß jedoch dafür sorgen, das wenn der User die Konfiguration so wählt, das er evtl. über diese Grenze, das 'ne Warnmeldung erscheint.

Zitat von Robert_G:
OT: Diese Einschränkung ( die 8 KB) gehört wohl neben dem SELECT-Locking zu den nervigsten "Features" von M$ Spross...
Ich kenn noch eine: Tabelle mit Primärschlüssel(varchar), varcharfeldern und ntext-Feldern.
Und versuch mal in einer Update-Anweisung alle Felder gleichzeitig zu aktualisieren - Wird nicht gehen!

OT: Wenn man mehr mit den diversen DBMS zu tun hat, so wundert man sich nicht, das immer wieder neue DBMS entwickelt werden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz