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.