Random 在ABAP CD视图中创建随机字符串

Random 在ABAP CD视图中创建随机字符串,random,abap,opensql,cds,Random,Abap,Opensql,Cds,我想用ABAP-CDS视图替换一些ABAP逻辑。我们还没有HANA DB,所以没有SQL脚本。有没有办法在ABAP-CDS中创建定义长度的随机字符串 这是我们HANA DB迁移的准备工作,应该取代功能模块“GENERAL\u GET\u RANDOM\u STRING” 我想将尽可能多的逻辑“下推”到数据库中,因为我们有大约16.000.000个条目,需要输入一个随机字符串。如果这是通过数据库创建的,速度会快得多 一些想法: 生成GUID并将其截断为随机字符串要求的长度 或者,如果您的字符串不是

我想用ABAP-CDS视图替换一些ABAP逻辑。我们还没有HANA DB,所以没有SQL脚本。有没有办法在ABAP-CDS中创建定义长度的随机字符串

这是我们HANA DB迁移的准备工作,应该取代功能模块“GENERAL\u GET\u RANDOM\u STRING”

我想将尽可能多的逻辑“下推”到数据库中,因为我们有大约16.000.000个条目,需要输入一个随机字符串。如果这是通过数据库创建的,速度会快得多

一些想法:

生成GUID并将其截断为随机字符串要求的长度

或者,如果您的字符串不是完全随机的,并且您有一个要从中随机选取的值数组。选择具有生成GUID的新列的列表。使用guid对列表进行排序,然后选择最上面的一个。在我的内心深处,我有一个令人不安的疑问,那就是我错过了这一步。在这种情况下,可能还必须对GUID进行trunctate

希望这能有所帮助。

一些想法:

生成GUID并将其截断为随机字符串要求的长度

或者,如果您的字符串不是完全随机的,并且您有一个要从中随机选取的值数组。选择具有生成GUID的新列的列表。使用guid对列表进行排序,然后选择最上面的一个。在我的内心深处,我有一个令人不安的疑问,那就是我错过了这一步。在这种情况下,可能还必须对GUID进行trunctate


希望这能有所帮助。

您能告诉我您想用CDS替换ABAP逻辑的程度吗?您是否希望将以前的功能模块代码“下推”到数据库中,或通过OData提供标准化的数据访问,以取代专有的RFC连接?对于后者,您可以在CDS定义中选择一个常量,甚至是空字符串,并在数据提供类(DPC)EXT方法中覆盖它。如果可能的话,请提供一个最小的例子。我在我的系统中没有看到该函数模块,因此随机字符串字段的长度。你能使用像CURRENT_TIMESTAMP或TO_TIMESTAMP这样的函数吗?@konstantin-目前我没有任何CDS定义。我只是想看看我的可能性,这是否可能。如果没有,我将继续使用ABAP解决方案。据我所知,DPC EXT方法仅适用于OData服务,是吗?我会在我的正常abap报告中使用此CD。您能告诉我您想用CD替换abap逻辑的程度吗?您是否希望将以前的功能模块代码“下推”到数据库中,或通过OData提供标准化的数据访问,以取代专有的RFC连接?对于后者,您可以在CDS定义中选择一个常量,甚至是空字符串,并在数据提供类(DPC)EXT方法中覆盖它。如果可能的话,请提供一个最小的例子。我在我的系统中没有看到该函数模块,因此随机字符串字段的长度。你能使用像CURRENT_TIMESTAMP或TO_TIMESTAMP这样的函数吗?@konstantin-目前我没有任何CDS定义。我只是想看看我的可能性,这是否可能。如果没有,我将继续使用ABAP解决方案。据我所知,DPC EXT方法仅适用于OData服务,是吗?我会在我正常的abap报告中使用这些CD。一般来说,这是个好主意,但如何在CD视图中这样做呢正如在问题中所说的,我想把尽可能多的逻辑推送到数据库中。是的,看起来有一种使用表函数的方法,但我想说的是,你并不比在ABAP中做更好。我在想会有一些方法来利用SYSUUID,但显然不是在CD中。一般来说,这是个好主意,但如何在CD视图中做到这一点呢正如在问题中所说的,我想把尽可能多的逻辑推送到数据库中。是的,看起来有一种使用表函数的方法,但我想说的是,你并不比在ABAP中做更好。我在想会有一些方法来利用SYSUUID,但显然不是在CD中。