I have created a interactive grid in oracle apex application using two tables (dhj_employee_master and st_tni_master) and st_tni_master has no data in it.
SQL query for interactive grid:
DHJ_EMPLOYEE_MASTER.EMPH_CD as EMPH_CD,
DHJ_EMPLOYEE_MASTER.EMPH_EMP_NAME as EMPH_EMP_NAME,
DHJ_EMPLOYEE_MASTER.SEC_DESC as SEC_DESC,
ST_TNI_MASTER.TNI_DETAILS as TNI_DETAILS,
ST_TNI_MASTER.YEAR as YEAR
FROM
DHJ_EMPLOYEE_MASTER
LEFT JOIN
ST_TNI_MASTER
ON
DHJ_EMPLOYEE_MASTER.EMPH_CD = ST_TNI_MASTER.EMP_CODE
WHERE
DHJ_EMPLOYEE_MASTER.SEC_DESC = :P18_DEPARTMENT
In this EMPH_CD,EMPH_EMPH_NAME,SEC_DESC are columns of dhj_employee_master. Now TNI_DETAILS and YEAR columns have no data and can be edited.
So, to save the all the data in st_tni_master i wrote a PL/SQL code:
-- Merge statement to update or insert based on EMP_CODE and YEAR
MERGE INTO ST_TNI_MASTER t
USING (
SELECT :EMPH_CD AS emp_code,
:EMPH_EMPH_NAME AS emp_name,
:YEAR AS year,
:TNI AS tni_details
FROM dual
) d
ON (t.EMP_CODE = d.emp_code AND t.YEAR = d.year)
WHEN MATCHED THEN
UPDATE SET
t.EMP_NAME = d.emp_name,
t.YEAR = d.year,
t.TNI_DETAILS = d.tni_details
WHEN NOT MATCHED THEN
INSERT (EMP_CODE, EMP_NAME, YEAR, TNI_DETAILS)
VALUES (d.emp_code, d.emp_name, d.year, d.tni_details);
-- Handling different row statuses (Create, Update, Delete)
CASE :APEX$ROW_STATUS
WHEN 'C' THEN
INSERT INTO ST_TNI_MASTER (EMP_CODE, EMP_NAME, YEAR, TNI_DETAILS)
VALUES (:EMPH_CD, :EMPH_EMPH_NAME, :YEAR, :TNI);
WHEN 'U' THEN
UPDATE ST_TNI_MASTER
SET
EMP_NAME = :EMPH_EMPH_NAME,
YEAR = :YEAR,
TNI_DETAILS = :TNI
WHERE ROWID = :ROWID;
WHEN 'D' THEN
DELETE FROM ST_TNI_MASTER
WHERE ROWID = :ROWID;
END CASE;
-- Commit changes
COMMIT;
EXCEPTION
WHEN OTHERS THEN
-- Raise application error with SQL error message
RAISE_APPLICATION_ERROR(-20010, SQLERRM);
END;
So that when EMP_CODE of st_tni_master has no match to EMPH_CD of dhj_employee_master then it will create the data entry in the st_tni_master. After clicking save button the columns which edited vanishes and page also says changes saved but in the table st_tni_master no data entry is made. Can someone guide me how to do it??
Trying to sava data from dhj_employee_master and edited columns of st_tni-Master in st_tni_master finally.
Rohan Mathur is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.