Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: AFTER CREATE trigger help, please
ok - thanks
i edited the trigger to insert a row into a dummy table, just to see if it
works, and all works fine.
Now - the next piece.
I want this trigger to call a stored procedure that runs as an autonomous
txn and creates a public synonym for the newly-created table.
I've verified independently that the proc works (from the SQL*Plus command line) and I know now that the trigger is being called, based on the previous test.
so why wouldn't the public synonym be created?
THANKS!
Here's the text of the new trigger and procedure:
CREATE OR REPLACE procedure CREATE_SYNONYMS (
p_lwowner varchar2, p_objname varchar2, p_objtype varchar2) AS
pragma autonomous_transaction;
v_lwowner varchar2(30) := p_lwowner; v_objname varchar2(30) := p_objname; v_objtype varchar2(30) := p_objtype; v_sql varchar2(200); begin v_sql := 'create public synonym ' || v_objname || ' for ' || v_lwowner || '.' || v_objname; execute immediate (v_sql);
end;
/
CREATE OR REPLACE TRIGGER after_create_trg
after create
on lwdev.schema
begin
if sys.dictionary_obj_type='TABLE'
OR sys.dictionary_obj_type='SEQUENCE' then begin create_synonyms ('lwdev', sys.dictionary_obj_name, sys.dictionary_obj_type); exception when others then null; end;
end if;
end;
/
-----Original Message-----
Sent: Friday, May 10, 2002 1:14 PM
To: ORACLE-L_at_fatcity.com
Cc: Bill.Magaliff_at_lendware.com
Bill,
A trigger cannot display output.
Where would it go? A trigger does not run in an interactive session, it runs in the database independently, regardless of the presence or absence of a SQL Plus session.
Jared
"Magaliff, Bill" <Bill.Magaliff_at_lendware.com>
Sent by: root_at_fatcity.com
05/10/2002 09:08 AM
Please respond to ORACLE-L
To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com> cc: Subject: AFTER CREATE trigger help, please
I'm creating an AFTER CREATE ddl trigger:
CREATE OR REPLACE TRIGGER after_create_trg
after create
on lwdev.schema
begin
if sys.dictionary_obj_type='TABLE'
OR sys.dictionary_obj_type='SEQUENCE'then
begin dbms_output.put_line ('TEST'); dbms_output.put_line(sys.dictionary_obj_name || ' , ' ||
exception when others then dbms_output.put_line('ERROR');
end;
end;
/
Trigger created as user LWDEV
I have serverout set to ON, but I get nothing when creating a new table .
.
.
any ideas, please??
thanks, all
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Magaliff, Bill INET: Bill.Magaliff_at_lendware.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Magaliff, Bill INET: Bill.Magaliff_at_lendware.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Fri May 10 2002 - 13:53:22 CDT
![]() |
![]() |