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


个工作没有过程语言 如 PL/SQL 或 SHELL 脚本 的支持是不行的 
我们可以在一个 SHELL 脚本中使用内嵌的 SQL 过程语言函数中需要插入适当的语 
法成份 比如逗号 脚本必须足够地聪明以知道哪里是最后一个逗号 因为在最后一个逗 
号的后边就没有逗号了 脚本也必须知道在哪些地方需要放置括号 在用数据字典重新生 
374 
…………………………………………………………Page 375……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
成对象的时候 SEEK 工具是很有用的 不管你是使用 C Perl shell scripts COBOL 还是 
PL/SQL 
总结 
直接地从数据库中生成语句可以避免许多单调乏味的输入 SQL 语句的工作 不管你做 
什么工作 使用 SQL 生成技术都可以在你的某个工作阶段减少你的工作量 
如果你已经学习了今天的基本内容— — 尽管这些例子是使用 ORACLE 来完成的 你可 
以在其它的关系数据库系统中应用这一概念 请检查你的数据库解释器和数据字典的结构 
以找出它们与本书中例子的不同之外 如果你开明的话 你会发现许多生成 SQL 脚本的方 
法 从简单的语句到高度复杂的系统管理中都有 
问与答 
问 我如何才能决定是手工写 SQL 还是来生成它 
答 问你自己下边的问题 
你解决问题时使用该语句的频繁程度如何 
在写母语句是否比写子语句耗用更多的时间 
问 生成 SQL 语句时我有哪些表可供选择 
答 你可以选择任何一个你可以访问的表 这不管这些表是否为你所有或它是否在数 
据字典中 你可以选择所有在你数据库中的有效对象 比如视图或快捷方式 
问 我在生成 SQL 语句是是否有限制 
答 对于大多数的语句你既可以手工写出也可以生成 请检查你的解释器看一下看它 
是否有输出到文件选项以及输出格式是否是你所需要的 切记 在生成输出文件后你应该 
手工修改一下文件的内容 
校练场 
1 你生成 SQL 的来源有哪两个 
2 下边的 SQL 语句是否可以工作 它会输出什么 
SQL》 SET ECHO OFF 
375 
…………………………………………………………Page 376……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
SQL》 SET FEEDBACK OFF 
SQL》 SPOOL CNT。SQL 
SQL》 SELECT "COUNT(*) FROM " || TABLE_NAME || ";" 
2 FROM CAT 
3 / 
3 下边的 SQL 语句是否可以工作 它会输出什么 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK OFF 
SQL》 SPOOL GRANT。SQL 
SQL》 SELECT "GRANT CONNECT DBA TO " || USERNAME || ";" 
2 FROM SYS。DBA_USERS 
3 WHERE USERNAME NOT IN ("SYS";"SYSTEM";"SCOTT") 
4 / 
4 下边的 SQL 语句是否可以工作 它会输出什么 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK OFF 
SQL》 SELECT "GRANT CONNECT; DBA TO " || USERNAME || ";" 
2 FROM SYS。DBA_USERS 
3 WHERE USERNAME NOT IN ("SYS";"SYSTEM";"SCOTT) 
4 / 
5 在运行生成的 SQL 时最为将 FEEDBACK 设置为 ON 对不对 
6 从 SQL 中生成 SQL 语句时 必须将输入的结果重新定向到一个文件中 对不对 
7 在生成 SQL 语句用以对表的内容进行删减时 你必须先确认自己已经对所要删减 
的表作了很好的备份 对不对 
8 什么是 ED 命令 
9 SPOLL OFF 命令是做什么的 
练习 
1 使用 SYS。DBA_USERS 视图 在 PERSONAL ORACLE 7 中 写一个语句来生成一 
376 
…………………………………………………………Page 377……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
系列 GRANT 语句为下边的五个用户 John Kevin Ryan Ron 和 Chris 授权 使 
他们可以访问 History_tbl 表 在写语句时对应的用户名用 USERNAME 来代替 
2 用本章给出的例子作指引 写一些 SQL 来创建一些可以生成你能使用的 SQL 语句 
377 
…………………………………………………………Page 378……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
第 18 天 PL/SQL 简介 
目标 
PL/SQL 是一项 ORACLE 的技术 它可以让 SQL 像过程型语言一样工作 到今天的结 
束 你将 
l 对 PL/SQL 有一个基本的了解 
l 明白 PL/SQL 的特点以及它与标准的 SQL 的区别 
l 知道 PL/SQL 编写程序的基本原理 
l 可以写简单的 PL/SQL 程序 
l 知道如何处理在 PL/SQL 编程中的错误 
l 知道如何在真实的世界中使用 PL/SQL 
入门 
从对标准的 SQL 进行介绍是一种入门 PL/SQL 或 SQL 的方法 SQL 是一种可以让 
关系数据库用户以一种直接的方式来访问数据库的方法 你可以使用 SQL 来对数据库进行 
查询和修改其中的表 在你写 SQL 语句的时候 你可以告诉数据库你要做什么 而不是如 
何去做 优化器会自己决定采用一种最有效的方法来执行你的语句 如果你向数据库中发 
送了一系列标准的 SQL 语句 服务将会按语句的先后次序来执行它们 
PL/SQL 是 ORACLE 的过程型语言 它由标准的 SQL 语句和一系列可以让你在不同的 
情况下对 SQL 语句的执行进行控制的命令组成 PL/SQL 也可以在运行时捕获错误 储如 
LOOP 和 IF THEN ELSE 语句让 PL/SQL 具有了第三代编程语言的能力 PL/SQL 
也可以以交互方式写出 用户友好型界面会把数值赋给它的变量 你可以使用许多种预定 
义的包 它们可以将信息显示给用户 
今天的内容主要包括 PL/SQL 的以下特性 
l 程序员可以定义在语句中使用的变量 
l 程序员可以使用错误控制例程来访止程序的意外中断和退出 
l 程序员可以写交互式程序来接受来自用户的输入 
378 
…………………………………………………………Page 379……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
小说推荐
返回首页返回目录