일부 SQLServer 저장 프로 시저를 변환 중입니다. 해결할 수없는 문제가 있습니다. 의 SQLServer 기능의 그 :PostgreSQL의 저장 프로 시저에 대한 매개 변수를 참조하는 중
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 [email protected];
그리고 내가 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 절 '에서'테이블에서 't'에 대한 유효한 참조가 없다는 것을 알려줍니다. 그리고이 방법으로 쓰면 getviewnodehierarchyprueba((select CHILD_OID from BTREENODES_NODEHIERARCHY),parents)
두 개 이상의 레코드를 반환하며 작동하지 않습니다. 어떤 아이디어? 고맙습니다!
* * : 항상 PostgreSQL? 또한 함수 *가 반환해야하는 내용을 설명하십시오. 1 행 또는 여러 행? –
자세히 관련 : http://stackoverflow.com/questions/11472790/analogue-to-cross-apply –