Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sử dụng v ('APP_USER') làm giá trị mặc định cho cột trong Oracle Apex

Có các tùy chọn khác ngoài V ('APP_USER'). Kể từ Apex 5, APP_USER được lưu trữ trong sys_context và nó hoạt động hiệu quả hơn rất nhiều so với hàm V (). Nó có sẵn dưới dạng SYS_CONTEXT('APEX$SESSION','APP_USER') .

Nó cũng hoạt động như một giá trị mặc định cho các bảng:

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

Table TEST_TABLE created.

Điều đó đang được nói, thực tiễn tốt nhất cho các cột kiểm tra là trình kích hoạt điền 4 cột kiểm tra (như @Littlefoot đã đề xuất). Hãy xem quicksql (trong SQL Workshop> Utilities hoặc trên livesql.oracle.com). Bạn có thể để nó tạo các trình kích hoạt cho bạn nếu bạn đặt "bao gồm cột Kiểm tra" và "Đã bật Apex". Ví dụ về trình kích hoạt được tạo như vậy là:

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. Hiệu suất của Oracle DBMS_LOB.INSTR và CONTAINS

  2. Chuyển đổi từ ANSI sang Oracle Tham gia Cú pháp

  3. Tìm kiếm bên trong bảng Loại bản ghi

  4. Oracle RAC và các chuỗi

  5. Oracle / Sybase SQL - lấy giá trị dựa trên bản ghi trước đó (không phải LAG đơn giản)