Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Aktualizowanie tabeli w Oracle, jeśli jakakolwiek wartość pola ma wartość Null i ustalenie, że aktualizacja się powiodła

Może zajść potrzeba zaktualizowania poszczególnych pól tabeli lub wszystkich pól, jeśli ich wartości mają wartość NULL, w przeciwnym razie nie ma potrzeby aktualizowania żadnego pola. Poniżej znajduje się przykładowa procedura do tego samego celu napisana w tabeli HR.Employees:PROCEDURA UTWÓRZ LUB ZAMIEŃ HR.UpdateEmpIfNull ( PN_EMPLOYEE_ID W LICZBIE, PV_FIRST_NAME W VARCHAR2, PV_LAST_NAME W VARCHAR2, PV_EMAIL W VARCHAR2, W PVD PV_PHONE W NUMERZE VARCHAR2, PN_SALARY IN NUMBER, PV_Success OUT VARCHAR2)IS n_length NUMBER; n_length2 NUMER;BEGIN WYBIERZ DŁUGOŚĆ( IMIĘ || NAZWISKO || E-MAIL || NUMER_TELEFONU || DATA_ZATRUDNIENIA || ID_STANOWIENIA || WYNAGRODZENIE) INTO n_length OD HR.PRACOWNIKÓW GDZIE ID_PRACOWNIKA =PN_ID_PRACOWNIKA; AKTUALIZACJA HR.EMPLOYEES SET FIRST_NAME =DECODE (FIRST_NAME, NULL, PV_FIRST_NAME, FIRST_NAME), LAST_NAME =DECODE (LAST_NAME, NULL, pv_LAST_NAME, LAST_NAME), EMAIL =DECODE (EMAIL, NULL, pv_EMAIL, EMAIL, NUMBER), NULL, pv_PHONE_NUMBER, PHONE_NUMBER), HIRE_DATE =DECODE (HIRE_DATE, NULL, pD_HIRE_DATE, HIRE_DATE), JOB_ID =DECODE (JOB_ID, NULL, pV_JOB_ID, JOB_ID), SALARY =DECODE (SALARY, NULL, pN_SALEEPLARY_, SALARY =/* Używając poniższego zapytania, aby określić, czy aktualizacja się powiodła, nie możemy użyć tutaj sql%rowcount lub sql%found, aby określić, ponieważ jeśli identyfikator pracownika jest poprawny, zawsze pokaże pomyślną aktualizację, ale musimy określić, czy jakieś pole puste wartość została zaktualizowana lub nie */ SELECT LENGTH( FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || WYNAGRODZENIE) NA n_długość2 OD HR.EMPLOYEES GDZIE PRACOWNIK_ID =PN_EMPLOYEE_ID; JEŻELI n_długość2> n_długość TO --- Zapisz zmiany. POPEŁNIAĆ; Pv_Sukces :='T'; INNE WYCOFANIE; pv_success :='N'; KONIEC JEŻELI; WYJĄTEK GDY INNI TO Pv_Success :='N'; WYCOFANIE;KONIEC;/
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj wyniki zapytania do pliku XML przy użyciu SQLcl (Oracle)

  2. Znajdowanie liczby znaków i cyfr w ciągu

  3. PRZYPADEK vs. DEKODOWANIE

  4. Wyjaśnij plan kosztowy Punkt bólu

  5. Jaka jest domyślna nazwa ograniczenia w Oracle?