如何在脚本中使用SQL

2020-09-06 16:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在通过数据库,对于一列,我需要运行SQL以获取" MAX +1"值。

所以我制作了一个脚本并将其与FUNCTION一起使用,如下所示。

我得到了错误。

有人可以给我个建议吗?

致谢

dongsu

(15.3 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在通过数据库,对于一列,我需要运行SQL以获取" MAX +1"值。

所以我制作了一个脚本并将其与FUNCTION一起使用,如下所示。

我得到了错误。

有人可以给我个建议吗?

致谢

dongsu

(15.3 kB)
付费偷看设置
发送
6条回答
DafaDDDa
1楼-- · 2020-09-06 16:29

东秀,

我假设您的表是由mxmc_rt以外的其他用户上下文创建的。 请注意,mxmc_代表默认的数据库前缀,需要用您选择的前缀替换。

脚本由调度程序在mxmc_rt的上下文中执行。 因此,您应该在这种情况下测试查询,并使其正常运行。 在所需表上使用db-schema前缀和/或为mxmc_rt授予select。

在toDB-pass中,您可以使用连接向导(三个点)在mxmc_rt之外的其他数据库上下文中建立数据库连接。 可以使用创建表的上下文连接到db。 从上面的屏幕截图中,我猜您是使用db-context ylims尝试过的。 是您创建表的上下文吗?

可以在JavaScript中建立数据库连接,但是需要导入一些Java类才能使用它们。 但是我认为这对您来说不是必需的,您应该正确使用上下文来访问表。

最诚挚的问候,

Alex

hongfeng1314
2楼-- · 2020-09-06 16:22

令人惊讶的是,没有人指出有问题的模式而无需锁定表即可确定下一个更高的用户号(USER_NO)。 如果并行执行此函数,则很容易生成具有相同USER_NO值的多个用户。

常见的问题是使用序列生成ID(因为它们通常允许出现空白而没有问题)。

歪着头看世界
3楼-- · 2020-09-06 16:23

Hello Dongsu,

如果您需要与其他用户建立数据库连接(由于默认的rt-user无权使用该表),则需要添加

我使用本地作业常量来定义连接,并在传递过程中使用该常量,因为当我更改设置和设置时,它往往会被清除掉。 我已经厌倦了一次又一次地重新创建它。

所以我在传递本身中使用了局部常量:

并且在常量中,连接字符串(对于MSSQL)遵循以下语法:

 jdbc:sqlserver://<数据库服务器的IP>:<端口>  ; databasename = <数据库名称>; user = <数据库名称-具有正确权限的用户,如oper>; password = <该数据库名称的密码-具有正确权限的用户,例如oper> 


认为脚本中未使用toDatabase传递中的连接字符串。 这只是为了通行证本身。 该脚本可能会使用rt-user及其权限,并且该脚本(如您所指出)不能在数据库上运行SQL语句。

致谢,

Steffi。

Haoba3210
4楼-- · 2020-09-06 16:44

拉尔斯,那是您来的地方。 另外,请确保rt用户有权访问YLIMS.USER_INFO表(视图?)

马特

clever101
5楼-- · 2020-09-06 16:33

亲爱的拉尔斯,

感谢您的建议。

使用maxno时确实存在多个相同的USER_NO值的问题。

在实际环境中,我们将使用"序列"。

dongsu

DafaDDDa
6楼-- · 2020-09-06 16:30

因此,您是在说硬编码连接字符串时有效,但不能从常量中读取吗? 如果是这样,它是什么类型的常数? 我假设它是首选的存储库。

脚本应该能够使用任何系统参数,但是我相信它们必须用单引号'%ddm。 东西%'

一周热门 更多>