![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: SQL
Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
Hi,
ich habe eine komplexere Abfrage gebaut, die ich dem Kunden nun als View in der Firebird DB zur Verfügung stellen möchte Die Abfrage wird fehlerfrei ausgeführt und bringt die erwarteten Ergebnisse. Die SQL Syntax sieht exemplarisch so aus ...
Code:
Wie gesagt, die Abfrage funktioniert, aber den DDL Code für den VIEW kann ich nicht commiten.
SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST
FROM ( SELECT ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, LEFT(Nachname,3) as TEST FROM TABLE1 UNION ALL SELECT ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, LEFT(Surname,3) as TEST FROM TABLE2 UNION ALL SELECT '' as ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, '' as TEST FROM TABLE3 )
Code:
Der Firebird Precompiler sagt mir, dass "EXTRACT(W" unbekannt ist.
CREATE VIEW TESTVIEW
(ich, du, er, sie, es, Jahr, Monat, Woche, TEST) AS SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST FROM ( SELECT ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, LEFT(Nachname,3) as TEST FROM TABLE1 UNION ALL SELECT ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, LEFT(Surname,3) as TEST FROM TABLE2 UNION ALL SELECT '' as ich, du, er, sie, es, EXTRACT(YEAR FROM DATUM) as Jahr, EXTRACT(MONTH FROM DATUM) as Monat, EXTRACT(WEEK FROM DATUM) as Woche, '' as TEST FROM TABLE3 ); Die Konstante "WEEK" wird nicht aufgelöst ... Wenn ich statt WEEK testweise DAY oder YEAR einsetze, dann kommt die Meldung nicht. Als zweite Meldung kommt danach, dass "LEFT(" unbekannt ist. Warum klappt das nicht? Was macht Firebird anders, dass ein funktionierender SELECT in einem CREATE VIEW DDL-Statement auf einmal nicht mehr funktioniert? Grüße Jens |
AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
Liegt es vielleicht daran, dass du in der äußeren Feldliste KW und in der inneren Feldliste Woche verwendest?
|
AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
Nein.
Sorry, das war wie gesagt nur ein kurz er Beispielcode (mit Tippfehlern :-D ). Habe es oben korrigiert. Wo sitzt eigentlich der Precompiler? In der FBClient.dll? |
AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
OK, das liegt irgendwie am EMS SQL-Manager oder an der FBClient.DLL.
Ich habe den DDL Code eben noch mal von einem anderen Rechner über eine AnyDAC Connection abgeschickt. Und... Der View ist da und funktioniert. |
AW: Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
Kann natürlich sein, dass der EMS SQL Manager eine Art Syntaxüberprüfung macht, die nichts als solches mit Firebird zu tun hat. Eine gute Art etwas nativ zu testen ist z.B. mit isql ausführen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz