2012-05-02 29 views
8

yapar ben çok sinir bozucu bir sorunla karşı karşıyayım SQL programları çalıştırma etmez. Bazı SQL komut dosyaları (Notepad ++) yazdım. Şimdi SQL * Plus (Windows 7'de komut satırından) ile çalıştırmaya çalıştığımda, ORA-00933: SQL command not properly ended gibi hatalar alıyorum.SQL * Plus, SQL Geliştirici

Sonra kopyayı & kopyalayın SQL Developer çalışma sayfası penceresine yapıştırın, Çalıştır düğmesine basın ve komut dosyası herhangi bir sorun/hata olmadan çalıştırır.

uzun araştırmadan sonra, bunu anlamıyor, SQL * Plus (satır karakterleri ve sekmeler dahil) bazı beyaz alanlara sahip bir sorunu olduğunu düşünüyorum geldi.

SQL Geliştirici garip beyaz alanlara kurtulmak bilen varsayalım beri

, Bunu denedim: sonra oradan kopyalamak SQL Geliştirici çalışma penceresinin içine senaryoyu yapıştırın ve geri SQL komut dosyası yapıştırın. Bu bazı dosyalar için problemi çözdü, ancak tüm dosyaları değil. Bazı dosyalar, görünür bir neden olmadan yerlerde hataları göstermeye devam eder.

Hiç bu sorunu oldu mu? Bu komut dosyalarını SQL * Plus ile komut satırından çalıştırabilmek için ne yapmalıyım?

GÜNCELLEME:

SQL * Plus, çalışmak ancak SQL Developer işe yaramadı bir komut dosyası örneği:

SET ECHO ON; 

INSERT INTO MYDB.BOOK_TYPE (
    BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED 
) 
SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM 

    (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A, 
    (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B 

; 

alıyorum hatası:

SQL> SQL> SET ECHO ON; 
SQL> 
SQL> INSERT INTO MYDB.BOOK_TYPE (
    2  BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED 
    3 ) 
    4 SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM 
    5 
SQL>   (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A, 
    2   (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B 
    3 
SQL> ; 
    1  (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A, 
    2* (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B 
Bu hatayı almaya tüm dosyalarda nedense (hata (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B olduğunu görmek gibi

, hata son satırdan önce görünür sonuç noktalı virgül.)

+1

Eğer çalışmayan bir senaryonun bir (tercihen küçük) örneği ekleyebilir miyim? –

+0

@Mark J. Bobak: Yukarıda ** UPDATE ** bakınız. – rapt

cevap

17

boş satırları kaldırın. sqlplus olarak
boş satır önceki ifadeyi durdurmak ve yenisini başlatmak anlamına gelir.

veya boş satırlar ayarlayabilirsiniz:

set sqlbl on 
+1

+1, Boş satırları biliyordum, ancak yapılandırma ayarıyla ilgili değil. –

+2

Hallelujah !!! Günümü kurtardın! Kafasına çivi vurdun. Çok teşekkür ederim! – rapt