我正在尝试接受一个数字,但是接受它后,v_no
前面有这么多额外的空间,有什么办法可以删除或阻止它吗?
问题:
Enter value of 'N' for top 'N' of customer: 10
old 543: ROWNUM <= &v_no
new 543: ROWNUM <= 10 --there are so much space in front the 10
这是我的查询:
ACCEPT v_no NUMBER FORMAT '99' PROMPT 'Enter value of ''N'' for top ''N'' of customer: '
ttitle center 'Top &v_no Valuable Customer' skip 2
SELECT
ROWNUM "No."
, "Customer ID"
, "Customer Name"
, "Customer Birthdate"
FROM
(
SELECT
row_number() OVER (ORDER BY c.cust_name) "No."
, c.cust_id "Customer ID"
, c.cust_name "Customer Name"
, c.cust_birthdate "Customer Birthdate"
FROM
customer c
, reservation r
WHERE
c.cust_id = r.cust_id
GROUP BY
c.cust_name
, c.cust_id
, c.cust_birthdate
ORDER BY
1 DESC
)
WHERE
ROWNUM <= &v_no
;
这是输出:
Enter value of 'N' for top 'N' of customer: 10
old 543: ROWNUM <= &v_no
new 543: ROWNUM <= 10
Top 10 Valuable Customer
No. Customer Customer Customer
ID Name Birthdate
----- -------- ---------------------- ----------
1 C0395 Chance Tomei 01/01/1972
2 C0383 Aron Boatman 23/04/1972
3 C0389 Andrew Mechi 31/07/1959
4 C0371 Alisun Iacoviello 27/02/1997
5 C0377 Pearl Bairnsfather 30/03/1988
6 C0365 Adoree Standbridge 13/07/1995
7 C0353 Swen Kift 23/05/1983
8 C0359 Donella Whitcher 04/03/1974
9 C0293 Gordon Perri 22/07/1977
10 C0290 Hetti Treeby 01/08/1968
v_no
前面的空间使标题非常丑陋。
任何帮助,不胜感激。
ttitle
命令有一个format
选项:
设置文本格式
指定一个格式模型,该模型确定以下数据项的格式,直到下一个 FORMAT 子句或命令的末尾。格式模型必须是文本常量,例如 A10 或 $999。有关格式设置和有效格式模型的详细信息,请参阅 COLUMN 命令。
您可以将ttile
行更改为使用与accept
相同的格式,从主字符串中提取替换变量并指定格式:
ttitle center 'Top ' &v_no format 99 ' Valuable Customer' skip 2
然后,当传递10
时,输出为:
Top 10 Valuable Customer
当传递时,比如说 2,输出是:
Top 2 Valuable Customer
顺便说一下,你可能想在脚本的开头添加set verify off
,这将停止它显示old
和new
输出 - 无论如何,它仍然有额外的空格,但你可能不想在最终输出中看到它。