【发布时间】:2017-11-09 00:31:27
【问题描述】:
我尝试从多个表创建的视图中获取所有行,直到几个小时。
我有两个表(Position 和 Vector),分别对应两个自定义复合类型 type_position 和 type_vector
位置(id、sys_time、lat、lon)
向量(id、sys_time、速度)
我想在 plpgsql 过程中创建一个临时视图来汇集所有位置和向量并按 sys_time 排序,所以我写道:
CREATE TEMP VIEW posAndVectView AS
SELECT * from position
UNION ALL
SELECT * from vector;
我需要遍历这个视图并根据 Position 和 Vector 属性进行一些工作。
所以我认为我应该使用光标:
DECLARE
manyRows refcursor;
BEGIN
OPEN manyRows FOR
SELECT * FROM posAndVectView ORDER BY sys_time ASC;
LOOP
FETCH manyRows INTO posOrVect;
EXIT WHEN NOT FOUND;
...
END LOOP;
CLOSE manyRows;
所以我的问题是 DECLARE 部分中 posOrVect 变量的类型应该是什么?
它似乎有时是 type_vector,有时是 type_position...
【问题讨论】:
标签: sql postgresql view cursor plpgsql