DDL VS DCL的区别

时间:2016-09-28 18:01:09

标签: sql oracle

在Oracle网站中 generate Grant和Revoke属于DDL,但在很多其他网站上我看到DCL中的Grant和Revoke ...哪一个是正确的?

1 个答案:

答案 0 :(得分:1)

最好将GRANTREVOKE视为DDL。

正如mathguy指出的那样,这两个定义都不是真正的“正确”。但我建议你坚持使用Oracle定义有两个原因:

  1. Oracle已经对几乎所有内容进行了彻底的分类。 V$SQLCOMMAND中的每个可能的Oracle SQL命令都适合他们的系统。我发现的唯一例外是PL / SQL(一个匿名的PL / SQL块),无效(一个没有意义的命令)和Nothing(一个空字符串)。有人可能会说这些并不是真正的SQL语句,尽管在某些情况下对它们进行分类仍然很有用。我发现Oracle分类系统对创建一些PL / SQL语言工具很有帮助。
  2. 分类偶尔会很重要。例如,在调用DBMS_UTILITY.EXEC_DDL_STATEMENT时,确切知道Oracle认为是DDL是很重要的。除了真正的DDL之外的任何东西都会无声地失败。
相关问题