oracle数据库中关键字

oracle数据库中关键字

ID:8967854

大小:79.00 KB

页数:7页

时间:2018-04-13

oracle数据库中关键字_第1页
oracle数据库中关键字_第2页
oracle数据库中关键字_第3页
oracle数据库中关键字_第4页
oracle数据库中关键字_第5页
资源描述:

《oracle数据库中关键字》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Oracle数据库中关键字在Oracle数据库中有一些单词具有特定的意思,也许不是提供给你的,但是使用它们你就可以不必解析、执行和获取你所编写的代码。为了更准确,在第一句话中的一些单词可以归类为保留字和关键字。在关键字的分类中,上下文起到了作用,因为一个单词不总是保留字。例如,在Oracle数据库中有一些单词具有特定的意思,也许不是提供给你的,但是使用它们你就可以不必解析、执行和获取你所编写的代码。为了更准确,在第一句话中的“一些单词”可以归类为保留字和关键字。在关键字的分类中,上下文起到了作用,因

2、为一个单词不总是保留字。例如,单词COMMIT本身可以触发很多事件,所以你可能要假设COMMIT是Oracle密切使用的一个关键字。从Oracle的角度看,就是只有它可以使用这个单词。但结果是,COMMIT并没有如它希望的那样。如果你想的话你可以创建一个叫做COMMIT的表,因为COMMIT是一个关键字,这比保留字的级别要低。    SQL>createtablecommit(idnumber);Table create.SQL>   保留字是被锁定的,而关键字在某些条件下可以使用。审查是一个有用的

3、工具或功能,那么如果你想创建你自己的审查表,你是否可以使用“createtableaudit(...)”语句呢?    SQL> createtableaudit(idnumber);createtableaudit(idnumber);            *ERRORatline1:ORA-00903:invalidtablenameSQL>   至少在SQL中是不行的,你不能通过这种方法使用“audit”。既然你不想使用这些特殊单词,那么你怎样能知道(或者你能从哪找到)特殊单词有哪些呢?在文

4、档库(在一个索引中)中的几个指导包括了这个列表,但是权威的和一站式的来源是V$RESERVED_WORDS数据字典视图。  视图的名称表示这只是关于保留字的;但是描述视图的时候,重要的主键列被称为KEYWORD。这使得当我要了解关键字和保留字的区别时把我搞糊涂了。它使得视图中的第二列也很重要:RESERVED。因此V$RESERVED_WORDS的解码环如下所示:   RESERVED值意思Y是保留字N不是保留字        数据库参考指导在对V$RESERVED_WORDS的描述中准确地表达了这

5、个意思。视图有其它几个字段,而它们所显示出来的(或没有)很有意思。拿LENGTH举例。这个字段如它的名字所显示的,表示了关键字的长度。这带来两个问题。首先,为什么这个长度重要呢?其次,这个值既然很容易得到,那为什么不把它存储为一个属性呢?(是哪个正规化作出这个例外的?)  在Oracle10g中,有27个关键字长度是1,有29个关键字长度为1或为空。这些长度为1或为空的关键字有哪些呢(而且它们的保留状态是什么)?我正在思考长度为1的关键字,因为它们通常包括符号。也可以包括关键字“>>”,但是这样的话

6、要考虑的关键字的数量就超出了在这里所需要考虑的。   关键字(保留的)关键字(不保留的)

7、:-[<]!*>(=.@^/,)+&EAGMKU PT在非保留关键字字段中有两个值为空的例子。它们显示为一个空格、或为空或其它的什么吗?这个问题很难回答,因为它们都没有ASCII值。如果其中一个表现为一个或多个空格的形式,那么可能backspace、tab、新行或者空格的值就对应地变成了8、9、10或32。          让我们更深一层地研究视图定义,并看看这些值是从哪来的。使用Toad深入到GV_$RES

8、ERVED_WORDS脚本(在SYSschema下面,VIEWS)中,我们看到下面的内容:     SELECT inst_id, keyword, LENGTH,  DECODE (MOD (TRUNC (TYPE / 2), 2), 0, 'N', 1, 'Y', '?') reserved,  DECODE (MOD (TRUNC (TYPE / 4), 2), 0, 'N', 1, 'Y', '?') res_type,  DECODE (MOD (TRUNC (TYPE / 8), 2),

9、 0, 'N', 1, 'Y', '?') res_attr,  DECODE (MOD (TRUNC (TYPE / 16), 2), 0, 'N', 1, 'Y', '?') res_semi,  DECODE (MOD (TRUNC (TYPE / 32), 2), 0, 'N', 1, 'Y', '?') duplicate  FROM x$kwddef; 在格式化一些字段并按类型排序之后(只针对长度小于等于1的),输出下面的内容:        ADDR  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。