Tôi chạy tập lệnh của mình mọi thứ đều hoàn hảo. Nhưng khi tôi đi trên máy chủ và tôi chạy cùng một kịch bản trên cùng một cơ sở dữ liệu, lược đồ, người dùng với sqlplus một số lỗi xuất hiện (tính toàn vẹn, duy nhất ...)?
Dường như tập lệnh của bạn xử lý việc tạo và chèn, nhưng không xóa dữ liệu hiện có. Nếu không có một cái nhìn vào kịch bản của bạn, không có cách nào để nói điều này, nhưng tôi có thể mô phỏng cùng với dữ liệu thử nghiệm của tôi.
test.sql
:
create table parts (id number primary key,
description varchar2(240)
)
/
insert into parts values(1,'Keyboard');
insert into parts values(2,'Mouse');
insert into parts values(3,'Monitor');
Chạy script trong SQL Developer:
Run trong SQL * Plus - cùng một người dùng, lược đồ, cơ sở dữ liệu:
SQL> @/home/oracle/Desktop/test.sql
create table parts (id number primary key,
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
insert into parts values(1,'Keyboard')
*
ERROR at line 1:
ORA-00001: unique constraint (HR.SYS_C0016596) violated
insert into parts values(2,'Mouse')
*
ERROR at line 1:
ORA-00001: unique constraint (HR.SYS_C0016596) violated
insert into parts values(3,'Monitor')
*
ERROR at line 1:
ORA-00001: unique constraint (HR.SYS_C0016596) violated
tôi đã cùng vấn đề. Tôi cũng đã có một số câu lệnh kết thúc bằng dấu chấm phẩy và sau đó là dấu gạch chéo (\). SQLPlus sẽ chạy lại câu lệnh, nhưng SQL Developer sẽ không chạy. –
nó cũng có thể giúp thêm nhận xét vào mỗi bảng, do đó/được tạo bởi SQLDeveloper trong xuất, sẽ đứng trước câu lệnh "COMMENT ON TABLE" chứ không phải câu lệnh CREATE TABLE, do đó không có lỗi nào được tạo khi lệnh được thi hành lần thứ hai. Bất kỳ cách nào, tất cả đều rất buồn. – PierluigiVernetto
cũng kiểm tra http://stackoverflow.com/questions/1079949/sql-the-semicolon-or-the-slash. bạn có thể giảm thiểu vấn đề bằng cách sử dụng SQLDeveloper 4 và chơi với tùy chọn "terminator" – PierluigiVernetto