PL/SQL 不是一种交互式语言,它是用于编写 API 而不是 UI。同样 SQL*Plus 没有配备控制字如 IF 或 ELSE,它不是一种编程语言。
如果你需要一个更智能的 UI 来启动你的代码,你应该使用 UI 编程工具。当您使用 SQL*Plus 时,您的用户可以访问操作系统,因此 shell 脚本或.bat
文件似乎是最佳选择。此外,我们可以直接从数据库中运行网页,但这可能有点过度设计,这取决于您的需求可能有多复杂。
如果这些建议都没有吸引力,您可以尝试更详细的 SQL*Plus 提示:
ACCEPT v_test CHAR FORMAT 'A30'
PROMPT 'Enter the test you want to run: A , B or C :'
ACCEPT v_deptno NUMBER FORMAT '99'
PROMPT 'If you chose A please enter DEPT NO or skip:'
ACCEPT v_mgr CHAR FORMAT 'A30'
PROMPT 'If you chose B please enter MGR NAME or skip:'
ACCEPT v_stdt DATE FORMAT 'YYYY-MM-DD'
PROMPT 'If you chose C enter START DATE (YYYY-MM-DD) or skip:'
ACCEPT v_endt DATE FORMAT 'YYYY-MM-DD'
PROMPT 'If you chose C enter END DATE (YYYY-MM-DD) or skip:'
现在,您可以将这些变量传递给一个匿名块,该块确实具有 IF 和 ELSE 控制字,以确定已呈现哪些值并采取适当的操作。
我同意它笨拙且不太宽容,因此用户会讨厌它;但正如我所说,这不是这些工具真正应该做的。无论如何,了解更多。