2012-02-07 24 views
21

Tôi có một số báo cáo INSERT 800-1200 được tạo từ một bảng excel. Tôi muốn chạy chúng trong TOAD - Oracle db.Cóc cho Oracle .. Làm thế nào để thực thi nhiều câu lệnh?

Nếu tôi nhấn F9, nó chỉ chạy một dòng và F5 mang lại cho tôi vấn đề về cú pháp và dường như không hoạt động? Tôi đang thiếu gì ở đây?

+1

Lỗi là gì? Bạn có thể thêm một ví dụ nhỏ về các câu lệnh thất bại không? –

+0

F5, bị treo và không làm gì cả, và tôi cần hủy thao tác sau vài phút. F9 trên một dòng có nhiều câu lệnh được phân cách bằng dấu ";" đưa ra lỗi nói rằng có một ký tự không hợp lệ sau dấu ";" đầu tiên – user1191463

+1

Đã lâu rồi kể từ khi tôi sử dụng TOAD, nhưng nếu tôi nhớ chính xác có một vài trường hợp trình phân tích cú pháp của nó không hoạt động chính xác. Ví dụ: cơ chế trích dẫn thay thế, ví dụ: 'q '! ...!'' và nhận xét sau dấu chấm phẩy. Bạn không chắc chắn lý do tại sao F5 sẽ treo, trừ khi nó mở một phiên khác và đang chờ phiên hiện tại của bạn cam kết/quay lại? Dù bằng cách nào, nó sẽ giúp nếu bạn có thể đăng một bài kiểm tra nhỏ. –

Trả lời

27

F9 chỉ thực thi một câu lệnh. Theo mặc định, Toad sẽ cố gắng thực thi câu lệnh ở bất cứ đâu con trỏ của bạn hoặc xử lý tất cả văn bản được đánh dấu như một câu lệnh và cố gắng thực hiện điều đó. A ; là không cần thiết trong trường hợp này.

F5 là "Thực hiện như Script" có nghĩa là Toad sẽ mất một trong hai hoàn thành đánh dấu văn bản (hoặc tất cả mọi thứ trong trình soạn thảo của bạn nếu không có gì được đánh dấu) có chứa nhiều hơn một tuyên bố và thực hiện nó như thể đó là một kịch bản trong SQL *Thêm. Vì vậy, trong trường hợp này, mỗi câu lệnh phải được theo sau là ; và đôi khi (trong các trường hợp PL/SQL) kết thúc bằng một số /.

+0

Biết lý do tại sao F5 cho đầu ra dưới dạng văn bản thuần, trong khi F9 cho đầu ra dưới dạng bảng tính hoặc dưới dạng cửa sổ TOAD mới cho một điều gì đó giống như tuyên bố mô tả? –

+0

@PeterBecich: đó là vì F5 đang được thực hiện trong một chương trình bên ngoài; TOAD không giải thích kết quả là văn bản thuần túy. F9, mặt khác, đang được thực hiện bởi TOAD trực tiếp để nó có thể định dạng kết quả trong một bố cục lưới đẹp. –

4

Đánh dấu mọi thứ bạn muốn chạy và chạy dưới dạng tập lệnh. Bạn có thể làm điều đó bằng cách nhấn vào biểu tượng trên thanh trình đơn trông giống như một tập tin văn bản với một tia chớp trên đó. Điều đó cũng giống như nhấn F5. Vì vậy, nếu F5 không hoạt động, bạn có thể gặp lỗi trong tập lệnh của mình.

Bạn có dấu chấm phẩy sau mỗi câu lệnh không?

2

tôi thích Execute qua SQL * Plus tùy chọn. Nó nằm trong menu mũi tên xuống dưới nút "Thực thi dưới dạng tập lệnh".

1

Mở nhiều phiên bản của Toad và thực thi.

1

Bạn có thể vào f5 nó sẽ thực thi tất cả các tập lệnh trên tab.

Hoặc

Bạn có thể tạo một file sql và đặt tất cả các báo cáo chèn trong đó và hơn cung cấp cho các đường dẫn tập tin trong cộng sql và thực thi.

4

Vuốt nhiều câu lệnh trong khối BEGIN END để tạo một câu lệnh và thêm dấu gạch chéo sau END; mệnh đề.

BEGIN 
    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Bite in the Apple', 'Chrisann Brennan'); 

    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Restaurant at the End of the Universe', 'Douglas Adams'); 
END; 
/

Bằng cách đó, nó chỉ là ctrl-a sau đó nhập ctrl và nó đi.

1
  1. Chỉ cần thực hiện tất cả truy vấn của bạn;
  2. Chọn tất cả các truy vấn bạn cần (chèn, chọn, ...).
  3. Đẩy hoặc F5 hoặc F9 cả hai Hoạt động.

Không cần thiết để thực hiện như kịch bản

1
begin 

insert into fiscal_year values(2001,'01-jan-2001','31-dec-2001'); 
insert into fiscal_year values(2002,'01-jan-2002','31-dec-2002'); 
insert into fiscal_year values(2003,'01-jan-2003','31-dec-2003'); 
insert into fiscal_year values(2004,'01-jan-2004','31-dec-2004'); 

end; 

Sử dụng như thế này và sau đó cam kết.

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