sql >> Database >  >> RDS >> Oracle

Een tabel bijwerken in Oracle als een veldwaarde Null is en bepalen of de update succesvol is

Mogelijk moet u update de specifieke velden van een tabel of alle velden als hun waarden null zijn, anders is het niet nodig om een ​​veld bij te werken. Hieronder vindt u de voorbeeldprocedure voor hetzelfde doel die is geschreven in de tabel HR.Employees:CREATE OR REPLACE PROCEDURE HR.UpdateEmpIfNull ( PN_EMPLOYEE_ID IN NUMBER, PV_FIRST_NAME IN VARCHAR2, PV_LAST_NAME IN VARCHAR2, PV_EMAIL IN VARCHAR2, PV_PHONE_NUMBER_IN VARCHAR2, PV_PHONE_NUMBER VARCHAR2, PN_SALARY IN NUMBER, PV_Succes OUT VARCHAR2) IS n_length NUMBER; n_length2 NUMBER;BEGIN SELECTEER LENGTE( FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || SALARY) IN n_length VAN HR.WERKNEMERS WAAR WERKNEMER_ID =PN_EMPLOYEE_ID; UPDATE 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_EMBER PHONE_EMAIL), DECODE 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 =DECOULLERE, SALARIS /* Met behulp van onderstaande query om te bepalen of de update succesvol was, kunnen we hier geen sql%rowcount of sql%found gebruiken om te bepalen, omdat als de werknemers-ID correct is, deze altijd een succesvolle update zal tonen, maar we moeten bepalen of er een null-veld is waarde is bijgewerkt of niet */ SELECT LENGTH( FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || SALARIS) NAAR n_length2 VAN HR.WERKNEMERS WAAR WERKNEMER_ID =PN_WERKNEMER_ID; IF n_length2> n_length THEN --- Wijzigingen opslaan. VERBINDEN; Pv_Succes :='Y'; ANDERS ROLLBACK; pv_succes :='N'; EINDE ALS;UITZONDERING WANNEER ANDEREN DAN Pv_Success :='N'; ROLLBACK;END;/
  1. Oracle RAC N+1 redundantie

  2. Lijst van alle indexen in een SQLite-database

  3. Zoek de partitioneringskolom voor een gepartitioneerde tabel in SQL Server (T-SQL)

  4. Postgres recursieve query met row_to_json