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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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