如何在PL / SQL Oracle Developer中使用不同的随机调用创建随机长度字符串?

时间:2017-03-28 03:13:27

标签: oracle random

我正在编写一大块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;

我知道上面的内容不正确,但它只是我正在尝试的伪代码。

1 个答案:

答案 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