PostgreSQL每日一贴--PL/pgSQL存储过程示例

本文展示了PostgreSQL中使用PL/pgSQL编写存储过程的示例,通过调用`test_function`,观察到其在`test_table`中产生的效果,详细记录了开始时间和结束时间,以及`str_flag`字段的值,揭示了存储过程的运行逻辑。
摘要由CSDN通过智能技术生成

代码样例

--1. psql客户端调用存储过程时打印调试信息 RAISE NOTICE
--2. 调用函数  perform function_name(...)
--3. 声明变量
--4. 返回值
--5. 替换变量
drop table if exists test_table;
CREATE TABLE test_table(start_time timestamp, end_time timestamp, str_flag varchar(200));

CREATE OR REPLACE FUNCTION test_function() RETURNS double precision AS $$
DECLARE
    start_time timestamp;
	end_time timestamp;
	time_consuming double precision;
BEGIN
    time_consuming := -1;
    
	select clock_timestamp() into start_time;
	RAISE NOTICE 'Quantity here is %', start_time;
	
	perform pg_sleep(3);
	
	select clock_timestamp() into end_time;
	RAISE NOTICE 'Quantity here is %', end_time;
	
	select round(EXTRACT(EPOCH from end_time)-EXTRACT(EPOCH from start_time)) into time_consuming;
	
    insert into test_table values(start_time, end_time, 'TEST_CLOCK_TIMESTAMP');
	
	return time_consuming;
END;
$$ LANG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值