如何在SQLPlus或PL/SQL中创建菜单?
我正在制作这个程序,它将有一个菜单,可以获取用户的输入,并根据用户的选择执行特定的脚本。大致如下: Please make a selection: 1: Do script a 2: Do script b 3: Do script c 我可以让程序运行脚本,但是其他的都不起作用。如果我选择一个超出该范围的数字,脚本将关闭,而不是重新加载自身。此外,当脚本运行时,它会自动关闭,而不是返回主菜单。我知道我必须运行一个循环来解决这个问题,但我不知道如何用这种语言实现它 任何帮助都将不胜感激。如何在SQLPlus或PL/SQL中创建菜单?,sql,plsql,sqlplus,Sql,Plsql,Sqlplus,我正在制作这个程序,它将有一个菜单,可以获取用户的输入,并根据用户的选择执行特定的脚本。大致如下: Please make a selection: 1: Do script a 2: Do script b 3: Do script c 我可以让程序运行脚本,但是其他的都不起作用。如果我选择一个超出该范围的数字,脚本将关闭,而不是重新加载自身。此外,当脚本运行时,它会自动关闭,而不是返回主菜单。我知道我必须运行一个循环来解决这个问题,但我不知道如何用这种语言实现它 任何帮助都将不胜感激。 谢谢
谢谢 Ans 1.列
script
是select
查询中由定义为script
的列,这意味着script
是列别名
Ans 2.作为脚本
是作为select
stmt的列别名引用的。此select
语句中只有一列。示例从表中选择列作为col1代码>。该列获取所选值(该值由案例
stmt驱动,在本例中为脚本名test1.sql
、test2.sql
、或FinalAssignment.sql
)并将其存储到v_脚本
Ans 3.dual
表是默认情况下在所有Oracle数据库安装中提供的一个特殊的单行表。有关双的详细信息
。您可以从dual
中选择任何内容,如从dual中选择sysdate
或从dual中选择'ABCDEF'作为col1代码>
Ans 4.根据您在select
查询中的case
语句中的选择,即从菜单选择(如Ans 2中所述),v_script
列将包含脚本名称。一旦选择了它,您可能希望运行所选脚本(不是吗?)。这就是@&v_script
所做的。使用@script\u name
PROMPT 1: Make a sales invoice
PROMPT 2: Inquire a sales invoice
accept selection PROMPT "Enter option 1-2: "
set term off
column script new_value v_script --Q1. What's column script?
select case '&selection.' --from accept above
when '1' then '@test1.sql' --script to run when chosen option 1.
when '2' then '@test2.sql' --script to run when chosen option 2.
else '@FinalAssignment.sql' --this script
end as script --Q2. What script is this referring to?
from dual; --Q3. Don't know this
set term on
@&v_script. --Q4. What script is being ran here?
注意事项-
FinalAssignment.sql
应该是脚本本身的名称,即上面代码所在的脚本
第1、2和3行是脚本的一部分。是有效的SQL*Plus命令,也是有效的
关于“专栏”的事情。米盖尔我们当然应该问问萨西普里亚:P
set term off
column script new_value v_script -- What's column script?
select case '&selection.'
when '1' then '@test.sql'
when '2' then '@test.sql'
else '@FinalAssignment.sql'
end as script -- What script is this referring to?
from dual; -- Don't know this
set term on
@&v_script. -- What script is being ran here?
PROMPT 1: Make a sales invoice
PROMPT 2: Inquire a sales invoice
accept selection PROMPT "Enter option 1-2: "
set term off
column script new_value v_script --Q1. What's column script?
select case '&selection.' --from accept above
when '1' then '@test1.sql' --script to run when chosen option 1.
when '2' then '@test2.sql' --script to run when chosen option 2.
else '@FinalAssignment.sql' --this script
end as script --Q2. What script is this referring to?
from dual; --Q3. Don't know this
set term on
@&v_script. --Q4. What script is being ran here?