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 )