Eine SP bringt mich hier auch nicht weiter, weil diese ja auch nicht an den Wert rankommt, oder?
Einer SP kannst Du Parameter übergeben! Ist ein bisschen umständlich, geht aber noch: alle Eingabeparameter werden über die Pseudotabelle __input übergeben und alle Ausgabeparameter über __output. Das sieht dann ungefähr so aus:
Code:
CREATE PROCEDURE test (
UserID INTEGER,
erstespalte CHAR (10) OUTPUT,
zweitespalte DATE OUTPUT,
...
)
BEGIN
DECLARE @input CURSOR AS SELECT * FROM __input;
OPEN @input;
FETCH @input;
INSERT INTO __output
SELECT erstespalte, zweitespalte FROM blablubb
WHERE UserID = @input.UserID;
CLOSE @input;
END;
Aufgerufen wird es z.B. so:
SELECT * FROM (EXECUTE PROCEDURE test(:user)) x
oder auch
SELECT * FROM (EXECUTE PROCEDURE test(4711)) x
(Hinweis zu "x": die durch EXECUTE PROCEDURE abgerufene "Tabelle" muss einen Namen haben)