PLSQL 26
Upd_target_state.sql By allan on 12th March 2026 08:42:56 AM
  1. WHENEVER oserror EXIT 99
  2.  
  3. -- Usage from SQL*Plus: @upd_target_state.sql <target> <state>
  4. -- Example: @upd_target_state.sql APP01 YES
  5.  
  6.   PRAGMA autonomous_transaction;
  7.   v_targetid targets.targetid%TYPE;
  8.   v_target   targets.target%TYPE;
  9.   v_state    targets.active%TYPE;
  10.   v_target := '&1';
  11.   v_state := '&2';
  12.  
  13.   IF v_state NOT IN ('YES', 'NO') THEN
  14.     raise_application_error(-20004, 'Invalid state: ' || v_state || '. Use YES or NO.');
  15.   END IF;
  16.  
  17.   SELECT targetid
  18.     INTO v_targetid
  19.     FROM targets
  20.    WHERE target = v_target;
  21.  
  22.   UPDATE targets
  23.      SET active = v_state
  24.    WHERE targetid = v_targetid;
  25.  
  26.   COMMIT;
  27.     ROLLBACK;
  28.     raise_application_error(-20001, 'Target not found: ' || v_target);
  29.     ROLLBACK;
  30.     raise_application_error(-20002, 'Multiple targets found for: ' || v_target);
  31.     ROLLBACK;
  32.     raise_application_error(
  33.       -20003,
  34.       'Failed to update target state for ' || v_target || ': ' || SQLERRM
  35.     );
  36. /
  37.  

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.