2011-08-02 35 views
10

Tôi có một kịch bản mà tạo ra một tập tin văn bản có chứa nhiều câu lệnh SQL UPDATE:PL/SQL Nhà phát triển: Nhiều câu lệnh?

UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1'; 
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2'; 
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3'; 
etc. 

Khi tôi dán khối trên của văn bản vào một cửa sổ lệnh SQL trong PL/SQL Developer, nó nói với tôi rằng các dấu chấm phẩy là một nhân vật không hợp lệ. Khi tôi xóa nó, nó thông báo cho tôi rằng tuyên bố đầu tiên của tôi không bị chấm dứt đúng cách.

Làm cách nào để chạy các câu lệnh này trong một lần thực hiện?

Trả lời

7

Tôi nghĩ bạn đang sử dụng cửa sổ Kiểm tra. Điều này chỉ có thể thực hiện một câu lệnh duy nhất. Cửa sổ SQL và Cửa sổ Lệnh có thể chạy nhiều câu lệnh.

Nếu bạn cần chạy điều này trong cửa sổ Kiểm tra, bạn có thể nhúng nó vào khối begin..end để biến khối câu lệnh PL/SQL thành khối.

+0

Cửa sổ lệnh hoạt động, vì nó sẽ chỉ chấp nhận một lô SQL khổng lồ, được dán vào, như thể tôi đã gõ từng dòng. Tôi đang ở trong Cửa sổ SQL, và đó là nơi tôi nhận được lỗi tôi mô tả ở trên. Có cách nào khác tôi nên chấm dứt các phát biểu của tôi trong Cửa sổ SQL không? –

+0

Không. Dấu chấm phẩy là ok và cú pháp cũng tốt. SQL này sẽ chạy tốt. Trên thực tế, nó có. Khi tôi thực hiện nó, nó phân tích tốt và nói với tôi 'Bảng hoặc xem không tìm thấy' như mong đợi. Bây giờ có vẻ như với tôi rằng đây không phải là SQL thực tế của bạn (hoặc bạn có TableX với một Field1 và một Field2?). – GolezTrol

+0

Đoạn mã trên, nguyên văn (không có vv), trong Cửa sổ SQL, sinh ra lỗi này: "ORA-00911: ký tự không hợp lệ", và sau đó đặt con trỏ vào dấu chấm phẩy đầu tiên. Nó hoạt động trong Command, nhưng không phải trong SQL. Tôi có thể có phiên bản PL/SQL mới hơn/cũ hơn không? –

2

thử cách này;

UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1' 
/
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2' 
/
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3' 
/
+0

Rất tốt cho đến bây giờ, nhưng kết thúc trên các Tab khác nhau –

1

Hi,

bạn có thể thử này.

Declare 
Begin 
UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1'; 
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2'; 
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3'; 
End; 

trong nhà phát triển sql để thực hiện nhiều truy vấn bạn cần để tạo khối ẩn danh.

hy vọng điều này giúp công việc của bạn trở nên dễ dàng.

+0

Điều này không hiệu quả đối với tôi –

3

Tôi cũng phải đối mặt với lỗi này. Bạn cần phải đi đến các công cụ-> sở thích. Trong các kiểu cửa sổ, hãy vào cửa sổ SQL và chọn "Auto select statement". Điều này sẽ loại bỏ lỗi.

Các vấn đề liên quan