I Oracle SQL Developer finns det ett alternativ att generera ett Table API-paket med vilket du enkelt kan hantera infoga, uppdatera och ta bort för en tabell. Vidare kan du ändra mer för att lägga till dina nödvändiga ändringar.
Steg för att generera ett tabell-API-paket i Oracle SQL Developer (version 18.1)
- I Oracle SQL Developer, anslut till databasanvändaren och expandera tabellnoden på vänster sida (anslutningspanelen).
- Välj tabellen och högerklicka på den för att öppna genvägsmenyn.
- Välj Generera tabell-API på menyn alternativet och klicka på det.
- Det kommer att generera paketskriptet för den valda tabellen och öppnas i SQL-redigerarens högra sida.
- Nu kan du köra skriptet för att skapa paketet i ditt databasschema.
Du kan skapa DML-paketet online, kolla den här länken: Skapa DML-paket online
Nedan finns ett exempel på paketskript för Table API. Genereras från HR-schemats Employee-tabell.
Exempel på tabell API-skript
CREATE OR REPLACE PACKAGE EMPLOYEES_tapi IS TYPE EMPLOYEES_tapi_rec IS RECORD ( JOB_ID EMPLOYEES.JOB_ID%TYPE, EMPLOYEE_ID EMPLOYEES.EMPLOYEE_ID%TYPE, SALARY EMPLOYEES.SALARY%TYPE, HIRE_DATE EMPLOYEES.HIRE_DATE%TYPE, DEPARTMENT_ID EMPLOYEES.DEPARTMENT_ID%TYPE, LAST_NAME EMPLOYEES.LAST_NAME%TYPE, EMAIL EMPLOYEES.EMAIL%TYPE, PHONE_NUMBER EMPLOYEES.PHONE_NUMBER%TYPE, FIRST_NAME EMPLOYEES.FIRST_NAME%TYPE, COMMISSION_PCT EMPLOYEES.COMMISSION_PCT%TYPE, MANAGER_ID EMPLOYEES.MANAGER_ID%TYPE ); TYPE EMPLOYEES_tapi_tab IS TABLE OF EMPLOYEES_tapi_rec; -- insert PROCEDURE ins ( p_JOB_ID IN EMPLOYEES.JOB_ID%TYPE, p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE, p_SALARY IN EMPLOYEES.SALARY%TYPE DEFAULT NULL, p_HIRE_DATE IN EMPLOYEES.HIRE_DATE%TYPE, p_DEPARTMENT_ID IN EMPLOYEES.DEPARTMENT_ID%TYPE DEFAULT NULL, p_LAST_NAME IN EMPLOYEES.LAST_NAME%TYPE, p_EMAIL IN EMPLOYEES.EMAIL%TYPE, p_PHONE_NUMBER IN EMPLOYEES.PHONE_NUMBER%TYPE DEFAULT NULL, p_FIRST_NAME IN EMPLOYEES.FIRST_NAME%TYPE DEFAULT NULL, p_COMMISSION_PCT IN EMPLOYEES.COMMISSION_PCT%TYPE DEFAULT NULL, p_MANAGER_ID IN EMPLOYEES.MANAGER_ID%TYPE DEFAULT NULL); -- update PROCEDURE upd ( p_JOB_ID IN EMPLOYEES.JOB_ID%TYPE, p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE, p_SALARY IN EMPLOYEES.SALARY%TYPE DEFAULT NULL, p_HIRE_DATE IN EMPLOYEES.HIRE_DATE%TYPE, p_DEPARTMENT_ID IN EMPLOYEES.DEPARTMENT_ID%TYPE DEFAULT NULL, p_LAST_NAME IN EMPLOYEES.LAST_NAME%TYPE, p_EMAIL IN EMPLOYEES.EMAIL%TYPE, p_PHONE_NUMBER IN EMPLOYEES.PHONE_NUMBER%TYPE DEFAULT NULL, p_FIRST_NAME IN EMPLOYEES.FIRST_NAME%TYPE DEFAULT NULL, p_COMMISSION_PCT IN EMPLOYEES.COMMISSION_PCT%TYPE DEFAULT NULL, p_MANAGER_ID IN EMPLOYEES.MANAGER_ID%TYPE DEFAULT NULL); -- delete PROCEDURE del (p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE); END EMPLOYEES_tapi; / CREATE OR REPLACE PACKAGE BODY EMPLOYEES_tapi IS -- insert PROCEDURE ins ( p_JOB_ID IN EMPLOYEES.JOB_ID%TYPE, p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE, p_SALARY IN EMPLOYEES.SALARY%TYPE DEFAULT NULL, p_HIRE_DATE IN EMPLOYEES.HIRE_DATE%TYPE, p_DEPARTMENT_ID IN EMPLOYEES.DEPARTMENT_ID%TYPE DEFAULT NULL, p_LAST_NAME IN EMPLOYEES.LAST_NAME%TYPE, p_EMAIL IN EMPLOYEES.EMAIL%TYPE, p_PHONE_NUMBER IN EMPLOYEES.PHONE_NUMBER%TYPE DEFAULT NULL, p_FIRST_NAME IN EMPLOYEES.FIRST_NAME%TYPE DEFAULT NULL, p_COMMISSION_PCT IN EMPLOYEES.COMMISSION_PCT%TYPE DEFAULT NULL, p_MANAGER_ID IN EMPLOYEES.MANAGER_ID%TYPE DEFAULT NULL) IS BEGIN INSERT INTO EMPLOYEES (JOB_ID, EMPLOYEE_ID, SALARY, HIRE_DATE, DEPARTMENT_ID, LAST_NAME, EMAIL, PHONE_NUMBER, FIRST_NAME, COMMISSION_PCT, MANAGER_ID) VALUES (p_JOB_ID, p_EMPLOYEE_ID, p_SALARY, p_HIRE_DATE, p_DEPARTMENT_ID, p_LAST_NAME, p_EMAIL, p_PHONE_NUMBER, p_FIRST_NAME, p_COMMISSION_PCT, p_MANAGER_ID); END; -- update PROCEDURE upd ( p_JOB_ID IN EMPLOYEES.JOB_ID%TYPE, p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE, p_SALARY IN EMPLOYEES.SALARY%TYPE DEFAULT NULL, p_HIRE_DATE IN EMPLOYEES.HIRE_DATE%TYPE, p_DEPARTMENT_ID IN EMPLOYEES.DEPARTMENT_ID%TYPE DEFAULT NULL, p_LAST_NAME IN EMPLOYEES.LAST_NAME%TYPE, p_EMAIL IN EMPLOYEES.EMAIL%TYPE, p_PHONE_NUMBER IN EMPLOYEES.PHONE_NUMBER%TYPE DEFAULT NULL, p_FIRST_NAME IN EMPLOYEES.FIRST_NAME%TYPE DEFAULT NULL, p_COMMISSION_PCT IN EMPLOYEES.COMMISSION_PCT%TYPE DEFAULT NULL, p_MANAGER_ID IN EMPLOYEES.MANAGER_ID%TYPE DEFAULT NULL) IS BEGIN UPDATE EMPLOYEES SET JOB_ID = p_JOB_ID, SALARY = p_SALARY, HIRE_DATE = p_HIRE_DATE, DEPARTMENT_ID = p_DEPARTMENT_ID, LAST_NAME = p_LAST_NAME, EMAIL = p_EMAIL, PHONE_NUMBER = p_PHONE_NUMBER, FIRST_NAME = p_FIRST_NAME, COMMISSION_PCT = p_COMMISSION_PCT, MANAGER_ID = p_MANAGER_ID WHERE EMPLOYEE_ID = p_EMPLOYEE_ID; END; -- del PROCEDURE del (p_EMPLOYEE_ID IN EMPLOYEES.EMPLOYEE_ID%TYPE) IS BEGIN DELETE FROM EMPLOYEES WHERE EMPLOYEE_ID = p_EMPLOYEE_ID; END; END EMPLOYEES_tapi;
Hur använder man Table API?
Anta nu att du vill ta bort en anställd post från tabellen Anställda, använd sedan paketets API-procedure EMPLOYEES_TAPI.DEL enligt följande:
DECLARE P_EMPLOYEE_ID NUMBER; BEGIN P_EMPLOYEE_ID := 105; EMPLOYEES_TAPI.DEL ( P_EMPLOYEE_ID ); COMMIT; END;
Se även:
- Skapa tabell i Oracle SQL Developer