| 
                         hank=> select * from tb2; 
	 c1 | c2  |       c3       
	----+-------+---------------------------- 
	 1 | hank | 2018-02-06 10:08:00.787503 
	 2 | dazui | 2018-02-06 10:08:08.542481 
	 3 | wahah | 2018-02-06 10:08:15.468527 
	 4 | aaaaa | 2018-02-06 10:18:39.289523 
SQL文本如下 
cat hank.sql 
	select * from tb2 where c2=:name and c3>=:time; 
通过psql查看 
psql -v name="'hank'" -v time="'2018-02-06 10:08:00'" -f hank.sql 
	 c1 | c2 |       c3       
	----+------+---------------------------- 
	 1 | hank | 2018-02-06 10:08:00.787503 
或者 
psql -v name="'hank'" -v time="'2018-02-06 10:08:00'" -c 'i hank.sql' 
	 c1 | c2 |       c3       
	----+------+---------------------------- 
	 1 | hank | 2018-02-06 10:08:00.787503 
效果一样 
2.set使用变量 
hank=> set name hank 
	hank=> set time '2018-02-06 10:09:00'  
	hank=> select * from tb2 where c2=:'name' and c3>=:'time'; 
	 c1 | c2 |       c3       
	----+------+---------------------------- 
	 1 | hank | 2018-02-06 10:08:00.787503 
3.通过定义参数实现 
设置一个session级别的参数,通过current_setting取值 
hank=> set session "asasd.time" to "2018-02-06 10:09:00"; 
	SET 
	hank=> select * from tb2 where c3 >= current_setting('asasd.time')::timestamp; 
	 c1 | c2  |       c3       
	----+-------+---------------------------- 
	 4 | aaaaa | 2018-02-06 10:18:39.289523 
	(1 row) 
补充:postgresql存储函数/存储过程用sql语句来给变量赋值 
--定义变量 
	a numeric; 
方式一: 
1select sqla into a from table1 where b = '1' ; --这是sql语句赋值 
方式二: 
sql1:= 'select a from table1 where b = ' '1' ' '; 
	execute sql1 into a; --这是执行存储函数赋值                         (编辑:临夏站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |