Powered By Blogger

শনিবার, ৩০ মে, ২০২০

Calling procedure with out parameter

CREATE OR REPLACE PROCEDURE p_calculate_age (p_birth_date   IN     DATE,
                                             p_year            OUT NUMBER,
                                             p_month           OUT NUMBER,
                                             p_day             OUT NUMBER)
IS
BEGIN
   SELECT TRUNC (MONTHS_BETWEEN (SYSDATE, dob) / 12) YEAR,
          TRUNC (MOD (MONTHS_BETWEEN (SYSDATE, dob), 12)) MONTH,
          TRUNC (
               SYSDATE
             - ADD_MONTHS (
                  dob,
                    TRUNC (MONTHS_BETWEEN (SYSDATE, dob) / 12) * 12
                  + TRUNC (MOD (MONTHS_BETWEEN (SYSDATE, dob), 12))))
             DAY
     INTO p_year, p_month, p_day
     FROM (SELECT TO_DATE (TO_CHAR (p_birth_date, 'DDMMRRRR'), 'DDMMRRRR')
                     dob
             FROM DUAL);
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      p_year := 0;
      p_month := 0;
      p_day := 0;
   WHEN OTHERS
   THEN
      p_year := 0;
      p_month := 0;
      p_day := 0;
END p_calculate_age;

DECLARE
   y   NUMBER;
   m   NUMBER;
   d   NUMBER;
BEGIN
   p_calculate_age (p_birth_date,
                    y,
                    m,
                    d);
   DBMS_OUTPUT.put_line (y || ' Year' || m || ' Months' || d || ' Days');
END;

Procedure to calculate age.

CREATE OR REPLACE PROCEDURE p_calculate_age (p_birth_date   IN     DATE,
                                             p_year            OUT NUMBER,
                                             p_month           OUT NUMBER,
                                             p_day             OUT NUMBER)
IS
BEGIN
   SELECT TRUNC (MONTHS_BETWEEN (SYSDATE, dob) / 12) YEAR,
          TRUNC (MOD (MONTHS_BETWEEN (SYSDATE, dob), 12)) MONTH,
          TRUNC (
               SYSDATE
             - ADD_MONTHS (
                  dob,
                    TRUNC (MONTHS_BETWEEN (SYSDATE, dob) / 12) * 12
                  + TRUNC (MOD (MONTHS_BETWEEN (SYSDATE, dob), 12))))
             DAY
     INTO p_year, p_month, p_day
     FROM (SELECT TO_DATE (TO_CHAR (p_birth_date, 'DDMMRRRR'), 'DDMMRRRR')
                     dob
             FROM DUAL);
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      p_year := 0;
      p_month := 0;
      p_day := 0;
   WHEN OTHERS
   THEN
      p_year := 0;
      p_month := 0;
      p_day := 0;
END p_calculate_age;

Row-level “Add” icon using a virtual column (APEX-safe)

1️⃣ Enable Insert in the Interactive Grid IG → Attributes Edit → Allowed Add Row → Yes 2️⃣ Add a New Column (Icon column) Column...