Một vài năm trước, tôi đã phải viết một công cụ dịch thuật; bạn cung cấp cho nó một bộ sql và nó dịch sang phương ngữ của động cơ hiện đang được kết nối. Công cụ của tôi hoạt động trên Postgres (AKA PostgreSql), Ingres, DB2, Informix, Sybase và Oracle - ồ, và ANTS. Thành thật mà nói, Oracle là phần mềm yêu thích nhất của tôi (thêm về điều đó bên dưới) ... Thật không may cho bạn, mySql và SQL Server không có trong danh sách (vào thời điểm đó cả hai đều không được coi là một RDBMS nghiêm túc - nhưng thời gian sẽ thay đổi).
Không quan tâm đến chất lượng hoặc hiệu suất của động cơ - cũng như tính dễ tạo và khôi phục các bản sao lưu - đây là những điểm khác biệt chính:
- kiểu dữ liệu
- giới hạn
- thương binh
- từ dành riêng
- ngữ nghĩa rỗng (xem bên dưới)
- ngữ nghĩa trích dẫn (trích dẫn đơn ', trích dẫn kép "hoặc một trong hai)
- ngữ nghĩa hoàn thành câu lệnh
- ngữ nghĩa của hàm
- xử lý ngày tháng (bao gồm các từ khóa không đổi như 'bây giờ' và các định dạng hàm đầu vào / đầu ra)
- liệu nhận xét nội tuyến có được phép không
- độ dài thuộc tính tối đa
- số lượng thuộc tính tối đa
- ngữ nghĩa kết nối / mô hình bảo mật.
Không làm bạn nhàm chán với tất cả dữ liệu chuyển đổi, đây là mẫu cho một loại dữ liệu, lvarchar:
oracle =varchar (% x) sybase =text db2 ="long varchar" Informix =lvarchar postgres =varchar (% x) architecture =varchar (% x) ingres =varchar (% x,% y)
Theo quan điểm của tôi, thỏa thuận lớn nhất của tất cả là xử lý rỗng; Oracle SILENTLY chuyển đổi các chuỗi đầu vào trống thành các giá trị rỗng. ... Ở một nơi nào đó, một thời gian dài trước đây, tôi đã đọc một bài viết mà ai đó đã viết về "Mười bảy ý nghĩa của Null" hoặc một số điều tương tự và điểm thực sự là null rất có giá trị và sự phân biệt giữa chuỗi null và chuỗi rỗng là hữu ích và không tầm thường! Tôi nghĩ Oracle đã mắc một sai lầm lớn về vấn đề này; không ai trong số những người khác có hành vi này (mà tôi từng thấy).
Yêu thích thứ hai của tôi là ANTS vì không giống như tất cả những người khác, họ THỰC HIỆN các quy tắc ngớ ngẩn cho cú pháp hoàn hảo mà hoàn toàn không ai làm và mặc dù họ có thể là công ty DB duy nhất cung cấp sự tuân thủ hoàn hảo cho tiêu chuẩn, họ cũng là một nỗi đau của hoàng gia trong mông để viết mã.
Xa và xa yêu thích của tôi là Postgres; nó rất nhanh trong các tình huống _real_world_, có hỗ trợ tuyệt vời và là mã nguồn mở / miễn phí.