0
我有一個表用於導入一些數據。此表有場這樣的:導入完成PLSQL - 作爲參數解決方法的功能
- field_1
- field_2
- field_3
後,我所說的後處理過程,我必須做一些邏輯在這個領域(並且邏輯可能會因此而各不相同)並存儲在在線表格中。
這是一個可能的僞代碼:
DECLARE
rOnlineTable online_table%ROWTYPE;
FOR cur in (SELECT *
FROM import_table
WHERE state IS NULL)
LOOP
rOnlineTable.online_field_1 := handleField(/* here i would like to call a function that have the logic to handle cur.field_1*/);
rOnlineTable.online_field_2 := handleField(/* here i would like to call a function that have the logic to handle cur.field_2*/);
rOnlineTable.online_field_3 := handleField(/* here i would like to call a function that have the logic to handle cur.field_3*/);
INSERT INTO online_table VALUES rOnlineTable;
END LOOP;
這樣(我認爲)我可以改變只的處理方法的實現,如果在將來發生的事情會發生變化。或者我可以將其中一些處理函數替換爲其他字段(例如:明天field_1需要與field_3相同的邏輯)。
有一些解決方法可以做到這一點,或者可能是另一種更好的解決方案?
我不知道,我在這裏看到的問題。或者至少我不明白你問的問題。爲什麼不能創建一個採用'cur.field_1'類型參數的函數並返回一個類型爲'rOnlineTable.online_field_1'的值? – 2015-03-13 14:15:30
這些處理函數是否會在其他地方使用,或者代碼涉及冗長而複雜?如果是這樣,那麼通過一切手段使用一個功能。如果不是,但是,你所做的只是降低清晰度並增加複雜性。 ??? – 2015-03-15 17:18:28