Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализиране на таблица в Oracle, ако някоя стойност на полето е нула и определянето на тази актуализация е успешна

Може да се наложи да актуализирате конкретни полета на таблица или всички полета, ако техните стойности са нулеви, само в противен случай няма нужда да актуализирате полета. По-долу е показана примерната процедура за същата цел, написана в таблицата HR.Employees:CREATE OR REPLACE PROCEDURE HR.UpdateEmpIfNull ( PN_EMPLOYEE_ID В NUMBER, PV_FIRST_NAME В VARCHAR2, PV_LAST_NAME В VARCHAR2, PV_LAST_NAME В VARCHAR2, PV_LAST_NAME В VARCHAR2, PV_LAST_NAME IN VARCHAR2, PVCHARHIAR INDATE_2, PVCHARJPD INDATE_2, PVCHARJPD INDATE_2 VARCHAR2, PN_ЗАЛАТА В БРОЙ, PV_Успех ИЗХОД VARCHAR2)Е n_дължина NUMBER; n_length2 NUMBER;BEGIN SELECT LENGTH( FIRST_NAME || LAST_NAME || ИМЕЙЛ || PHONE_NUMBER || HIRE_DATE || JOB_ID || ЗАПЛАТА) В n_length ОТ HR.СЛУЖИТЕЛИ КЪДЕ EMPLOYEE_ID =PN_EMPLOY; АКТУАЛИЗАЦИЯ HR.СЛУЖИТЕЛИТЕ ЗАДАВАТ 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_NAME), DECOPH 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), ЗАПЛАТА =DECODE (ПЛАТА, pD_HIRE_DATE, NULL, pD_HIRE_DATE, HIRE_DATE), JOB_ID =ДЕКОДИРАНЕ (JOB_ID, NULL, pV_JOB_ID, JOB_ID), ЗАПЛАТА =ДЕКОДИРОВАНИЕ (ПЛАЩАЯ, pD_HEEEE, ENGLEYLOY, ENGEE, ENGLEYLAY, ENGEE /* Използвайки заявката по-долу, за да определим дали актуализацията е била успешна, не можем да използваме тук sql%rowcount или sql%found, за да определим, защото ако идентификационният номер на служителя е правилен, той винаги ще показва успешна актуализация, но трябва да определим дали има нулево поле стойността е актуализирана или не */ SELECT LENGTH( FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || ЗАПЛАТА) INTO n_length2 FROM HR.EMPLOYEES WHERE EMPLOYEE_ID =PN_EMPLOYEE_ID; АКО n_length2> n_length ТОГАВА --- Запазване на промените. COMMIT; Pv_Success :='Y'; ИНАЧЕ ОТКЛЮЧВАНЕ; pv_success :='N'; END IF;ИЗКЛЮЧЕНИЕ, КОГАТО ДРУГИ ТОГАВА Pv_Success :='N'; ВРЪЩАНЕ; КРАЙ;/
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавяне на име на схема към обект в Spring данни?

  2. 11gR2 Compression Advisor =Evil

  3. Промяна на паролата с Oracle SQL Developer

  4. Извикване на съхранена ПРОЦЕДУРА в Toad

  5. Актуализацията на SQL ще повлияе ли на нейната подзаявка по време на актуализацията?