2011-12-06 14 views
8

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?

+0

Tutaj jest wątek z podobnym zamiarem i dobrych wyjaśnień: http://stackoverflow.com/questions/1079949/sql-the-semicolon-or-the-slash – Michael

Odpowiedz

23

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.

+2

+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

2

; 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');

1

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.