1
我正在轉換一些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)
它返回多個記錄,它不起作用。有任何想法嗎?謝謝!
As * always *:您的PostgreSQL版本?另外,描述函數*應該返回的內容。一排還是幾排? –
密切相關:http://stackoverflow.com/questions/11472790/analogue-to-cross-apply –