Wie kann ich eine Funktion in Postgres ausführen?So führen Sie Funktionen in Postgres aus
Ich habe versucht, die folgenden:
select pricelimit();
Aber es mir Fehler geben, die wie folgt lautet:
Keine Funktion entspricht den angegebenen Namen und Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen.
Dies ist die Funktion:
CREATE OR REPLACE FUNCTION pricelimit(
p_product_id numeric,
p_pricelist_version_id numeric)
RETURNS numeric AS
$BODY$
DECLARE
v_Price numeric;
v_ProductPrice numeric;
bom record;
BEGIN
-- Try to get price from PriceList directly
SELECT COALESCE (SUM(PriceLimit), 0)
INTO v_Price
FROM M_PRODUCTPRICE
WHERE M_PriceList_Version_ID=p_PriceList_Version_ID AND M_Product_ID=p_Product_ID;
IF (v_Price = 0) THEN
FOR bom in SELECT bl.M_Product_ID AS M_ProductBOM_ID,
CASE WHEN bl.IsQtyPercentage = 'N' THEN bl.QtyBOM ELSE bl.QtyBatch/100 END AS BomQty , p.IsBOM
FROM PP_PRODUCT_BOM b
INNER JOIN M_PRODUCT p ON (p.M_Product_ID=b.M_Product_ID)
INNER JOIN PP_PRODUCT_BOMLINE bl ON (bl.PP_Product_BOM_ID=b.PP_Product_BOM_ID)
WHERE b.M_Product_ID = p_Product_ID
LOOP
v_ProductPrice := Bompricelimit (bom.M_ProductBOM_ID, p_PriceList_Version_ID);
v_Price := v_Price + (bom.BOMQty * v_ProductPrice);
END LOOP;
END IF;
--
RETURN v_Price;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
und Funktion in der Datenbank vorhanden ist Wie kann ich dieses Problem lösen mir bitte
Zeigen Sie uns die Funktion. – freakish
[bearbeiten] Sie Ihre Frage und zeigen Sie uns die ** complete ** 'create function' Anweisung (_formatted_ text bitte, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i- not-upload-images-of-code-auf-so-wenn-eine-Frage-Frage/285557 # 285557)) –
Wie kann ich mit Parameter aufrufen – Lina