En Oracle SQL Developer, hay una opción para generar un paquete API de tabla con el que puede administrar fácilmente la inserción, actualización y eliminación de una tabla. Además, puede modificar más para agregar los cambios requeridos.
Pasos para generar un paquete API de tabla en Oracle SQL Developer (versión 18.1)
- En Oracle SQL Developer, conéctese al usuario de la base de datos y en el lado izquierdo (panel de conexión) expanda el nodo de la tabla.
- Seleccione la tabla y haga clic derecho sobre ella para abrir el menú contextual.
- En el menú, seleccione Generar tabla API opción y haga clic en ella.
- Generará el script del paquete para la tabla seleccionada y se abrirá en el lado derecho del editor de SQL.
- Ahora puede ejecutar el script para crear el paquete en el esquema de su base de datos.
Puede crear el paquete DML en línea, consulte este enlace: Crear paquete DML en línea
A continuación se muestra un script de paquete de ejemplo para Table API. Generado a partir de la tabla Empleado del esquema HR.
Script de API de tabla de ejemplo
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;
¿Cómo usar la API de tabla?
Ahora suponga que desea eliminar un registro de empleado de la tabla Empleados, luego use el procedimiento API del paquete EMPLOYEES_TAPI.DEL de la siguiente manera:
DECLARE P_EMPLOYEE_ID NUMBER; BEGIN P_EMPLOYEE_ID := 105; EMPLOYEES_TAPI.DEL ( P_EMPLOYEE_ID ); COMMIT; END;
Ver también:
- Crear tabla en Oracle SQL Developer