我正在编写一大块PL / Code来测试数据库以完成家庭作业。我正在研究的标准:b。电子邮件长度必须少于20个字符,并且必须是有效格式,例如在正确的位置有一个“@”符号和一个“。”符号。
所以我将有一个小于20的字符串/ varchar。我知道顶层域为3个空格,点和at符号占用该长度的5个空格,留下14个空格。所以我想我可以在1-14的范围内随机生成一个字符串来填充剩余的空格,并使整个事情小于20.如何做到这一点?
Email := dmbs_random.string('U', trunc(dbms_random.value(1,14))||'@'||dmbs_random.string('U', trunc(dbms_random.value(1,14))||'.'||dbms_random.string('U',3)<20;
我知道上面的内容不正确,但它只是我正在尝试的伪代码。
答案 0 :(得分:0)
请参阅原始帖子下的评论,以获得简短说明。第一部分和第二部分分别最多9个字符和6个字符(我们只有15个字符的空间,而不是17个字符 - 我在计算地址的第三部分,但我没有计算&#34; at& #34;以及&#34;期间&#34;)。
select dbms_random.string('U', ceil(dbms_random.value(1.01, 9))) || '@' ||
dbms_random.string('U', ceil(dbms_random.value(2.01, 6))) || '.' ||
dbms_random.string('U', 3) as email
from dual
connect by level <= 5
;
EMAIL
-------------------
VN@DUCZ.OQD
KTXNQWEL@PJITFC.ZAR
CHDTR@LMOXAO.WCD
GNV@LVTRU.AQG
LLC@TWJBB.NWT