Ne zaman bir noktalı virgül vs kullanmaya gerek Oracle bir çizgi SQL muyum?
SQL komut yazmalıyız nasıl şirketimde bazı tartışmalar bu hafta geçiriyoruz.
Arka plan: Bizim veritabanı Oracle 10 g (11 yakında yükseltme). DBA ekibimiz üretim için komut dosyaları dağıtmak için SQLPlus kullanır.
Şimdi, bir noktalı virgül ve bir eğik çizgi (/
), hem de vardı çünkü başarısız bir dağıtmak atlattık. Noktalı virgül her deyim sonunda oldu ve çizgi ifadeleri arasındaydı.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Tetikleyiciler daha sonra senaryodaki bazı görüşler de bazı saklı yordam olarak yaratılan katma ediliyordu. ;
/
ikisinin de her ifade iki defa hatalar (özellikle benzersiz olması için gerekli olan ekler, neden çalışmasına neden oldu.
SQL Geliştirici bu bu olmaz TOAD durum değil. Eğer belirli komutları çalıştırmak için onlara /
olmadan çalışmazlar.
Eğer bir alt program (İLAN, başlangıç, BİTİŞ) varsa PL/SQL noktalı virgül kullanılan eğik çizgi kullanmak zorunda böylece alt parçası olarak kabul edilecektir.
Sorum şu: Eğer veritabanı Oracle, SQL komut dosyası yazmak için doğru yolu nedir? DB Oracle gerektiğini biliyorsun beri hep /
kullanınız?
CEVAP
Bu eski bir konu olduğunu biliyorum, ama ben sadece o tökezledi ve bu tamamen açıklanmış değil hissediyorum.
Farklı çalıştıkları için /
;
bir anlamı arasında SQL*Plus çok büyük bir fark var.
Güncel ne varsa ;
biter SQL deyimi /
yürütür "oysa". tampon Kullandığınızda bir ;
ve/
deyimi aslında iki kez yürütülür.
Kolayca bir deyimi çalıştırdıktan sonra: /
kullanarak görebilirsiniz
SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 18 12:37:20 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and OLAP options
SQL> drop table foo;
Table dropped.
SQL> /
drop table foo
*
ERROR at line 1:
ORA-00942: table or view does not exist
Aslında hata bildirimleri bu durumda.
drop table foo;
/
Ve bu SQL*içinde çalıştırmak ARTI bu çok kafa karıştırıcı olabilir
SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 18 12:38:05 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and OLAP options
SQL> @drop
Table dropped.
drop table foo
*
ERROR at line 1:
ORA-00942: table or view does not exist
/
esas CREATE PROCEDURE
bir deyim gibi ;
gömülü olan ifadeleri çalıştırmak için gereklidir.
Ne zaman SQL Server noktalı virgül kul...
Ne zaman ayraç sonra noktalı virgül ku...
Ne zaman Eclipse parametre listesi içi...
SQL Server, ne zaman ve ne zaman nokta...
JavaScript kütüphaneleri önde gelen no...