Mam plik SQL z kilkoma poleceniami.
Jaki jest właściwy sposób zakończenia linii w skrypcie?
Czy to jest slash [/] średnik [;] zarówno?
Czy istnieje różnica między zwykłymi plikami sql a kodem procedury zapisanej?
Dziękujemyoracle SQL oraz jak zakończyć polecenie w pliku SQL?
Odpowiedz
Dla normalnych SQL, albo /
na zasadzie sama linia lub ;
na końcu polecenia będzie działać poprawnie.
Do sprawozdania, które zawierają kod PL/SQL, takich jak CREATE FUNCTION
, CREATE PROCEDURE
, CREATE PACKAGE
, CREATE TYPE
lub anonimowych bloków (DECLARE
/BEGIN
/END
), A ;
nie wykona polecenia. Ponieważ PL/SQL używa średników jako terminatorów linii, jego użycie jako terminatora poleceń musi być wyłączone w tych instrukcjach. W takich przypadkach należy użyć polecenia /
, aby wykonać polecenie.
Z mojego doświadczenia wynika, że ludzie wolą używać średnika, kiedy to możliwe, i używać ukośnika tylko wtedy, gdy jest to wymagane.
Należy zauważyć, że w przypadku poleceń klienta SQLPlus - takich jak SET
lub EXECUTE
- w ogóle nie jest konieczne stosowanie żadnego polecenia, chociaż często kończą się one na nietypowym średniku.
+1, dobrej odpowiedzi. Myślę, że ludzie wolą używać średnika, gdy jest to możliwe, bardziej naturalne jest kończenie polecenia średnikiem i powrotem do wyniku, niż powrót do wyniku, wpisanie ukośnika i powrót do wyniku. Ukośnik musi być jedynym znakiem na linii, gdy jest używany do wykonania bufora poleceń. – DCookie
; jest sposób należy zakończyć swoje polecenia SQL, to samo dotyczy procedur plsql:
select * from dual;
select sysdate from dual;
select table_name from user tables;
exec dbms_output.putline('Hello');
Zazwyczaj możemy użyć „;
”, aby zakończyć sql,
ale dla stworzenia functions
, triggers
, procedures
trzeba użyć „/
” po „;
”, aby zakończyć polecenie SQL.
"/
" może nie być wymagana, gdy używasz narzędzia programistów takich jak Oracle SQL, ropucha itp., Ale powinno to być obowiązkowe, gdy wykonasz zapytanie bezpośrednio na komputerze z systemem Linux.
Tutaj jest wątek z podobnym zamiarem i dobrych wyjaśnień: http://stackoverflow.com/questions/1079949/sql-the-semicolon-or-the-slash – Michael