Запускайте SQL-скрипт только в том случае, если выборка над таблицей до этого дает результат. Если это не дает результата, скрипт SQL не должен запускаться

Я хотел бы, чтобы сценарий SQL запускался только в том случае, если выбор команды SQL над таблицей дает результат.

Если это не дает результата, скрипт SQL не должен запускаться.

Будет ли это возможно сделать?


person T1rnanog    schedule 05.03.2013    source источник
comment
да, вы можете сделать это разными способами! как вы хотите сделать это, используя курсор или простой триггер, если?   -  person Thiyagu ATR    schedule 05.03.2013
comment
Вы пытаетесь условно запустить скрипт в SQL*Plus? Если это так, взгляните на этот метод: stackoverflow.com/a/11236186/409172   -  person Jon Heller    schedule 05.03.2013


Ответы (2)


Я мог бы помочь:

IF ( select count(1) from  ( _your selection_ ) a ) > 0 THEN
_RUN your script_;
END IF
person www    schedule 05.03.2013

это один из способов:

DECLARE
type t1
IS
  TABLE OF hr.employees.first_name%type;
  t11 t1;
BEGIN
  SELECT e.first_name bulk collect
  INTO t11
  FROM hr.employees e
  WHERE E.EMPLOYEE_ID=999;
  IF(t11.count!      =0) THEN
    FOR i           IN 1..t11.count/*here you can write your own query */
    LOOP
      dbms_output.put_line(t11(i));
    END LOOP;
  ELSE
    dbms_output.put_line('oh..ho..no rows selected' );
  END IF;
END;
/

любые разъяснения, пожалуйста, дайте мне знать ..

person Thiyagu ATR    schedule 05.03.2013