3
В Oracle сайт Types of SQL Statements Grant and Revoke принадлежит DDL, но во многих других сайтах я вижу грант и отмену в DCL ... какой из них правильный?DDL VS DCL разница
В Oracle сайт Types of SQL Statements Grant and Revoke принадлежит DDL, но во многих других сайтах я вижу грант и отмену в DCL ... какой из них правильный?DDL VS DCL разница
Лучше всего обрабатывать GRANT
и REVOKE
как DDL.
Как указано в Mathguy, ни одно определение не является действительно «правильным». Но я рекомендую вам придерживаться определения Oracle по двум причинам:
V$SQLCOMMAND
будет вписываться в их систему. Единственными исключениями, которые я нашел, являются PL/SQL (анонимный блок PL/SQL), Invalid (команда, которая не имеет смысла) и Nothing (пустая строка). Можно утверждать, что на самом деле это не SQL-выражения, хотя в некоторых контекстах все же полезно их классифицировать. Я нашел систему классификации Oracle полезной для создания некоторых инструментов языка PL/SQL.DBMS_UTILITY.EXEC_DDL_STATEMENT
. Все, кроме истинного DDL, будет терпеть неудачу.
Это определения, и по своей природе они не могут быть «правильными» или «неправильными». Скорее всего, вам нужно сказать, что «используя определение DDL, используемое в документации Oracle, заявления GRANT являются операторами DDL». В большинстве (но не во всех) случаях вам лучше следовать определению Oracle, если у вас нет веских оснований для этого. – mathguy