在指定字段默认值的时候是不能用 ROWID 这个伪列的不明白你为什么要使用 UROWID 类型的主键如果的确要用,也有办法:SQL> CREATE TABLE T (PK UROWID,A VARCHAR2(1));表已创建。CREATE OR REPLACE TRIGGER TRG_TEST BEFORE INSERT ON TEST.T FOR EACH ROW BEGIN :NEW.PK:=CHARTOROWID(DBMS_RANDOM.STRING('A',18)); END; /做一个假的rowid即可。
BEFORE INSERT ON TEST.T
FOR EACH ROW
BEGIN
:NEW.PK:=CHARTOROWID(DBMS_RANDOM.STRING('A',18));
END;
/做一个假的rowid即可。