Как показать сохраненный триггер в SQL? - PullRequest
0 голосов
/ 25 апреля 2019

Я работал над триггером, теперь я хочу внести некоторые изменения и увидеть код, можно ли посмотреть, если да, то как? триггер работает нормально, есть ли команда в plsql, где я могу проверить код? Я использую командную строку sql

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

GUI показывал бы это красивее, но SQL * Plus может делать это также. Вот пример:

Создание примера триггера:

SQL> create or replace trigger trg_update_percentage
  2    after update or insert on item
  3    for each row
  4  begin
  5    insert into students_percentage (sid, total_per)
  6      select sid, total from student_report
  7      where sid = :new.sid;
  8  end;
  9  /

Trigger created.

Получить описание от USER_TRIGGERS; поскольку тело хранится в столбце типа данных LONG, следует использовать set long (иначе вы не увидите полный код).

SQL> set long 4000
SQL> select trigger_name, trigger_type, triggering_event, table_name, trigger_body
  2  from user_Triggers where trigger_name = upper('trg_update_percentage');

TRIGGER_NAME              TRIGGER_TYPE         TRIGGERING_EVENT     TABLE_NAME
------------------------- -------------------- -------------------- ----------
TRIGGER_BODY
--------------------------------------------------------------------------------
TRG_UPDATE_PERCENTAGE     AFTER EACH ROW       INSERT OR UPDATE     ITEM
begin
  insert into students_percentage (sid, total_per)
    select sid, total from student_report
    where sid = :new.sid;
end;


SQL>
0 голосов
/ 25 апреля 2019

user_triggers (или all_triggers) имеют исходный код триггера. Аналогично, user_source (или all_source) имеют другой исходный код.

Общее правило, которое я соблюдаю, - всегда всегда иметь файловую структуру, в которой я храню источник. Правило 100%, что никто в команде не может нарушать никогда. Затем я рассматриваю процесс создания триггера, эквивалентного «компиляции» в традиционном программировании. В этой модели у вас будет дерево каталогов, например

<project>/src
<project>/src/plsql
<project>/src/plsql/<folder for each package>/<files>
<project>/src/plsql/<folder for each table>/<triggers>

А затем «изменение» просто меняет их здесь и снова «компилирует» (компиляция подразумевает запуск их через sqlplus - или, что еще лучше, создание сценария оболочки.

В этой модели вы также можете легко включить несколько доступных инструментов контроля версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...