Hallo
aufbauend auf
dieser Diskussion habe
ich versucht die Lösung für den
MS-SQL-Server auf Firebird 2.0 zu übertragen. Das ist mir grundsätzlich auch gelungen. Leider weiss ich nicht wie man eine
temporäre Tabelle in einer Firebird procedure anlegen kann.
Hätte da jemand ein Beispiel für micht?
Code:
CREATE PROCEDURE "SELECT_SUBTREE"
(
"I_NODETEXT" VARCHAR(25) CHARACTER SET ISO8859_1
)
RETURNS
(
"O_ID" INTEGER,
"O_PARENTID" INTEGER,
"O_NAME" VARCHAR(25) CHARACTER SET ISO8859_1
)
AS
DECLARE VARIABLE CHILD_ID INTEGER;
begin
DELETE FROM SUBTREE;
INSERT INTO SUBTREE (ID,PARENT_ID,NAME)
SELECT a.ID, a.PARENT_ID, a.NAME
FROM tree a
WHERE LOWER(a.Name) = LOWER(:I_NODETEXT);
FOR SELECT p.ID
FROM subtree p
INTO :CHILD_ID
AS CURSOR C
DO
INSERT INTO SUBTREE (ID,PARENT_ID,NAME)
SELECT a.ID, a.PARENT_ID, a.NAME
FROM tree a
WHERE a.PARENT_ID=:CHILD_ID;
FOR SELECT x.ID,x.Parent_ID,x.Name
FROM subtree x
INTO :O_ID,:O_PARENTID,:O_NAME
DO
SUSPEND;
end
^