我正在转换一些 SQLServer 存储过程,但我遇到了一个无法解决的问题。那是 SQLServer 函数:
CREATE FUNCTION [dbo].[getViewNodeHierarchyAux](@pivot varchar(255), @parents varchar(max))
RETURNS @view TABLE (PARENT_OID varchar(255), CHILD_OID varchar(255))
...
insert into @view select F.* from BTREENODES_NODEHIERARCHY T cross apply [dbo].getViewNodeHierarchyAux(T.CHILD_OID,@parents) F where T.PARENT_OID=@pivot;
这就是我在 PostgreSQL 中想到的转换:
CREATE OR REPLACE FUNCTION getviewnodehierarchyauxprueba(IN pivot character varying, IN parents character varying)
...
RETURNS TABLE(test_parent_oid character varying, test_child_oid character varying)
return query (select F.* from BTREENODES_NODEHIERARCHY T cross join getviewnodehierarchyprueba(T.CHILD_OID,parents) F WHERE T.PARENT_OID=pivot);
PgAdmin 告诉我在 'from' 子句中没有对表 't' 的有效引用。如果我这样写
getviewnodehierarchyprueba((select CHILD_OID from BTREENODES_NODEHIERARCHY),parents)
它返回多条记录并且不起作用。有任何想法吗?谢谢你!