友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第147章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






  分组 



4  你在使用 LOGIN。SQL 文件时有哪些限制 



5  DECODE 函数与过程语言中的 LOOP 功能是等价的  对不对 



6  如果你将查询重新定向到一个已经存在的文件中 你的输出将追加到这个文件 对不对 



                                                     471 


…………………………………………………………Page 472……………………………………………………………

SQL 21  日自学通(V1。0)                                                          翻译人    笨猪 



练习 



1   利用在今天开始时的 PRODUCTS              表    写一个查询选择其中的所有数据并对记录的个数 



   进行汇总       要生成报表并且不得使用 SET FEEDBACK ON 命令 



2   假如今天是 1998 年 5 月 12 日星期一  写一个查询产生下边的输出 



    Today is Monday; May 12 1998 



3   试一下下边的语句 



             1    select  * 



             2    from  orders 



             3    where  customer_id  =  '001' 



           4* order by customer_id; 



    不需要在缓冲区中重新输入这些语句  将 FROM 子句中的表改为 CUSTOMERS 



    在 ORDER BY 子句中加入 DESC 



                                                                                    472 


…………………………………………………………Page 473……………………………………………………………

SQL 21  日自学通(V1。0)                              翻译人 笨猪 



第 21 天     常见的 SQL 错误及解决方法 



目标 



   欢迎来到第 21 天  在今天你将学习下边的内容 



   l  几种典型的错误及它们的解决方案 



   l  SQL 用户常犯的逻辑错误 



   l  防止再犯日常错误的办法 



介绍 



   今天你将会看到一些人们     不论是菜鸟还是老鸟  在使用 SQL 常犯的错误  你也不可 



避免地要犯这些错误     但是对这些错误熟悉了以后会帮助你在尽可以短的时间内解决它们 



注意  我们使用 PERSONAL  ORACLE  7 来进行我们的例子  在你的解释器中也会有与之 



    类似的错误   只是错误的代码和名字可能会不相同  我们在 SQL*PLUS      中运行这些 



    语句并将 ECHO 和 FEEDBACK 设置为 ON  以看到这些语句 



   要知道一些错误确实可以产生的错误信息        然而逻辑语法的不充分可以会在运行时导 



致更大的错误    通过仔细的校审    你会避免大多数的错误     尽管你会经常被错误卡住 



常见的错误 



   在这一部分你将会见到在所有的 SQL 语句中看到的一些常见的错误          大多数的错误简 



单到你甚至想打自己几个耳光      可是也有一些错误看上去很明显但却很容易误码率解 



Table or View Does Not Exist 



   当你在试图访问一个并不存在的表时产生的错误  这是很明显的  例如 



输入 



   SQL》 @tables。sql 



输出 



                                                    473 


…………………………………………………………Page 474……………………………………………………………

SQL 21  日自学通(V1。0)                                                                   翻译人      笨猪 



     SQL》 spool tables。lst 



     SQL》 set echo on 



     SQL》 set feedback on 



     SQL》 set pagesize 1000 



     SQL》 select owner|| '。' || table_name 



           2    from  sys。dba_table 



           3    where  owner  =  'SYSTEM' 



           4    order  by  table_name 



           5    / 



                   from  sys。dba_table 



                 * 



     ERROR at line 2: 



     ORA…00942: table or view does not exist 



      SQL》 spool off 



       SQL》 



分析 



     注意在表的名字后边的星号                    正确的名是 sys。dba_tables          表名中少了一个 S 



     但是如果你已经知道了表是存在的而你仍然收到了错误信息呢                                           有时你收到这个信息 



是因为表并不存在  但是也可以是由于安全原因 — — 也就是说                                       表是存在的          但是你没有 



权限访问它  这个错误用数据库服务人员的话来精确地说就是  你没有权限来访问这个表 



技巧  在着急之前             请立即先确认在 DBA               的帐号或可用的工程帐号中这个表是否存在 



      你会经常发现表不存在的原因是因为用户没有正当的访问这个表的权限 



Invalid Username or Password 



输入 



 SQL*Plus: Release 3。2。3。0。0 on Sat May 10 11:15:35 1997 



Copyright (c) Oracle Corporation 1979; 1994。  All rights reserved。 



Enter user…name: rplew 



Enter password: 



                                                                                               474 


…………………………………………………………Page 475……………………………………………………………

SQL 21  日自学通(V1。0)                                                             翻译人     笨猪 



输出 



ERROR: ORA…01017: invalid username/password; logon denied 



Enter user…name: 



     这个错误的原因是因为用户名或密码不正确  再试一次  如果还不成功                                         那么你的密 



码已经变了         如果你确认你输入的用户名和密码是正确的    那么在你访问多个数据库时确 



认你要联接的数据库是正确的 



FROM Keyword Not Specified 



输入 



SQL》 @tblspc。sql 



输出 



     SQL》 spool tblspc。lst 



     SQL》 set echo on 



     SQL》 set feedback on 



     SQL》 set pagesize 1000 



     SQL》 select substr(tablespace_name;1;15) a; 



         2                  substrfile_name;  1;45)  c;  bytes 



         3    from  sys。dba_data_files 



         4    order  by  tablespace_name; 



               substrfile_name;  1;45)  c;  bytes 



               * 



     ERROR at line 2: 



     ORA…00923: FROM keyword not found where expected 



     SQL》 spool off 



     SQL》 



分析 



     这个错误容易让人误解               关键字 FROM       是有的  但是你在第二行的 SUBSTR  中缺了 



一个括号  这个错误也可能是由于在 SELECT  语句中缺少列名导致的                                    如果在 SELECT  中 



的列名之后没有逗号  那么查询的处理机制会认为没有 FROM  关键字  上边的语句可以更 



                                                                                        475 


…………………………………………………………Page 476……………………………………………………………

SQL 21  日自学通(V1。0)                                                                   翻译人      笨猪 



正如下 



SQL》 select substr(tablespace_name;1;15) a; 



    2                  substr(file_name;1;45)  c;  bytes 



    3    from  sys。d
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!