Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   LPAD nur für eine Spalte zulässig? (https://www.delphipraxis.net/144904-lpad-nur-fuer-eine-spalte-zulaessig.html)

Jürgen Thomas 19. Dez 2009 10:36

Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal

LPAD nur für eine Spalte zulässig?
 
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:
SQL-Code:
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:
SQL-Code:
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

sx2008 19. Dez 2009 12:00

Re: LPAD nur für eine Spalte zulässig?
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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