Sql 在插入随机字符串后创建触发器

Sql 在插入随机字符串后创建触发器,sql,oracle,Sql,Oracle,我有一个表app和列ID、PW和ID自动递增。我想创建触发器,当我插入新的rowID,然后插入PW列随机字符串,示例75Da5Alength 7,请帮助 ID PW 1 75Da5A 2 45daa8 3 571as5 ---------- --------- 您可能需要以下内容: SQL> CREATE TABLE app ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, 2

我有一个表app和列ID、PW和ID自动递增。我想创建触发器,当我插入新的rowID,然后插入PW列随机字符串,示例75Da5Alength 7,请帮助

ID   PW
1    75Da5A
2    45daa8
3    571as5
----------
---------

您可能需要以下内容:

SQL> CREATE TABLE app ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
  2                     pwd varchar2(16));

Table created.

SQL> create or replace trigger randomPwd
  2  before insert on app
  3  for each row
  4  begin
  5      if :new.pwd is null then
  6          :new.pwd := dbms_random.string('a', 7);
  7      end if;
  8  end;
  9  /

Trigger created.

SQL> insert into app values ('', '');

1 row created.

SQL> select * from app;

        ID PWD
---------- ----------------
         1 RVaQalX
您可以使用以不同的方式获取随机字符串,而无需编辑结果

发件人:

“u”,“u”-返回大写字母字符的字符串 “l”,“l”-返回小写字母字符的字符串 “a”,“a”-返回混合大小写字母字符的字符串 “x”,“x”-返回大写字母数字字符的字符串 “p”,“p”-返回任何可打印字符的字符串。
你还有多远?您是被触发器语法卡住了,还是生成了一个随机字符串,或者两者兼而有之?你真的用纯文本存储密码吗?是的,我现在……….Alex Poole触发器语法我有一个生成随机代码的查询,但我需要触发器选择UPPERSUBSTRTRANSLATEdbms_random。字符串'p',100,'a`~!@$%^&*-=_+[]\{}|;:,./?' ,'A',1,7来自dualSo请发布您迄今为止尝试的内容,以便更好地解释您遇到的问题。创建随机字符串的问题是什么?