《SQL 21日自学通(V3.0)(PDF格式)》第143章


INPUT 开始 你开始会被提示为 NEWTITLE 输入一个值 当然 你也可以建立一个新文 
件并在其中输入你的语句 
输入 
SQL》 input 
1 accept newtitle prompt "Enter Title for Report: " 
2 ttitle center newtitle 
3 select * 
4 from products 
5 
SQL》 save prod 
输出 
File 〃prod。sql〃 already exists。 
Use another name or 〃SAVE filename REPLACE〃。 
分析 
咦 这个文件怎么已经存在了 这就是说你已经有一个叫 PROD。SQL 的文件了 如果 
你不想保留它 你可以使用覆盖选项来保存缓冲区中的内容 注意在上一个语句中的 
457 
…………………………………………………………Page 458……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
PROMPT 它将会向用户显示文本信息以准确地告诉用户应该输入什么 
输入 
SQL》 save prod replace 
输出 
Wrote file prod 
现在你可以使用 START 命令来运行这个文件了 
输入 
SQL》 start prod 
Enter Title for Report: A LIST OF PRODUCTS 
输出 
A LIST OF PRODUCTS 
PRO PRODUCT_NAME UNIT_COST 
P01 MICKEY MOUSE LAMP 29。95 
P02 NO 2 PENCILS 20 PACK 1。99 
P03 COFFEE MUG 6。95 
P04 FAR SIDE CALENDAR 10。5 
P05 NATURE CALENDAR 12。99 
P06 SQL MAND REFERENCE 29。99 
P07 BLACK LEATHER BRIEFCASE 99。99 
7 rows selected。 
分析 
你输入的文字成了当前报表的题头 
下边的例子向你显示了你如果替换在语句中的任何变量的值 
输入 
SQL》 input 
1 accept prod_id prompt "Enter PRODUCT ID to Search for: " 
2 select * 
3 from products 
4 where product_id = "&prod_id" 
5 
SQL》 save prod1 
458 
…………………………………………………………Page 459……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
输出 
Created file prod1 
输入 
SQL》 start prod1 
Enter PRODUCT ID to Search for: P01 
输出 
old 3: where product_id = "&prod_id" 
new 3: where product_id = "P01" 
A LIST OF PRODUCTS 
PRO PRODUCT_NAME UNIT_COST 
P01 MICKEY MOUSE LAMP 29。95 
分析 
你可以在许多的需要中见到变量的使用 例如 为你想要重新定向输出的文件命名或 
为 ORDER BY 子句指定一个表达式 其中的方法之一是使用变量替换 一种使用变量替换 
的情况是在事务处理诊断报告中在 WHERE 子句中输入日期 如果你的查询设计成要求在 
特定的时间内得到信息的话 你也许需要设置一个替换变量来与表中的 SSN 列进行比较 
NEW_VALUE 
NEW_VALUE 命令可以将 SELECT 语句中的数值返回给一个没有经你明确定义的变 
量 语法格式如下 
语法 
COL'UMN' column_name NEW_VALUE new_name 
你可以使用&符号来调用这个值 例如 
&new_name 
在 NEW_VALUE 命令中必须使用 COLUMN 命令 
注意&符号与 COLUMN 在下边的 SQL*PLUS 文件中是一起使用的 在这个文件中出 
现了 GET 命令 
输入 
SQL》 get prod1 
459 
…………………………………………………………Page 460……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
输出 
line 5 truncated。 
1 ttitle left "Report for Product: &prod_title" skip 2 
2 col product_name new_value prod_title 
3 select product_name; unit_cost 
4 from products 
5* where product_name = "COFFEE MUG" 
输入 
SQL》 @prod1 
输出 
Report for Product: COFFEE MUG 
PRODUCT_NAME UNIT_COST 
COFFEE MUG 6。95 
分析 
PRODUCT_NAME 列的值已经通过 NEW_VALUE 方法被存入了变量 PROD_TITLE 
中 该变量中的值将在稍后被 TTITLE 命令调用 
对于在 SQL 中更多的变量信息 请参见第 18 天的 PL/SQL 简介 以及第 19 天的 
TRANSACT SQL 简介 
DUAL 表 
DUAL 表是在每一个 ORACLE 数据库中都存在的虚拟表 它只有一个叫 DUMMY 的 
列和一行值为 X 的数据 这个表可以由所有的用户出于通用的目标如进行计算 这时它可 
以像一个计算器一样使用 或维护 SYSDATE 的格式而使用 
输入 
SQL》 desc dual; 
输出 
Name Null? Type 
DUMMY VARCHAR2(1) 
输入 
SQL》 select * from dual 
460 
…………………………………………………………Page 461……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
输出 
D 
X 
让我们来看一对使用 DUAL 表的例子 
输入 
SQL》 select sysdate from dual; 
输出 
SYSDATE 
08…MAY…97 
输入 
SQL》 select 2 * 2 from dual; 
输出 
2*2 
非常简单 第一条语句从 DUAL 表中选择了 SYSDATE 以取得今天的日期 第二个例 
子显示了如何用这个表来进行乘法计算 我们的答案是 2*2 的结果为 4 
DECODE 函数 
DECODE 函数是 SQL*PLUS 中众多功能强大的函数之一— — 也?
小说推荐
返回首页返回目录