- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracl数据库中关键字
Oracle数据库中关键字
在 Oracle 数据库 中有一些单词具有特定的意思,也许不是提供给你的,但是使用它们你就可以不必解析、执行和获取你所编写的代码。为了更准确,在第一句话中的一些单词可以归 类为保留字和关键字。在关键字的分类中,上下文起到了作用,因为一个单词不总是保留字。例如,在Oracle HYPERLINK /html/database/ 数据库 中有一些单词具有特定的意思,也许不是提供给你的,但是使用它们你就可以不必解析、执行和获取你所编写的代码。为了更准确,在第一句话中的“一些单词”可 以归类为保留字和关键字。在关键字的分类中,上下文起到了作用,因为一个单词不总是保留字。例如,单词COMMIT 本身可以触发很多事件,所以你可能要假设COMMIT 是Oracle密切使用的一个关键字。从Oracle 的角度看,就是只有它可以使用这个单词。但结果是,COMMIT 并没有如它希望的那样。如果你想的话你可以创建一个叫做COMMIT 的表,因为COMMIT 是一个关键字,这比保留字的级别要低。
???
?SQL create table commit (id number);
Table? create.
SQL
??? 保留字是被锁定的,而关键字在某些条件下可以使用。审查是一个有用的工具或功能,那么如果你想创建你自己的审查表,你是否可以使用“create table audit (...)”语句呢?
???
?SQL? create table audit (id number);create table audit (id number);???????????? *ERROR at line 1:ORA-00903:invalid table name
SQL
??? 至少在SQL中是不行的,你不能通过这种方法使用“audit”。既然你不想使用这些特殊单词,那么你怎样能知道(或者你能从哪找到)特殊单词有哪些呢? 在文档库(在一个索引中)中的几个指导包括了这个列表,但是权威的和一站式的来源是V$RESERVED_WORDS 数据字典视图。
视图的名称表示这只是关于保留字的;但是描述视图的时候,重要的主键列被称为KEYWORD。这使得当我要了解关键字和保留字的区别时把我搞糊涂了。它使得视图中的第二列也很重要:RESERVED。因此V$RESERVED_WORDS 的解码环如下所示:
???
RESERVED值
意思
Y
是保留字
N
不是保留字
??????? 数据库参考指导在对V$RESERVED_WORDS的描述中准确地表达了这个意思。视图有其它几个字段,而它们所显示出来的(或没有)很有意思。拿 LENGTH举例。这个字段如它的名字所显示的,表示了关键字的长度。这带来两个问题。首先,为什么这个长度重要呢?其次,这个值既然很容易得到,那为什 么不把它存储为一个属性呢?(是哪个正规化作出这个例外的?)
在Oracle 10g 中,有27个关键字长度是1,有29个关键字长度为1或为空。这些长度为1或为空的关键字有哪些呢(而且它们的保留状态是什么)?我正在思考长度为1的关 键字,因为它们通常包括符号。也可以包括关键字“”,但是这样的话要考虑的关键字的数量就超出了在这里所需要考虑的。
???
关键字(保留的)
关键字(不保留的)
|:-[]!*(=.@^/,)+
EAGMKU?PT
在非保留关键字字段中有两个值为空的例子。它们显示为一个空格、或为空或其它的什么吗?这个问题很难回答,因为它们都没有ASCII 值。如果其中一个表现为一个或多个空格的形式,那么可能backspace、tab、新行或者空格的值就对应地变成了8、9、10或32。
???
??????? 让我们更深一层地研究视图定义,并看看这些值是从哪来的。使用Toad 深入到GV_$RESERVED_WORDS 脚本(在SYS schema下面,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),?0,?N,?1,?Y,??)?res_attr, DECODE?(MOD?(TRUNC?(TYPE?/?16),?2),?0,?N,?1,?Y,??)?res_semi, DECO
文档评论(0)