Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Użyj v('APP_USER') jako wartości domyślnej dla kolumny w Oracle Apex

Istnieją inne opcje niż V('APP_USER'). Od Apex 5, APP_USER jest przechowywany w sys_context i jest o wiele bardziej wydajny niż funkcja V(). Jest dostępny jako SYS_CONTEXT('APEX$SESSION','APP_USER') .

Działa również jako wartość domyślna dla tabel:

create table test_table
(col_1 VARCHAR2(100) DEFAULT SYS_CONTEXT('APEX$SESSION','APP_USER'));

Table TEST_TABLE created.

Biorąc to pod uwagę, najlepszą praktyką dotyczącą kolumn audytu jest wyzwalacz, który wypełnia 4 kolumny audytu (jak sugeruje @Littlefoot). Zajrzyj do quicksql (w SQL Workshop> Utilities lub na livesql.oracle.com). Możesz wygenerować wyzwalacze, jeśli ustawisz „include Audit Columns” i „Apex Enabled”. Przykładem takiego wygenerowanego wyzwalacza jest:

create or replace trigger employees_biu
    before insert or update 
    on employees
    for each row
begin
    if inserting then
        :new.created := sysdate;
        :new.created_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
    end if;
    :new.updated := sysdate;
    :new.updated_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
end employees_biu;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracledb łączenie w łańcuch wywołań sql za pomocą obietnic

  2. jak wstawić klucz obcy do tabeli

  3. sqoop podzielone według opcji daje błąd podczas używania kolumny pochodnej w podziale według opcji

  4. Tabela partycjonowana Oracle

  5. Nie można pobrać wyników, przekazując dane wejściowe jako ścieżkę xml w oracle