-1
我想知道是否有一些方法來擺脫這樣的代碼:刪除ELSEIF-ELSEIF ..在PostgreSQL函數
CREATE FUNCTION parent_function (json json, OUT response_status integer, OUT response json) RETURNS record
LANGUAGE plpgsql
AS $$
DECLARE
BEGIN
if <condition> then
<function_call1(json,response_status,response)>;
return;
elsif <condition> then
<function_call2(json,response_status,response)>;
return;
elsif <condition> then
<function_call3(json,response_status,response)>;
return;
end if;
END;
$$
我想移動到這些條件不同的功能,其中我想基於什麼函數返回(有一些輸出參數我需要)終止父函數,而不會拋出異常,並捕獲它們在父函數?
我想才達到這樣的代碼:
CREATE FUNCTION parent_function (json json, OUT response_status integer, OUT response json) RETURNS record
LANGUAGE plpgsql
AS $$
DECLARE
BEGIN
<check_function1(json,response_status,response)>;
<check_function2(json,response_status,response)>;
<check_function3(json,response_status,response)>;
END;
$$
調用從功能設置終止進一步的處理信息和輸出參數後。它有某種可能性嗎?
感謝, 盧卡斯
例如, '如果或或則返回;結束如果;'? (他們需要返回'boolean'雖然) –
pozs
這對我來說還不清楚。什麼是父母功能? ''與''有什麼關係? –
嘿傢伙,謝謝你的回答。我已經修改了一些我的情況,以便更清楚。我有一個從函數返回的參數。我們的項目中有很多if-elseif語句。我的目標是通過將這些條件移動到單獨的函數中使parent_function更易讀,並且如果一個條件失敗,它不應該進入下一個函數。 –