3
Oracleのサイト Types of SQL Statements グラントと取り消しはDDLに属しますが、他の多くのサイトでは、DCLで許可と取り消しを参照しています...どちらが正しいですか?DDL VS DCLの差
Oracleのサイト Types of SQL Statements グラントと取り消しはDDLに属しますが、他の多くのサイトでは、DCLで許可と取り消しを参照しています...どちらが正しいですか?DDL VS DCLの差
GRANT
とREVOKE
をDDLとして扱うのが最善です。
mathguyが指摘しているように、いずれの定義も本当に「正しい」ものではありません。しかし、私はオラクルの定義に従うことをお勧めします。
V$SQLCOMMAND
は、システムに適合します。 PL/SQL(無名PL/SQLブロック)、Invalid(意味のないコマンド)、Nothing(空の文字列)のみが見つかりました。それらは実際にはSQL文ではないと主張することができますが、文脈によってはそれらを分類することはまだ有効です。私は、いくつかのPL/SQL言語ツールの作成に役立つOracle分類システムを見つけました。DBMS_UTILITY.EXEC_DDL_STATEMENT
を呼び出すときにOracleがDDLとみなすものを正確に把握することが重要です。真のDDL以外のものは何もしなくなります。
これらは定義であり、その性質上、「正しい」または「正しくない」ことはできません。むしろ、「Oracleのマニュアルで使用されているDDL定義を使用すると、GRANT文はDDL文です。大部分の(ただしすべてではない)ケースでは、そうしなければならない強い理由がない限り、オラクルの定義に従うのが最良です。 – mathguy