Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Gunakan v('APP_USER') sebagai nilai default untuk kolom di Oracle Apex

Ada opsi lain selain V('APP_USER'). Sejak Apex 5, APP_USER disimpan di sys_context dan itu jauh lebih berkinerja daripada fungsi V(). Ini tersedia sebagai SYS_CONTEXT('APEX$SESSION','APP_USER') .

Ini juga berfungsi sebagai nilai default untuk tabel:

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

Table TEST_TABLE created.

Karena itu, praktik terbaik untuk kolom audit adalah pemicu yang mengisi 4 kolom audit (seperti yang disarankan @Littlefoot). Lihat quicksql (di bawah SQL Workshop> Utilities atau di livesql.Oracle.com). Anda dapat membuatnya menghasilkan pemicu untuk Anda jika Anda menyetel "sertakan kolom Audit" dan "Apex Diaktifkan". Contoh pemicu yang dihasilkan adalah:

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. fungsi listunagg?

  2. Jumlah baris Oracle tabel dengan count(*) vs NUM_ROWS dari DBA_TABLES

  3. Siapa diana, dan mengapa dia tidak membiarkan objek database saya dikompilasi?

  4. Kursor referensi hilang di XMLType.createxml

  5. Putar di Oracle 11g