Hemos tenido un debate esta semana en mi compañía sobre cómo debemos escribir nuestros scripts SQL.
Antecedentes: nuestra base de datos es Oracle 10g (se actualizará a 11 pronto). Nuestro equipo de DBA utiliza SQLPlus para implementar nuestros scripts en producción.
Ahora, tuvimos un despliegue recientemente que falló porque había usado tanto un punto y coma como una barra diagonal ( /
). El punto y coma estaba al final de cada declaración y la barra inclinada estaba entre declaraciones.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Hubo algunos desencadenantes que se agregaron más adelante en el script, se crearon algunas vistas y algunos procedimientos almacenados. Tener tanto el ;
y el /
causó que cada instrucción se ejecute dos veces causando errores (especialmente en las inserciones, que debían ser únicas).
En SQL Developer esto no sucede, en TOAD esto no sucede. Si ejecuta ciertos comandos, no funcionarán sin /
ellos.
En PL / SQL si tiene un subprograma (DECLARE, BEGIN, END), el punto y coma utilizado se considerará parte del subprograma, por lo que debe usar la barra diagonal.
Entonces mi pregunta es esta: si su base de datos es Oracle, ¿cuál es la forma correcta de escribir su script SQL? Ya que sabe que su base de datos es Oracle, ¿debe usar siempre el /
?
sqlterminator
a !
si lo desea) y esta convención tiende a ser seguido por otras herramientas. Sin embargo, el lenguaje PL / SQL usa punto y coma como elemento de sintaxis obligatoria.