Learn ORACLE-FORMS-PLSQL with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Calculate Compound Interest in PL/SQL
DECLARE
principal NUMBER := 1000;
rate NUMBER := 0.05;
periods NUMBER := 10;
amount NUMBER;
BEGIN
amount := principal * POWER(1 + rate, periods);
DBMS_OUTPUT.PUT_LINE('Compound Interest Amount: ' || amount);
END;
Compute compound interest for a principal amount over periods with a given rate.
2
Compute Portfolio Return
DECLARE
weights SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.6, 0.4);
returns SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.02, 0.03);
pReturn NUMBER := 0;
BEGIN
FOR i IN 1..weights.COUNT LOOP
pReturn := pReturn + weights(i) * returns(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Portfolio Return: ' || pReturn);
END;
Calculate weighted return for a simple portfolio of assets.
3
Calculate Forward Price
DECLARE
S NUMBER := 100;
r NUMBER := 0.05;
T NUMBER := 1;
F NUMBER;
BEGIN
F := S * EXP(r * T);
DBMS_OUTPUT.PUT_LINE('Forward Price: ' || F);
END;
Compute the forward price given spot, rate, and time to maturity.
4
Discount Future Cash Flows
DECLARE
cashflows SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(100,100,100);
r NUMBER := 0.05;
pv NUMBER := 0;
BEGIN
FOR i IN 1..cashflows.COUNT LOOP
pv := pv + cashflows(i) / POWER(1 + r, i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Present Value: ' || pv);
END;
Compute present value of an array of future cash flows.
5
Calculate Portfolio Variance
DECLARE
weights SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.6,0.4);
cov_matrix SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.0004,0.0002,0.0002,0.0003);
portfolioVariance NUMBER;
BEGIN
portfolioVariance := weights(1)*weights(1)*0.0004 + weights(1)*weights(2)*0.0002
+ weights(2)*weights(1)*0.0002 + weights(2)*weights(2)*0.0003;
DBMS_OUTPUT.PUT_LINE('Portfolio Variance: ' || portfolioVariance);
END;
Compute portfolio variance given weights and covariance matrix.
6
Compute Sharpe Ratio
DECLARE
returns SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.02,0.03,0.015,0.01);
risk_free NUMBER := 0.01;
meanReturn NUMBER := 0;
BEGIN
FOR i IN 1..returns.COUNT LOOP
meanReturn := meanReturn + returns(i);
END LOOP;
meanReturn := meanReturn / returns.COUNT;
DBMS_OUTPUT.PUT_LINE('Sharpe Ratio: ' || (meanReturn - risk_free)/0.008);
END;
Calculate the Sharpe ratio given returns and risk-free rate.
7
Monte Carlo Simulation for Option Pricing
DECLARE
S0 NUMBER := 100;
K NUMBER := 100;
r NUMBER := 0.05;
sigma NUMBER := 0.2;
T NUMBER := 1;
N NUMBER := 100000;
optionPrice NUMBER;
BEGIN
-- Random simulation logic omitted for brevity
DBMS_OUTPUT.PUT_LINE('Monte Carlo Option Price: ' || optionPrice);
END;
Estimate European option price using Monte Carlo simulation (simplified).
8
Compute Correlation Between Two Assets
DECLARE
returns1 SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.02,0.01,0.03);
returns2 SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.01,0.015,0.02);
correlation NUMBER;
BEGIN
-- Correlation calculation simplified
DBMS_OUTPUT.PUT_LINE('Correlation: ' || correlation);
END;
Calculate correlation coefficient between two return series.
9
Yield Curve Construction
DECLARE
maturities SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(1,2,3,4,5);
prices SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST(0.99,0.975,0.96,0.945,0.93);
zero_rates SYS.ODCINUMBERLIST := SYS.ODCINUMBERLIST();
BEGIN
FOR i IN 1..maturities.COUNT LOOP
zero_rates.EXTEND;
zero_rates(i) := -LN(prices(i)) / maturities(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Zero Rates:');
FOR i IN 1..zero_rates.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(zero_rates(i));
END LOOP;
END;
Build a zero-coupon yield curve from bond prices.
10
Present Value of an Annuity
DECLARE
payment NUMBER := 100;
rate NUMBER := 0.05;
n_periods NUMBER := 5;
pv NUMBER := 0;
BEGIN
FOR i IN 1..n_periods LOOP
pv := pv + payment / POWER(1 + rate, i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Present Value of Annuity: ' || pv);
END;
Calculate present value of a fixed annuity.