Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- create or replace trigger creator_trigger
- after create on schema
- begin
- execute immediate 'create or replace trigger ' || ora_dict_obj_name || '_uniq_trigger ' ||
- 'before insert or update on ' || ora_dict_obj_name || ' ' ||
- 'for each row' || ' ' ||
- 'declare
- TYPE column_ref_cursor IS REF CURSOR;
- col_cur column_ref_cursor;
- col_rec varchar2(100);
- t_name varchar2(250) := ' || ora_dict_obj_name || '; ' ||
- 'column_statement varchar2(250) := ''select column_name from all_tab_columns where owner=''STABOL'' and table_name = '' || chr(39) || t_name || chr(39);
- inserted_val varchar2(500);
- can_insert boolean := true;
- cnt number(4) := 0;
- query_statement varchar2(300);
- begin
- open col_cur for column_statement;
- loop
- fetch col_cur into col_rec;
- exit when col_cur%NOTFOUND;
- execute immediate ''inserted_val := :NEW.'' || col_req;
- query_statement := ''select count(*) from '' || '' stabol.'' || t_name ||
- '' where '' || col_rec || '' = '' || chr(39) || inserted_val || chr(39);
- execute immediate query_statement into cnt;
- if cnt != 0 then
- can_insert := false;
- exit;
- end if;
- end loop;
- CLOSE col_cur;
- if can_insert = false then
- raise_application_error (-20000,''row already exists'');
- end if;
- end;';
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement