Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 5.290 pregleda

Najnovija ↓

Storna procedura 07.08.2009. u 23:28 · pre 209 meseci #1
imam proceduru

Code:



CREATE OR REPLACE FUNCTION marko1()
  RETURNS setof record   AS
$BODY$
select   * from prva,druga   where prva."Id"=druga."Id_prva" 
$BODY$
LANGUAGE 'sql';
 



i ova procedura mi vrati x slogova ali sa jednim poljem.

što staviti umjesto record da mi vraća slogove sa poljima.

npr.

select marko1()

vrati

marko1
record
(1,1,1,2,3)

a kada probam

select * from marko1
naravno javi grešku


ERROR: a column definition list is required for functions returning "record"
LINE 1: select * from marko1()
^

********** Error **********

ERROR: a column definition list is required for functions returning "record"
SQL state: 42601
Character: 16


ako imam jednu tableu sve funkcionira.
Re: Storna procedura 08.08.2009. u 00:26 · pre 209 meseci #2
Nije li ti lakše da napraviš VIEW umesto funkcije za to što hoćeš da ti se vrati?
Re: Storna procedura 08.08.2009. u 00:29 · pre 209 meseci #3
Citat:
jablan: Nije li ti lakše da napraviš VIEW umesto funkcije za to što hoćeš da ti se vrati?


u pravu si.
ali ako znaš kako ide, molim te napiši.
Re: Storna procedura 08.08.2009. u 22:00 · pre 209 meseci #6
Napravi kompozitni tip podataka i onda napravi funkiciju koja vraca taj tip. Ako hoćeš detaljniji odgovor (od mene) onda navedi:
1. DDL od tabela "prva" i "druga"
2. Koju verziju servera koristiš?

Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Storna procedura 09.08.2009. u 00:00 · pre 209 meseci #7
Citat:
chachka: Napravi kompozitni tip podataka i onda napravi funkiciju koja vraca taj tip. Ako hoćeš detaljniji odgovor (od mene) onda navedi:
1. DDL od tabela "prva" i "druga"
2. Koju verziju servera koristiš?


evo kolona za prvu i drugu
prva -> Id,A
druga ->Id,Id_prva,B,C

ovo je bilo za probu.


verzija postgresql-a 8.4

jel možeš odgovoriti na privatnu poruku?

hvala
Re: Storna procedura 10.08.2009. u 09:54 · pre 209 meseci #8
1. To što si postovao nije DDL!
2. Pošto se radi o 8.4 serveru, a nisi postavio DDL tabela, mogu ti reći samo: upotrebi RETURNS TABLE klauzulu komande CREATE FUNCTION.
3. Nevidim potrebu da odgovaram putem privatnih poruka
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Storna procedura 10.08.2009. u 13:40 · pre 209 meseci #9
to sam i prije probao ali javlja grešku



******* Error **********

ERROR: syntax error at or near "AS"
SQL state: 42601
Character: 105

Re: Storna procedura 10.08.2009. u 13:57 · pre 209 meseci #10
evo procedure ako nekome treba

Code:


CREATE OR REPLACE FUNCTION marko11() 
RETURNS   TABLE (Id integer,A double precision,B double precision)
AS $$
    begin
     RETURN QUERY (
      select "prva"."Id","prva"."A","druga"."B" from prva,druga where prva."Id"=druga."Id_prva" 
      );
    end;
$$

  LANGUAGE 'plpgsql' ;
  


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme