Avatar billede torbenkoch Nybegynder
05. oktober 2001 - 15:57 Der er 4 kommentarer og
2 løsninger

Returnere recordset fra stored procedure

Hej alle,

I MS SQL kan man lave noget som dette:

CREATE PROCEDURE GetRecordset
  @ID
AS
  select * from table where id = @id

og så kalde den med
  GetRecordset (27)

den vil så returnere alle de records fra table hvor id = @id.

Hvordan h.... laver man sådan en i Oracle? Den bliver ved med at sige, at jeg skal bruge INTO variabel.

Hvordan gør jeg? Hjælp!
Avatar billede ehf Nybegynder
05. oktober 2001 - 19:56 #1
Du kan fx bruge en cursor

cursor cRecords (pId in number) is
select *
  from table
where if = pId;

Denne kan du så bruge til at hente rækker en af gangen.

for x in cRecords(27) loop
  -- her kan du så bruge de kolonner som er i table
  -- Blot prefix dem med x fx. x.kolonne1
end loop;
Avatar billede torbenkoch Nybegynder
05. oktober 2001 - 21:32 #2
Det må jeg jo nok indrømme, at jeg ikke fattede en hujende disse af?

I det her tilfælde er klienten en Delphi-applikation, som jo forventer at få et recordset tilbage. Kan det lade sige gøre?
Avatar billede holdam Nybegynder
07. oktober 2001 - 11:19 #3
I PL/SQL kan det se nogenlunde således ud:

CREATE OR REPLACE PACKAGE pck IS
TYPE result_rc IS REF CURSOR;
FUNCTION get_record_set (p_id IN NUMBER) RETURN result_rc;
END;
/
CREATE OR REPLACE PACKAGE BODY pck IS

FUNCTION get_record_set (p_id IN NUMBER) RETURN result_rc IS
  result result_rc;
BEGIN
  OPEN result FOR SELECT * FROM table WHERE id=p_id;                                       
  RETURN result;
END get_record_set;
END;
/

- og så kan du kalde funktionen pck.get_record_set(27)
Avatar billede torbenkoch Nybegynder
08. oktober 2001 - 10:04 #4
Tak for det, det får jeg lige afprøvet snarest!
Avatar billede torbenkoch Nybegynder
04. november 2001 - 09:17 #5
Har ikke glemt det endnu, men har været optaget... Sorry guys, skal nok få gjort noget ved det!
Avatar billede camo Nybegynder
31. marts 2002 - 15:20 #6
TorbenKoch - Kan jeg få dig til at smide din delphi kode når du har det til at virke?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester