How to make a menu in SQLPlus or PL/SQL?

北慕城南 提交于 2019-12-01 23:12:04
Annjawn

Ans 1. Column script is the column in the select query defined by as script, which means script is a column alias.

Ans 2. as script is referring to as a column alias of the select stmt. There is only one column in this select statement. Example SELECT column AS col1 FROM table;. The column NEW_VALUE gets the selected value (which is driven from the case stmt, which in this case is the script name test1.sql, test2.sql, or FinalAssignment.sql) and stores it into v_script.

Ans 3. dual table is a special one-row table present by default in all Oracle database installations. More on dual here. You can select anything from dual, like select sysdate from dual; or select 'ABCDEF' AS col1 from dual;.

Ans 4. The v_script column will contain the script name as per your selection from the case statement in the select query, i.e. from the menu selection (as discussed in Ans 2.). Once that is selected, you may want to run that selected script (Wouldn't you?). Thats what @&v_script does. You run a script in SQLPlus using @script_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?

Caveats-

  1. FinalAssignment.sql should be the name of the script itself i.e. the script where the above code is.

  2. Line 1,2, and 3 are part of the script. PROMPT is a valid SQL*Plus command and so is ACCEPT.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!