create function "stock_dividend" (stock_code text) returns
table
(
activity_date date,
cash_dividend float8,
stock_dividend_from_retained_earnings float8,
stock_dividend_from_capital_reserve float8,
stock_dividend float8,
total_dividend float8,
profit_sharing_percentage float8
)
as
$$
select
activity_date,
cash_dividend,
stock_dividend_from_retained_earnings,
stock_dividend_from_capital_reserve,
stock_dividend,
total_dividend,
profit_sharing_percentage
from StockDividend
where stock_code = $1
order by activity_date desc
$$
language SQL;
ALTER FUNCTION stock_dividend(text) OWNER TO stocktotal;
原本 JasperReports 夾長長的 query,現在只要 select * from stock_dividend() 就可以了。
最近重翻 Joel Spolsky 舊文:The Law of Leaky Abstractions,All non-trivial abstractions, to some degree, are leaky. 抽象化無法隱藏所有細節。但上面的搬動,有助於管理資料庫,我把所有 database 的東西集中到 database 裡頭,中央化管理,可以顧此顧彼。
又重新把抽象洩漏法則套用到新聞。幹!就是在講這回事。好唄,新聞並不能簡化我們的生活,新聞的確簡化我們對社會的了解,但要真實了解社會,還得看進去才是。
系統一 VS 系統二。
沒有留言:
張貼留言