函式返回值一般是某一型別值,如int,varchar,date等,返回結果集時就需要用到setof語法。
test=# \set sqlterm /test=# create or replace function f_get_class()
test-# returns setof class
test-# as
test-# $$
test$# select * from class;
test$# $$
test-# language sql;
test-# /
create function
test=# \set sqlterm ;kingbasees還支援對函式結果集的條件查詢test=# select * from f_get_class();
id | name
----+----------
1 | 六年一班
2 | 六年二班
3 | 六年三班
(3 行記錄)
test=# select * from f_get_class() where id =3;id | name
----+----------
3 | 六年三班
(1 行記錄)
test=# \set sqlterm /test=# create or replace function f_get_table(text) returns setof record as
test-# $$
test$# declare
test$# rec record;
test$# begin
test$# for rec in execute 'select * from ' || $1 loop
test$# return next rec;
test$# end loop;
test$# return;
test$# end
test$# $$
test-# language 'plpgsql';
test-# /
create function
test=# select * from f_get_table('student') as student(stuid number, name varchar(20),classtid number);stuid | name | classtid
-------+------+----------
1 | 張三 | 1
2 | 李四 | 2
3 | 王五 | 2
(3 行記錄)
test=# select * from f_get_table('class') as class(id number, name varchar(20));id | name
----+----------
1 | 六年一班
2 | 六年二班
3 | 六年三班
(3 行記錄)
KingbaseES 匿名塊如何傳遞引數
匿名塊的基本語法結構包括宣告和執行兩部分。匿名塊每次提交都被重新編譯和執行。因為匿名塊沒有名稱並不在資料庫中儲存,所以匿名塊不能直接從其他pl sql 塊中呼叫。定義語法 declare variable declaration cursor declaration begin sequence o...
如何根據protobuf來Mock後台返回的資料
google protocol buffer 簡稱 protobuf 是 google 公司內部的混合語言資料標準,他們用於 rpc 系統和持續資料儲存系統。protocol buffers 是一種輕便高效的結構化資料儲存格式,可以用於結構化資料序列化,或者說序列化。它很適合做資料儲存或 rpc 資...
mysql函式不返回型別的 php函式不返回值
我有乙個適用於 php 5.3 xampp 1.7.3,windows 7 的類,但在我的伺服器中不起作用 php 5.2.17 安全模式開啟 class mysql db order by id asc result mysql query q,this connection ret this m...