![]() |
Datenbank: Firebird • Version: 2.1.3 • Zugriff über: IBX
Firebird Stored Procedure in Select verwenden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich möchte gerne eine Stored Procedure erstellen welche ich in einem Select verwenden kann und welche einen Aufrufparameter erhält. Beispiel: Select c.Name, a.Age from Customer c, Get_Age_For_Customer(c.ID) a; Die Stored Procedure ist folgendermassen deklariert: PROCEDURE Get_Age_For_Customer(IDCustomer Integer) returns (Age Integer) begin Age = 50; // muss natürlich berechnet werden Suspend; end; D.h. ich möchte eine Liste mit allen Namen von Kunden und dem berechneten Alter erhalten. Ist sowas überhaupt möglich? Wenn ich es wie oben im IBExpert ausprobiere erhalte ich immer die angehängte Fehlermeldung. Merci, Hans. |
AW: Firebird Stored Procedure in Select verwenden
Hi,
SP wie einen SubSelect in Klammern:
Code:
[EDIT]
Select c.Name, (select age from Get_Age_For_Customer(c.ID)) as age from Customer c
Das geht auch und mache ich oft, wenn die SP mehrere Ausgabe - Parameter hat:
Code:
[/EDIT]
Select c.name
, a.age from Customer c left join Get_Age_For_Customer(c.ID) a on 1 = 1 Frank |
AW: Firebird Stored Procedure in Select verwenden
Morgen Frank,
vielen Dank für die Antwort! Hat beides funktioniert! Soweit ich es in Erinnerung habe, ist ein Subselect ziemlich langsam. Kann es sein, dass die zweite Variante mit dem Join schneller ist? Hans. |
AW: Firebird Stored Procedure in Select verwenden
Hi,
beim Subselect bekommst Du nur einen Parameter zurück und du solltest genau drauf achte, dass hier auch nur ein Datensatz zurück kommen können. Wenn es mal mehr sind knallts... Und wegen der GEschwindigkeit: jedes bessere SQL-Tool das ich kenne (FlameRobin bis IBExpert) gibt dir Werte bzgl. Dauer der Ausführung, Fetch usw. aus.... Probiers doch einfach aus... GRüße |
AW: Firebird Stored Procedure in Select verwenden
Hi,
laut IBExpert braucht der SubSelect etwas länger. Dies deckt sich auch mit der Theorie :) Danke für die Antworten. Hans. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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-2025 by Thomas Breitkreuz