Dans Oracle SQL Developer, il existe une option pour générer un package d'API de table avec lequel vous pouvez facilement gérer l'insertion, la mise à jour et la suppression d'une table. De plus, vous pouvez modifier davantage pour ajouter les modifications requises.
Étapes pour générer un package d'API de table dans Oracle SQL Developer (version 18.1)
- Dans Oracle SQL Developer, connectez-vous à l'utilisateur de la base de données et, sur le côté gauche (panneau de connexion), développez le nœud de la table.
- Sélectionnez le tableau et faites un clic droit dessus pour ouvrir le menu contextuel.
- Dans le menu, sélectionnez l'API Générer une table option et cliquez dessus.
- Il générera le script de package pour la table sélectionnée et s'ouvrira dans le côté droit de l'éditeur SQL.
- Vous pouvez maintenant exécuter le script pour créer le package dans votre schéma de base de données.
Vous pouvez créer le package DML en ligne en cliquant sur ce lien : Créer un package DML en ligne
Vous trouverez ci-dessous un exemple de script de package pour l'API Table. Généré à partir de la table Employé du schéma RH.
Exemple de script d'API de tableau
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;
Comment utiliser l'API Table ?
Supposons maintenant que vous souhaitiez supprimer un enregistrement d'employé de la table Employés, puis utilisez la procédure API du package EMPLOYEES_TAPI.DEL comme suit :
DECLARE P_EMPLOYEE_ID NUMBER; BEGIN P_EMPLOYEE_ID := 105; EMPLOYEES_TAPI.DEL ( P_EMPLOYEE_ID ); COMMIT; END;
Voir aussi :
- Créer une table dans Oracle SQL Developer
-
Comment effectuer des mises à niveau progressives pour MySQL
-
Définition et identification des objectifs de ligne dans les plans d'exécution
-
Comment créer une table imbriquée à l'aide du type de données défini par l'utilisateur dans la base de données Oracle
-
Utilisation des extraits de code Oracle JDeveloper avec MySQL