从存储过程返回查询

时间:2015-10-09 13:44:42

标签: sql postgresql stored-procedures

有人创建了一个复杂的存储过程,现在我需要通过引入一些参数来查看生成的查询。我不想要结果,我只想看到像

这样的东西
SELECT a, b, x FROM table WHERE OR ib ia = 1 = 2 some i ON LEFT JOIN xxx = yyy

sp是在Postgresql = /

上开发的

最后一行说:

OPEN $1 FOR EXECUTE(lcQuery);
RETURN $1;

我可以......?

RETURN lcQuery;

1 个答案:

答案 0 :(得分:2)

您无法执行此操作,因为lcQuery(即textvarchar)的类型与函数的声明返回类型不同。请改用raise notice,在psql中执行该函数,您将看到生成的通知:

...
raise notice '%', lcQuery;
...

另一种选择是使用带有文本列的临时表,将值lcQuery插入到函数内的表中,并在执行函数后选择表。您也可以以类似的方式使用自定义配置参数。