更新时间:2024-08-20 GMT+08:00
调用语句
示例
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 |
--建表 gaussdb=# CREATE SCHEMA hr; gaussdb=# SET CURRENT_SCHEMA = hr; gaussdb=# CREATE TABLE staffs ( section_id INTEGER, salary INTEGER ); gaussdb=# INSERT INTO staffs VALUES (30, 10); gaussdb=# INSERT INTO staffs VALUES (30, 20); --创建存储过程proc_staffs gaussdb=# CREATE OR REPLACE PROCEDURE proc_staffs (vIM section NUMBER(6), salary_sum out NUMBER(8,2), staffs_count out INTEGER ) IS BEGIN SELECT sum(salary), count(*) INTO salary_sum, staffs_count FROM hr.staffs where section_id = section; END; / CREATE PROCEDURE --创建存储过程proc_return. gaussdb=# CREATE OR REPLACE PROCEDURE proc_return AS v_num NUMBER(8,2); v_sum INTEGER; BEGIN proc_staffs(30, v_sum, v_num); --调用语句 dbe_output.print_line(v_sum||'#'||v_num); RETURN; --返回语句 END; / CREATE PROCEDURE --调用存储过程proc_return. gaussdb=# CALL proc_return(); 30#2.00 proc_return ------------- (1 row) --清除存储过程 gaussdb=# DROP PROCEDURE proc_staffs; gaussdb=# DROP PROCEDURE proc_return; --创建函数func_return. gaussdb=# CREATE OR REPLACE FUNCTION func_return returns void language plpgsql AS $$ DECLARE v_num INTEGER := 1; BEGIN dbe_output.print_line(v_num); RETURN; --返回语句 END $$; CREATE FUNCTION -- 调用函数func_return gaussdb=# CALL func_return(); 1 func_return ------------- (1 row) -- 清除函数 gaussdb=# DROP FUNCTION func_return; -- 清除当前数据库模式 gaussdb=# DROP SCHEMA hr CASCADE; |
父主题: 基本语句