注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

Postgresql的存储过程返回表的多个column(row)的例子  

2015-05-22 16:18:44|  分类: postgresql数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |




Postgresql的存储过程返回表的多个column(row)的例子
==========================================

postgresql支持的存储过程支持标准的sql语法和自己扩展的pl/pgsql。甚至c的代码,不知道那个怎么写了。

Stored procedure的优点
--------------------------------
http://en.wikipedia.org/wiki/Stored_procedure


标准sql
----------

```sql
CREATE OR REPLACE FUNCTION test_select(IN id text) RETURNS SETOF test_table_name AS $$
SELECT * FROM test_talbe_name where test_talbe_name.text = id;
$$ LANGUAGE sql STABLE;

ALTER FUNCTION test_select(text) OWNER TO test_user;
SELECT * FROM test_select('3');
```



- postgresql 的pl/pgsql
-----------------------

http://www.postgresql.org/docs/9.4/static/plpgsql.html

```sql
CREATE OR REPLACE FUNCTION test_select(IN id text) RETURNS test_talbe_name AS $$
DECLARE
sms_row test_talbe_name%ROWTYPE;
BEGIN
SELECT * into sms_row FROM test_talbe_name where test_talbe_name.text = id;
RETURN sms_row;
END;
$$ LANGUAGE plpgsql STABLE;

ALTER FUNCTION test_select(text) OWNER TO test_user;

SELECT * FROM test_select('3');
s
```


```sql

CREATE OR REPLACE FUNCTION select_smpp_sms(IN sms_id text) RETURNS TABLE (
id text,
session_id integer,
text text,
) AS $$
BEGIN
return query
SELECT id,session_id,text
FROM ONLY sms WHERE sms.id = sms_id;
END;
$$ LANGUAGE plpgsql STABLE;

```


  评论这张
 
阅读(467)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017