AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken LPAD nur für eine Spalte zulässig?
Thema durchsuchen
Ansicht
Themen-Optionen

LPAD nur für eine Spalte zulässig?

Ein Thema von Jürgen Thomas · begonnen am 19. Dez 2009 · letzter Beitrag vom 19. Dez 2009
Antwort Antwort
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

LPAD nur für eine Spalte zulässig?

  Alt 19. Dez 2009, 10:36
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal
Hallo,

für eine Übungsaufgabe in Wikibooks: Funktionen in SQL bin ich über folgendes Problem gestolpert:
Zitat:
Die Werte ID und Abteilung_ID sollen zusammengesetzt werden. Dabei soll die ID immer 4-stellig und die Abteilung_ID immer 2-stellig geschrieben werden, bei Bedarf sollen die Teile mit '0' aufgefüllt werden.
Die erwartete Lösung funktioniert:
SELECT LPAD(ID, 4, '0') || LPAD( Abteilung_ID, 2, '0') from Mitarbeiter; Wenn ich aber (zu Testzwecken) den doppelten Aufruf von LPAD trenne, klappt es nicht:
SELECT LPAD(ID, 4, '0') AS LID, LPAD( Abteilung_ID, 2, '0') AS LAB from Mitarbeiter; Fehlermeldung:
Zitat:
Undefined name.
Dynamic SQL Error. SQL error code = -204.
Implementation limit exceeded. block size exceeds implementation restriction.
Welcher Name soll undefiniert sein? Welche Blockgröße überschreitet welche Beschränkung?

Diese Einschränkungen verstehe ich nicht; kann sie mir jemand erklären? Danke! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: LPAD nur für eine Spalte zulässig?

  Alt 19. Dez 2009, 12:00
LPAD ist ein Funktion, die man mehrfach (auch in versch. Spalten) verwenden darf.
Ändere mal die Namen "LID" und "LAB" in längere Namen, die garantiert nicht ein reserviertes Wort sind oder sonst irgendwie einen Namensgleichheit mit einem Feld, Funktion oder wasauchimmmer haben.
z.B. "LID" -> "LPaddedID", "LAB" -> "LPaddedAbteilung"
Wenn der Fehler dann immer noch da ist, dann besorge dir die allerneueste Firebird Version.
Es sieht aber ganz danach aus, als ob du einen Bug entdeckt hättest...
http://tracker.firebirdsql.org/
Teste deine Abfrage doch auch noch an anderen Tabellen mit anderen Felder; vielleicht besteht ja ein Zusammenhang zwischen dem Bug und den Datentypen der Felder.
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:05 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