cr_func_waren.sql
2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
-- allgemeine Funktionen zu Waren/Warengruppen --
-- [
create function produkt_typ_len()
returns int4 as '
DECLARE
len int4;
BEGIN
select INTO len bit_length(produkt_typ) from waren.produkt_typen;
IF NOT FOUND THEN
len := 0;
END IF;
RETURN len;
END;
' language 'plpgsql';
create function produkt_typ(text, int4)
returns bit varying as '
/*
* produkt_typ(name, len)
*
* ermittelt den produkt_typ zu einem entsprechenden namen.
*
* returns: NULL: falls der name nicht in konten_typen existiert
* >0: der konten_typ zu dem namen
*/
DECLARE
row waren.produkt_typen%ROWTYPE;
min_len int4 := waren.produkt_typ_len();
sel text;
BEGIN
IF $2 < min_len THEN
RAISE EXCEPTION ''len is to short'';
END IF;
sel := ''select produkt_typ::BIT('' || $2 || '')>>'' ||
$2-min_len ||
'' from waren.produkt_typen where bezeichnung='' ||
quote_literal($1);
FOR row IN EXECUTE sel LOOP
END LOOP;
IF NOT FOUND THEN
RETURN NULL;
ELSE
RETURN row.konto_typ;
END IF;
END;
' language 'plpgsql';
create function get_warengruppe(text)
returns warengruppe as '
DECLARE
row waren.warengruppe%ROWTYPE;
BEGIN
select INTO row * from waren.warengruppe where name=$1;
IF NOT FOUND THEN
RETURN NULL;
ELSE
RETURN row;
END IF;
END;
' language 'plpgsql';
create function get_warengruppe(int4)
returns warengruppe as '
DECLARE
row waren.warengruppe%ROWTYPE;
BEGIN
select INTO row * from waren.warengruppe where _id_=$1;
IF NOT FOUND THEN
RETURN NULL;
ELSE
RETURN row;
END IF;
END;
' language 'plpgsql';
create function warengruppe_id(text)
returns int4 as '
DECLARE
row waren.warengruppe%ROWTYPE;
BEGIN
select INTO row * from waren.warengruppe where name=$1;
IF NOT FOUND THEN
RETURN NULL;
ELSE
RETURN row._id_;
END IF;
END;
' language 'plpgsql';
-- ]
-- Ende allgemeine Funktionen zu Waren/Warengruppen --