/ / C'è un modo per creare trigger di proprietà di SYS o quale sarà la soluzione per questo [duplicato] - oracle, plsql, oracle11g, trigger

C'è un modo per creare trigger di proprietà di SYS o quale sarà la soluzione per questo [duplicato] - oracle, plsql, oracle11g, trigger

Sto avendo un problema da creare grilletto Allego una foto del mio muggito cmd

inserisci la descrizione dell'immagine qui

Questo è il mio codice

CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON customers
FOR EACH ROW
WHEN (NEW.ID > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :NEW.salary - :OLD.salary;
dbms_output.put_line("Old salary " || :OLD.salary);
dbms_output.put_line("New salary " || :NEW.salary);
dbms_output.put_line("Salary difference " || :sal_diff);
END;
/

ERRORE

ORA-04089: impossibile creare trigger su oggetti di proprietà di SYS

quale sarà la soluzione possibile per questo o cosa farò ora, per favore dammi qualche suggerimento

risposte:

1 per risposta № 1

Penso che la tua tabella clienti sia stata creata dall'utente SYS.

Crea un utente usando sys come "MY_USER" e connettiti con esso, quindi crea la tua tabella clienti con MY_USER. E prova a creare il tuo innesco. Far cadere sys.customer tavolo.

Questo account può eseguire tutte le operazioni amministrativefunzioni. Tutta la base (sottostante) sono le tabelle e le viste per il dizionario dei dati del database memorizzato nello schema SYS. Queste tabelle di base e viste sono fondamentali per l'operazione di Oracle Database. Per mantenere l'integrità del dizionario dati, le tabelle nello schema SYS sono manipolate solo dal Banca dati. Non dovrebbero mai essere modificati da alcun utente o database amministratore. Non è necessario creare alcuna tabella nello schema SYS.

Secondo: https://docs.oracle.com/database/121/ADMQS/GUID-CF1CD853-AF15-41EC-BC80-61918C73FDB5.htm#ADMQS12003