Client Oracle Database cho Mac, iPhone và iPad
Driver giao tiếp bằng giao thức TNS của Oracle và được viết bằng Swift, nên máy Mac của bạn không cần Instant Client hay bất kỳ thành phần nào khác của Oracle. Chạy SQL và PL/SQL, kể cả script viết cho SQL*Plus, và đọc những gì DBMS_OUTPUT in ra ngay cạnh mỗi kết quả.
Dùng được trên Mac, iPhone và iPadDriver được tải về ở lần đầu bạn chọn Oracle


Tóm tắt
- Ngôn ngữ query
- SQL
- Driver
- Tải về ở lần dùng đầu
- Cách kết nối
- Host và port, SSH tunnel, SSL/TLS
- Port mặc định
- 1521
- Phiên bản tối thiểu
- 11.1, bắt buộc: server cũ hơn bị từ chối
- iPhone và iPad
- Mở được
Kết nối
Nhập host, port của listener và Tên dịch vụ (Service Name), hoặc đổi Loại kết nối (Connection Type) sang SID cho instance không có service. Đăng nhập bằng username và mật khẩu, với vai trò Normal hoặc SYSDBA, SYSOPER.
Native Network Encryption không cần thiết lập gì: khi server yêu cầu, AES kèm checksum SHA-2 sẽ được đề xuất, và thiết lập Network Encryption thay đổi những gì TablePro đề xuất. Với TLS, hãy chọn Required để dùng TCPS, hoặc Xác minh CA (Verify CA) hay Xác minh danh tính (Verify Identity) kèm chứng chỉ CA. Connection mới để SSL tắt, và Ưu tiên (Preferred) vẫn kết nối bằng TCP không mã hóa.
Với Oracle Autonomous Database, hãy chép host, port và service name từ chuỗi kết nối TLS, không phải chuỗi mTLS, rồi đặt SSL là Required hoặc Xác minh CA (Verify CA). File wallet không bao giờ được đọc, nên cơ sở dữ liệu phải chấp nhận TLS không có mutual TLS.
RAC SCAN listener, shared server hay load balancer đứng trước cơ sở dữ liệu đều không cần cấu hình thêm, và SSH tunnel đưa bạn tới listener trong mạng nội bộ.
SQL, PL/SQL và transaction
Một khối PL/SQL hay một stored unit chạy như một câu lệnh duy nhất, dù bên trong có bao nhiêu dấu chấm phẩy: đặt con trỏ vào trong rồi chạy. Script viết cho SQL*Plus hay SQL Developer chạy nguyên văn, với dòng chỉ có / kết thúc unit phía trên nó. Unit không biên dịch được sẽ báo lỗi bằng chính thông báo của Oracle, mỗi lỗi một dòng kèm vị trí.
Các dòng DBMS_OUTPUT.PUT_LINE hiện cùng kết quả của câu lệnh đã in ra chúng, không cần SET SERVEROUTPUT ON. Trong một anonymous block, :name là một tham số query bạn điền từ một bảng nhập.
Mỗi câu lệnh được commit ngay khi chạy thành công. Hãy bắt đầu bằng SET TRANSACTION, SAVEPOINT hoặc LOCK TABLE để giữ thay đổi lại, và mọi thứ sau đó chờ tới khi bạn COMMIT hoặc ROLLBACK, kể cả các lần lưu từ data grid.
Mỗi user là một schema, và Cmd+K đổi schema đang dùng mà không cần kết nối lại. Thay đổi trên các dòng được giữ chờ lưu cùng Preview SQL. Khối lệnh nào drop hay truncate, kể cả qua EXECUTE IMMEDIATE, đều bật cảnh báo câu lệnh nguy hiểm trước khi chạy.
Schema
Tab Structure viết câu ALTER TABLE để thêm, đổi tên, sửa và xóa cột, và để tạo index, với tên phân biệt hoa thường được đặt trong ngoặc kép. Thông tin table còn có khóa chính, khóa ngoại và DDL CREATE TABLE.
Table có partition liệt kê các partition bên dưới, mỗi partition kèm vị trí của nó, và subpartition nằm lồng dưới partition của mình. Hãy query một partition bằng SELECT * FROM orders PARTITION (p2024).
Compare & Sync, thuộc gói Starter, so sánh hai schema Oracle, hoặc dữ liệu của chúng, rồi lưu một script có dòng / sau mỗi unit, sẵn sàng chạy trong SQL*Plus hoặc SQLcl.
Export trên server
Server-Side Export khởi chạy một job Data Pump ghi một table vào một đối tượng DIRECTORY trên server, với chính quyền của bạn. Không có gì được ghi xuống máy Mac. Job vẫn tiếp tục chạy sau khi hộp thoại báo đã khởi chạy; hãy theo dõi nó trong DBA_DATAPUMP_JOBS.
Di chuyển dữ liệu
Import file CSV, TSV, JSON, JSONL, XLSX và SQL; khi một file dữ liệu tạo table mới, tên đề xuất được viết hoa và nằm trong giới hạn độ dài của Oracle. Export table hoặc kết quả query ra CSV, JSON, SQL, XLSX, Markdown, HTML và XML. Bản export SQL thêm một dòng / sau mỗi routine và trigger, để SQL*Plus khôi phục được.
iPhone và iPad
Bạn tạo được connection Oracle ngay trong ứng dụng cho iPhone và iPad, và ứng dụng kết nối trực tiếp tới nó.
Trên iPhone và iPad, driver Oracle có sẵn trong ứng dụng. Form connection nhận Service Name hoặc SID, vai trò SYSDBA và SYSOPER, và thiết lập Network Encryption. Bạn xem table dưới dạng thẻ, sửa các dòng có khóa chính và chạy SQL trong tab Truy vấn (Query); việc tạo hay sửa cấu trúc table vẫn làm trên Mac.
Giới hạn
- Không hỗ trợ Oracle wallet, xác thực OS, Kerberos và LDAP. Hãy kết nối bằng service name hoặc SID cùng mật khẩu.
- Oracle không có EXPLAIN hay màn hình execution plan.
- Không có Users & Roles. Hãy quản lý tài khoản bằng CREATE USER và GRANT trong editor.
- Package không được liệt kê trong sidebar. Procedure và function độc lập thì có.
Câu hỏi về Oracle
Vì sao tôi không thấy table nào của ứng dụng mình?
Có lẽ bạn đã kết nối vào container database. Mỗi pluggable database có service name riêng, như XEPDB1 nằm trong XE. Hãy chạy lsnrctl services trên server để xem những tên mà listener phục vụ.
Vì sao SET SERVEROUTPUT ON bị lỗi?
Các lệnh của SQL*Plus như SET SERVEROUTPUT ON, SHOW ERRORS và EXEC không phải SQL, nên server từ chối. Hãy xóa chúng đi: output đã bật ngay từ lúc kết nối. Hãy viết EXEC p thành BEGIN p; END;.
Tài khoản dùng password verifier 10G cũ có kết nối được không?
Có, dù Oracle đã ngừng khuyến nghị cách băm dựa trên DES mà verifier này dùng. Hãy đổi mật khẩu bằng ALTER USER … IDENTIFIED BY rồi kiểm tra cột password_versions trong dba_users đã có 11G hoặc 12C.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên