如何在DBeaver中运行WRKUSRPRF、CHGUSRPRF等AS400 CL命令?
能否在DBeaver中运行WRKUSRPRF/CHGUSRPRF这类CL命令?
可以,但不能直接在常规SQL编辑器里执行,得借助AS400提供的机制间接调用,具体两种实现方式:
方式1:用内置的QCMDEXC存储过程
AS400自带的QCMDEXC存储过程就是用来通过SQL调用CL命令的,你在DBeaver的SQL窗口里写类似这样的语句就行:
CALL QCMDEXC('CHGUSRPRF USRPRF(USER01) PASSWORD(NEWPWD01) EXPDATE(*NONE)');
- 注意:
QCMDEXC的参数是完整的CL命令字符串,而且你的ODBC连接用户必须有执行对应CL命令的权限。 - 像
WRKUSRPRF这种交互式命令,DBeaver作为SQL客户端没法弹出AS400的交互窗口,所以执行后不会有预期效果,只能调用CHGUSRPRF这类非交互式的修改/执行型CL命令。
方式2:自定义存储过程封装CL命令
如果需要频繁调用特定CL命令,可以自己写个存储过程封装,比如:
CREATE PROCEDURE CHG_USER_PRF(IN USR_NAME VARCHAR(10), IN NEW_PWD VARCHAR(10)) LANGUAGE CL BEGIN CHGUSRPRF USRPRF(&USR_NAME) PASSWORD(&NEW_PWD) EXPDATE(*NONE); END;
创建好之后,在DBeaver里直接调用这个存储过程就行:
CALL CHG_USER_PRF('USER01', 'NEWPWD01');
额外提醒
- 权限是关键:执行CL命令需要连接用户拥有对应的系统权限(比如用户管理权限),否则会直接报错。
- 交互式命令别碰:所有需要手动操作界面的CL命令,在DBeaver里都没法正常使用,只适合执行无需交互的CL命令。
内容的提问来源于stack exchange,提问作者user10191234
相关产品推荐
相关产品推荐

