sql >> Database teknologi >  >> RDS >> Oracle

Hvordan genereres tabel API-pakke i Oracle SQL Developer?

I Oracle SQL Developer er der mulighed for at generere en Table API-pakke, som du nemt kan administrere indsættelse, opdatering og sletning af en tabel med. Yderligere kan du ændre flere for at tilføje dine nødvendige ændringer.

Trin til at generere en tabel API-pakke i Oracle SQL Developer (version 18.1)

  1. I Oracle SQL Developer skal du oprette forbindelse til databasebrugeren og i venstre side (forbindelsespanel) udvide tabelnoden.
  2. Vælg tabellen, og højreklik på den for at åbne genvejsmenuen.
  3. Vælg Generer tabel API i menuen og klik på den.
  4. Det genererer pakkescriptet for den valgte tabel og åbner i højre side af SQL-editoren.
  5. Nu kan du udføre scriptet for at oprette pakken i dit databaseskema.

Du kan oprette DML-pakken online, tjek dette link: Create DML Package Online

Nedenfor er et eksempel på et pakkescript til Table API. Genereret fra HR-skemaets medarbejdertabel.

Eksempel på tabel API-script

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;

Hvordan bruger man Table API?

Antag nu, at du vil slette en medarbejderpost fra tabellen Medarbejdere, og brug derefter pakke-API-proceduren EMPLOYEES_TAPI.DEL som følger:

DECLARE 
  P_EMPLOYEE_ID NUMBER;

BEGIN 
  P_EMPLOYEE_ID := 105;

  EMPLOYEES_TAPI.DEL ( P_EMPLOYEE_ID );
  COMMIT; 
END;

Se også:

  • Opret tabel i Oracle SQL Developer
  1. Afrunding til 2 decimaler i SQL

  2. INDSÆT en SELECT GROUP BY:flere målkolonner end udtryksfejl

  3. Sådan overføres et array til en lagret SQL Server-procedure

  4. PostgreSQL:Seks ikke-så-lette stykker