We have been having some debate this week at my company as to how we should write our SQL scripts.
Background: Our database is Oracle 10g (upgrading to 11 soon).
Almost all Oracle deployments are done through SQL*Plus (that weird little command line tool that your DBA uses). And in SQL*Plus a lone slash basically means "re-execute last SQL or PL/SQL command that I just executed".
See
http://ss64.com/ora/syntax-sqlplus.html
Rule of thumb would be to use slash with things that do BEGIN .. END
or where you can use CREATE OR REPLACE
.
For inserts that need to be unique use
INSERT INTO my_table ()
SELECT
FROM dual
WHERE NOT EXISTS (SELECT
FROM my_table
WHERE )