oracle SQL plus как завершить команду в файле SQL?

У меня есть файл SQL с несколькими командами.
какой это правильный способ заканчивать строки в скрипте?
это Слэш [ / ] точка с запятой [;] оба?
есть ли diffarent между обычным SQL-запросы и хранимые процедуры код?
спасибо

3 ответов


для обычных операторов SQL либо / на линии самостоятельно, или ; в конце команды, будет работать нормально.

для операторов, которые включают код PL / SQL, например CREATE FUNCTION, CREATE PROCEDURE, CREATE PACKAGE, CREATE TYPE, или анонимных блоков (DECLARE/BEGIN/END), a ; не будет выполнять команду. Поскольку PL / SQL использует точки с запятой как терминаторы строк, его использование в качестве Терминатора команд должно быть подавлено в этих операторах. Поэтому в этих случаях, вы должны использовать / для выполнения команды.

по моему опыту, люди предпочитают использовать точку с запятой, когда это возможно, и использовать косую черту только при необходимости.

обратите внимание, что для клиентских команд SQLPlus - таких как SET или EXECUTE -- нет необходимости в Терминаторе команд вообще, хотя люди часто заканчивают их точкой с запятой по привычке.


; так вы должны закончить свои команды sql, то же самое касается процедур PLSQL:

select * from dual;

select sysdate from dual;

select table_name from user tables;

exec dbms_output.putline('Hello');


обычно мы можем использовать"; " для завершения инструкции sql,
но для создания functions, triggers, procedures вы должны использовать "/" после "; " для завершения инструкции SQL.
"/ " может не потребоваться при использовании некоторых инструментов разработчиков, таких как oracle SQL developer, toad и т. д., Но это должен быть мандат при выполнении запроса непосредственно на машине linux.