Oracle
 sql >> база данни >  >> RDS >> Oracle

Използвайте v('APP_USER') като стойност по подразбиране за колона в Oracle Apex

Има и други опции освен V('APP_USER'). От Apex 5, APP_USER се съхранява в sys_context и това е много по-производително от функцията V(). Предлага се като SYS_CONTEXT('APEX$SESSION','APP_USER') .

Работи и като стойност по подразбиране за таблици:

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

Table TEST_TABLE created.

Като се има предвид това, най-добрата практика за колони за одит е тригер, който попълва 4-те колони за одит (както предложи @Littlefoot). Разгледайте quicksql (под SQL Workshop> Utilities или на livesql.oracle.com). Можете да го накарате да генерира тригерите вместо вас, ако зададете „включване на колони за проверка“ и „Активиран Apex“. Пример за такъв генериран тригер е:

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. Приложението OCCI се срива, когато работи в режим на отстраняване на грешки във Visual Studio 2005

  2. Свържете и обработвайте данни на oracle от Objective-C на Mac OS

  3. Как да агрегираме отделни стойности от множество списъци с помощта на Oracle JSON_OBJECT &JSON_ARRAYAGG

  4. как мога да кодирам низ в HMAC-SHA256 с помощта на pl/sql?

  5. групово събиране, използвайки за актуализация