我正在使用 PL/SQL 包 OS_COMMAND(它本身使用 Java)来执行 shell 命令。我可以观察他们的返回码。
我想确定我是在 Windows 还是任何其他操作系统上运行。
我想出了不同的方法:
- 我的第一个想法:执行特定的 Windows 命令(应该始终成功)并检查返回码:0 表示 Windows,其他任何内容表示其他操作系统。
- 使用 Java 存储过程
- 使用数据库信息,例如
SELECT platform_id, platform_name FROM v$database
SELECT dbms_utility.port_string FROM DUAL
SELECT NAME FROM v$dbfile
并检查格式
您认为哪个“最安全”?您是否使用其他方法?有什么优点/缺点?
我想避免使用 Java 存储过程,但我不知道如何解释数据库信息(如何系统地检查 Windows:结果包含“WIN”或“Windows”,还是...?)。如果您要检查特定的 Windows 命令,我应该使用哪一个?
我会很高兴收到任何方向的建议。