假如需要返回三个表 而这三个表结构[字段类型,个数]可能相同 也可能不同
该如何实现 最好有完整代码 及调用方法。。比如 下面是一个返回 一个表数据的完整代码CREATE OR REPLACE FUNCTION myff()
RETURNS SETOF record AS
$BODY$
beginreturn query select * from "MyTable";end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
ALTER FUNCTION getfoo() OWNER TO postgres;调用方法[在查询工具中执行]
select * from "myff"() as tt(id integer,name text,pwd text);
该如何实现 最好有完整代码 及调用方法。。比如 下面是一个返回 一个表数据的完整代码CREATE OR REPLACE FUNCTION myff()
RETURNS SETOF record AS
$BODY$
beginreturn query select * from "MyTable";end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
ALTER FUNCTION getfoo() OWNER TO postgres;调用方法[在查询工具中执行]
select * from "myff"() as tt(id integer,name text,pwd text);
解决方案 »
- 请教一个sql语句,谢谢
- Asp.net连接MySQL数据库,Select '测试' From myTable居然是乱码
- 我是新手,求一个基础SQL语句的写法
- mysql5存储过程语法有误麻烦高手解决
- 如何取MYSQL里的所有数据库名.
- MySQL/Postgresql是开放源代码的吗?在哪儿可以下载到他们的源代码?可以对他们的源代码进行修改吗?
- FreeBSD下的mysql问题
- 奇怪,下面語句在MYSQL中為何提示有錯,在MSSQL中是正常執行的...?
- mysql递归查询排序问题
- musql创建存储过程报错
- 我安装mysql,php,apache都正常,但在将phpmyadmin。。。。。。
- MYSQL 内存表 有能存中文的字段类型么
union all select p1.type_name from product_type_1 p1;
union all select p1.type_name,p1.type from product_type_1 p1;
记住,以第一个SELECT作为别名,UNION ALL后面跟的要有相同字段,相同列数的SELECT查询才行.
temptable
id name age
1 aa 20
2 bb 30在函数里
return query select * from "temptable"
union all
select * from "temptable";在查询工具中执行该函数 并返回结果
1 aa 20
2 bb 30
1 aa 20
2 bb 30
返回的依然是 一个整体表可能是我没说明白:在asp.net中 有两种集合类型可以接收 pg数据库返回的集合类型数据
DateTable(一个表) DateSet(若干个表)想上面哪个例子 用DateTable接收就可以
现在如果用DateSet接收数据 那么只会有一个表
即
DateSet.table.count = 1;//DateSet中只有一张表
而我想要的是
DateSet.table.count = 2;这样的pg函数该如何写? 返回什么类型?需要注意什么?
2.需要把游标的名字返回给调用者(文档里说的很详细)
3.具体代码如下pg函数CREATE OR REPLACE FUNCTION reftext(ref1 refcursor, ref2 refcursor)
RETURNS SETOF refcursor AS
$BODY$
begin
open $1 for select * from "userTable";
return next $1;
open $2 for select * from "userInfo";
return next $2;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION reftext(refcursor, refcursor) OWNER TO postgres;在查询工具中调用
select * from "reftext"('a','b');FETCH ALL FROM a;FETCH ALL FROM b;在asp.net中调用就很简单了 我不贴代码了 需要注意的是如上面的代码 PG函数应该返回2个表数据
但当DateSet接收的时候是3个表
即 DateSet.Table.Count == 3;
DateSet.Table[0] {a,b}
DateSet.Table[1] {userTable}
DateSet.Table[2] {userInfo}
结贴!