เราได้มีการถกเถียงกันในสัปดาห์นี้ที่ บริษัท ของฉันว่าเราควรเขียนสคริปต์ SQL ของเราอย่างไร
พื้นหลัง: ฐานข้อมูลของเราคือ Oracle 10g (อัปเกรดเป็น 11 เร็ว ๆ นี้) ทีม DBA ของเราใช้ SQLPlus เพื่อปรับใช้สคริปต์ของเราเพื่อการผลิต
ตอนนี้เรามีการปรับใช้ที่ล้มเหลวเมื่อเร็ว ๆ นี้เพราะมันใช้ทั้งอัฒภาคและฟอร์เวิร์ดสแลช ( /
) อัฒภาคอยู่ที่ท้ายของแต่ละคำสั่งและเครื่องหมายทับอยู่ระหว่างข้อความ
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
มีทริกเกอร์บางอย่างถูกเพิ่มเข้ามาในสคริปต์บางมุมมองที่สร้างขึ้นรวมถึงบางกระบวนงานที่เก็บไว้ การมีทั้ง;
และ/
ทำให้แต่ละคำสั่งรันสองครั้งทำให้เกิดข้อผิดพลาด (โดยเฉพาะในส่วนแทรกซึ่งจำเป็นต้องไม่ซ้ำกัน)
ใน SQL Developer สิ่งนี้จะไม่เกิดขึ้นใน TOAD สิ่งนี้จะไม่เกิดขึ้น หากคุณเรียกใช้คำสั่งบางอย่างพวกเขาจะไม่ทำงานหากไม่มีคำสั่ง/
เหล่านั้น
ใน PL / SQL หากคุณมีโปรแกรมย่อย (DECLARE, BEGIN, END) เครื่องหมายอัฒภาคที่ใช้จะถูกพิจารณาว่าเป็นส่วนหนึ่งของโปรแกรมย่อยดังนั้นคุณต้องใช้เครื่องหมายทับ
ดังนั้นคำถามของฉันคือ: ถ้าฐานข้อมูลของคุณคือ Oracle, วิธีที่เหมาะสมในการเขียนสคริปต์ SQL ของคุณคืออะไร? เมื่อคุณรู้ว่าฐานข้อมูลของคุณเป็น Oracle คุณควรใช้/
หรือไม่
sqlterminator
การ!
หากคุณต้องการ) และการประชุมนี้มีแนวโน้มที่จะตามมาด้วยเครื่องมืออื่น ๆ อย่างไรก็ตามภาษา PL / SQL ใช้เครื่องหมายอัฒภาคเป็นองค์ประกอบไวยากรณ์บังคับ