【问题标题】:Postgres Stored Procedures returing cursor in birt reportPostgres存储过程在birt报告中返回游标
【发布时间】:2015-06-12 09:44:27
【问题描述】:
Postgres 存储过程返回光标。
我有存储过程 sp_order_tracker4。我使用下面的方法从 pgsql 调用这个存储过程
SELECT sp_order_tracker4('',0,0,'cities_cur');
FETCH ALL IN "cities_cur";
cities_cur 是游标名称。我将如何从中获得 birt 报告。
【问题讨论】:
标签:
postgresql
stored-procedures
birt
【解决方案1】:
当存储过程返回引用游标时我遇到了一些问题。然后我返回了TABLE,例如:
-
SP:
CREATE OR REPLACE FUNCTION REP.GET_ALL_DESCENDANTS(parentId integer)
RETURNS
TABLE (diag_id int8,mkb10_diag_code varchar,mkb10_diag_nm varchar,
dsc varchar,parent_id int8,hierarchy_lvl int2,ppn_dt Date,ppn_tm Time)
AS
...
Birt 数据集:
SELECT * FROM REP.GET_ALL_DESCENDANTS(?);
-
SP:
CREATE OR REPLACE FUNCTION REP.string_to_rows(tablename text, tablecolumn text, param text) RETURNS table(parameters integer) AS'
...
Birt 数据集:
...
WHERE
human.human_id IN((SELECT "Col" FROM rep.string_to_rows('dwh.human', 'human_id', ?) d("Col")))
希望对你有帮助。