1CREATE PROCEDURE test_proc1()
2LANGUAGE pltcl
3AS $$
4unset
5$$;
6
7CALL test_proc1();
8
9
10CREATE PROCEDURE test_proc2()
11LANGUAGE pltcl
12AS $$
13return 5
14$$;
15
16CALL test_proc2();
17
18
19CREATE TABLE test1 (a int);
20
21CREATE PROCEDURE test_proc3(x int)
22LANGUAGE pltcl
23AS $$
24spi_exec "INSERT INTO test1 VALUES ($1)"
25$$;
26
27CALL test_proc3(55);
28
29SELECT * FROM test1;
30
31
32-- output arguments
33
34CREATE PROCEDURE test_proc5(INOUT a text)
35LANGUAGE pltcl
36AS $$
37set aa [concat $1 "+" $1]
38return [list a $aa]
39$$;
40
41CALL test_proc5('abc');
42
43
44CREATE PROCEDURE test_proc6(a int, INOUT b int, INOUT c int)
45LANGUAGE pltcl
46AS $$
47set bb [expr $2 * $1]
48set cc [expr $3 * $1]
49return [list b $bb c $cc]
50$$;
51
52CALL test_proc6(2, 3, 4);
53
54
55DROP PROCEDURE test_proc1;
56DROP PROCEDURE test_proc2;
57DROP PROCEDURE test_proc3;
58
59DROP TABLE test1;
60