AI coding assistant đang thay đổi cách lập trình viên làm việc với SQL, PL/SQL và Oracle APEX.
Trước đây, khi muốn AI hỗ trợ viết query hoặc phân tích lỗi, developer thường phải copy DDL,
mô tả schema, paste query, rồi giải thích rất nhiều ngữ cảnh thủ công.
Cách làm đó vẫn dùng được, nhưng có một giới hạn lớn: AI không nhìn thấy database thật.
Nó không biết schema hiện tại có bảng nào, constraint nào, view nào, package nào đang invalid,
hoặc APEX metadata đang được cấu hình ra sao.
Oracle SQLcl MCP Server mở ra một cách làm việc mới. Thay vì chỉ dựa vào prompt,
AI assistant có thể kết nối đến Oracle Database thông qua SQLcl MCP Server,
đọc metadata, chạy query có kiểm soát, phân tích kết quả và hỗ trợ developer tốt hơn trong quá trình phát triển.
Oracle SQLcl MCP Server là gì?
SQLcl là công cụ dòng lệnh hiện đại của Oracle dành cho developer và DBA.
Với MCP Server, SQLcl có thể trở thành cầu nối giữa AI assistant và Oracle Database.
MCP, viết tắt của Model Context Protocol, là một giao thức giúp AI assistant kết nối với công cụ bên ngoài.
Trong trường hợp này, AI assistant như Codex, Copilot hoặc một MCP client khác có thể gọi SQLcl như một tool.
SQLcl sẽ kết nối đến Oracle Database, chạy lệnh được yêu cầu, rồi trả kết quả lại cho AI.
Nói đơn giản:
- AI assistant hiểu yêu cầu của developer.
- Nếu cần thông tin từ database, AI gọi SQLcl MCP Server.
- SQLcl dùng database connection đã cấu hình để chạy query hoặc đọc metadata.
- Kết quả được trả về cho AI để phân tích và trả lời tiếp.
Lược đồ tổng quan
Oracle SQLcl MCP Server flow
Developer
Đặt câu hỏi trong Codex, Copilot hoặc AI assistant hỗ trợ MCP.
→
AI Assistant
Hiểu yêu cầu, chọn tool phù hợp và quyết định có cần gọi SQLcl hay không.
→
SQLcl MCP
Kết nối đến Oracle Database, chạy SQL, PL/SQL hoặc đọc metadata.
→
Oracle DB
Trả metadata, query result, explain plan hoặc thông tin object.
AI là lớp điều phối, SQLcl MCP là công cụ thực thi. Quyền của database connection quyết định
AI có thể đọc hoặc thay đổi những gì trong database.
Vì sao APEX developer nên quan tâm?
Oracle APEX gắn rất chặt với database. Một ứng dụng APEX thường không chỉ có page và region,
mà còn có tables, views, packages, APEX metadata, ORDS APIs, automations, workflows và security configuration.
Nếu AI assistant có thể truy cập ngữ cảnh database thông qua SQLcl MCP Server,
nó có thể hỗ trợ developer trong nhiều việc thực tế hơn:
- Kiểm tra schema hiện tại có những table nào.
- Tạo SQL query dựa trên foreign key thật.
- Giải thích mối quan hệ giữa các bảng.
- Phân tích query chậm bằng execution plan.
- Kiểm tra object invalid.
- Đọc APEX metadata để rà soát page, region, item, process.
- Tạo tài liệu kỹ thuật từ schema và package hiện có.
- Đề xuất view hoặc package để làm sạch logic trong APEX.
Điều này đặc biệt hữu ích với các ứng dụng APEX lớn hoặc lâu năm,
nơi developer mới không thể nhớ hết cấu trúc database và metadata ứng dụng.
Chuẩn bị môi trường
Để dùng SQLcl MCP Server, bạn thường cần chuẩn bị:
- SQLcl phiên bản mới có hỗ trợ MCP.
- Oracle SQL Developer Extension for VS Code nếu dùng trong VS Code.
- Database connection đã lưu sẵn.
- AI assistant hoặc MCP client có khả năng gọi MCP tools.
- Quyền database được cấp đúng phạm vi.
Một điểm quan trọng là đặt tên connection rõ ràng. Không nên đặt tên mơ hồ như DEV,
TEST, DB1. Nếu có nhiều khách hàng hoặc nhiều môi trường,
hãy đặt tên đủ rõ:
DOKHALA_DEV_READONLY
DOKHALA_TEST_APP
DOKHALA_PROD_READONLY
CLIENT_A_DEV_READONLY
Tên connection rõ ràng giúp giảm rủi ro AI assistant chọn nhầm môi trường.
Cấu hình MCP ở mức ý tưởng
Cấu hình cụ thể phụ thuộc vào AI assistant và hệ điều hành.
Nhưng ý tưởng chung là bạn khai báo cho MCP client biết command nào dùng để chạy SQLcl MCP Server.
Ví dụ cấu hình minh họa:
[mcp_servers.sqlcl]
command = "/path/to/sqlcl/bin/sql"
args = ["-mcp"]
startup_timeout_ms = 60000
Trên Windows, đường dẫn có thể giống:
C:\sqlcl\bin\sql.exe
Sau khi cấu hình, AI assistant có thể gọi SQLcl MCP Server để liệt kê connection,
kết nối database, chạy query hoặc đọc metadata theo yêu cầu.
Test kết nối bằng prompt đơn giản
Khi mới cấu hình, bạn nên test bằng câu hỏi an toàn, chỉ đọc dữ liệu hoặc metadata.
Kết nối đến DOKHALA_DEV_READONLY bằng SQLcl MCP Server.
Chỉ đọc metadata.
Cho tôi biết schema hiện tại có bao nhiêu tables.
Hoặc:
Dùng connection DOKHALA_DEV_READONLY.
Liệt kê 10 table đầu tiên trong schema hiện tại.
Không chạy DDL, không chạy DML.
Nếu kết nối thành công, AI sẽ gọi SQLcl, chạy query metadata và trả kết quả.
Đây là bước kiểm tra quan trọng trước khi dùng các use case nâng cao hơn.
Use case 1: Tạo query dựa trên schema thật
Một lợi ích lớn của SQLcl MCP Server là AI có thể tạo query dựa trên schema thật,
thay vì đoán tên bảng và tên cột.
Ví dụ prompt:
Dùng connection DOKHALA_DEV_READONLY.
Kiểm tra schema hiện tại và tạo query lấy danh sách đơn hàng,
khách hàng và chi tiết sản phẩm.
Chỉ tạo SELECT statement, không thay đổi database.
AI có thể đọc metadata, xem foreign keys, xác định quan hệ giữa các bảng,
rồi tạo query phù hợp hơn so với việc chỉ dựa vào mô tả bằng lời.
Use case 2: Phân tích query chậm
Với các report APEX chạy chậm, SQLcl MCP Server có thể hỗ trợ phân tích query.
Bạn có thể yêu cầu AI lấy explain plan, xem điều kiện lọc, đề xuất index hoặc viết lại query.
Prompt nên ghi rõ phạm vi an toàn:
Phân tích query sau bằng explain plan.
Chỉ đọc execution plan và đề xuất hướng tối ưu.
Không tạo index.
Không gather stats.
Không thay đổi database.
[SQL_QUERY]
Nếu AI đề xuất index, cách tốt hơn là yêu cầu tạo script để developer review:
Nếu có đề xuất index, chỉ tạo file SQL đề xuất.
Không execute bất kỳ DDL nào.
Use case 3: Rà soát APEX metadata
APEX lưu nhiều metadata trong database. Vì vậy, SQLcl MCP Server có thể giúp AI phân tích
một phần cấu hình ứng dụng APEX.
Ví dụ:
Dùng SQLcl MCP Server để đọc APEX metadata.
Liệt kê các page trong application 100 có Page Access Protection chưa chặt.
Chỉ tạo báo cáo, không thay đổi application.
Hoặc:
Liệt kê các Dynamic Action có Execute Server-side Code
và cho biết page, event, affected item nếu metadata có đủ thông tin.
Những câu hỏi này rất hữu ích khi audit ứng dụng, chuẩn bị nâng cấp,
hoặc rà soát các lỗi session state và security.
Use case 4: Tạo tài liệu kỹ thuật
Với ứng dụng APEX lâu năm, tài liệu thường thiếu hoặc không còn đúng.
Khi AI có thể đọc cả repository và database metadata, nó có thể tạo bản nháp tài liệu tốt hơn.
Ví dụ:
Đọc repository hiện tại và dùng SQLcl MCP để kiểm tra schema.
Tạo tài liệu TECHNICAL_OVERVIEW.md gồm:
- các bảng chính
- view quan trọng
- package PL/SQL chính
- APEX pages chính
- REST APIs nếu có
- rủi ro kỹ thuật cần review
Chỉ tạo tài liệu, không thay đổi database.
Developer vẫn cần review lại, nhưng AI có thể tiết kiệm nhiều thời gian so với việc viết từ đầu.
Use case 5: So sánh codebase với database
Một use case rất hay là so sánh code trong repository với database thật.
Kiểm tra các file SQL/PLSQL trong repository.
Sau đó dùng SQLcl MCP để xem schema hiện tại.
Liệt kê các table được tham chiếu trong codebase nhưng không tồn tại trong database.
Hoặc:
Liệt kê các object trong database hiện tại nhưng không thấy xuất hiện trong repository.
Chỉ tạo báo cáo, không tạo DROP script.
Đây là cách tốt để phát hiện technical debt, object cũ, object không còn dùng,
hoặc repository chưa phản ánh đúng trạng thái database.
Rủi ro lớn nhất: AI có thể rất gần database thật
SQLcl MCP Server rất mạnh vì nó giúp AI assistant có thể tương tác với Oracle Database.
Nhưng chính điều đó cũng tạo ra rủi ro lớn. Nếu connection có quyền cao,
AI có thể yêu cầu chạy DDL hoặc DML nếu prompt không kiểm soát rõ.
Vì vậy, nguyên tắc đầu tiên là: không dùng quyền cao nếu không cần.
- Không dùng SYS hoặc SYSTEM cho AI assistant.
- Không dùng schema owner production nếu chỉ cần đọc metadata.
- Tạo readonly user riêng cho MCP khi có thể.
- Không cấp quyền DDL/DML nếu mục tiêu chỉ là phân tích.
- Không bật auto-approve cho các tool action nguy hiểm.
- Luôn review lệnh hoặc script trước khi cho chạy.
Readonly connection là lựa chọn an toàn để bắt đầu
Nếu mục tiêu là phân tích schema, tạo query, đọc metadata, tạo tài liệu hoặc review APEX configuration,
readonly connection thường là đủ.
Ví dụ ý tưởng:
create user mcp_readonly identified by "strong_password";
grant create session to mcp_readonly;
grant select on app_schema.customers to mcp_readonly;
grant select on app_schema.orders to mcp_readonly;
grant select on app_schema.order_lines to mcp_readonly;
Trong môi trường thật, cách cấp quyền phụ thuộc vào schema và chính sách bảo mật của tổ chức.
Nhưng nguyên tắc vẫn là: cấp đúng quyền cần thiết, không cấp dư.
AGENTS.md giúp AI làm việc đúng hơn
Nếu bạn dùng AI assistant trong repository, nên tạo file AGENTS.md
để mô tả các quy tắc an toàn.
# Database Safety Rules
- Never run DROP, TRUNCATE, DELETE, UPDATE, INSERT, CREATE, ALTER, or GRANT
unless explicitly approved by the developer.
- Prefer read-only analysis.
- If a schema change is needed, create a script file for review.
- Do not connect to production unless explicitly instructed.
- Never expose secrets, passwords, tokens, or customer data in responses.
- Always explain why a database change is recommended.
File này rất hữu ích để định hướng AI, nhưng không thay thế được bảo mật thật.
Bảo mật thật vẫn nằm ở database privileges, môi trường, review process và kiểm soát truy cập.
Prompt an toàn khi dùng SQLcl MCP
Prompt càng rõ, rủi ro càng thấp. Bạn nên ghi rõ môi trường, connection, phạm vi và điều không được làm.
Ví dụ prompt tốt:
Kết nối đến DOKHALA_DEV_READONLY.
Chỉ đọc metadata.
Không chạy DDL.
Không chạy DML.
Không tạo index.
Không thay đổi database.
Hãy liệt kê các table chính và mô tả quan hệ giữa chúng.
Prompt khác:
Phân tích query này bằng explain plan.
Nếu có đề xuất index, chỉ tạo script INDEX_RECOMMENDATIONS.sql.
Không execute bất kỳ câu lệnh thay đổi database nào.
Dù vậy, prompt rõ ràng vẫn chỉ là một lớp hướng dẫn. Lớp bảo vệ quan trọng hơn là quyền database connection.
Khi nào nên dùng Full Agent Mode?
Full Agent Mode cho phép AI thực hiện nhiều bước liên tiếp. Đây là chế độ rất mạnh,
nhưng cũng cần kiểm soát kỹ.
Chỉ nên dùng Full Agent Mode trong:
- Môi trường dev hoặc sandbox.
- Schema demo có thể xóa và tạo lại.
- Dữ liệu không nhạy cảm.
- Tác vụ tạo prototype.
- Tác vụ tạo script hoặc tài liệu.
Không nên dùng Full Agent Mode với production database hoặc schema chứa dữ liệu quan trọng.
Không để AI tự quyết định production change
Với production, mọi thay đổi vẫn nên đi qua quy trình chuẩn:
- Tạo script.
- Review bởi developer hoặc DBA.
- Test trên dev/test.
- Có backup hoặc rollback plan.
- Deploy qua pipeline hoặc quy trình release.
- Monitor sau deploy.
AI có thể hỗ trợ tạo script, giải thích script và gợi ý cải tiến.
Nhưng AI không nên tự ý triển khai thay đổi production.
Checklist trước khi dùng SQLcl MCP
Trước khi cho AI kết nối database qua SQLcl MCP Server, hãy kiểm tra:
- Connection có trỏ đúng môi trường không?
- Connection có quyền quá cao không?
- Có readonly user riêng chưa?
- Prompt có ghi rõ không DDL/DML không?
- Có file
AGENTS.md hoặc quy tắc an toàn chưa?
- Có tránh dữ liệu nhạy cảm trong prompt và response không?
- Có quy trình review script trước khi chạy không?
- Có backup nếu thử nghiệm thay đổi lớn không?
Best practice cho APEX developer
Một số nguyên tắc nên áp dụng:
- Bắt đầu bằng readonly connection.
- Dùng dev/test trước, không thử nghiệm trên production.
- Đặt tên connection rõ ràng theo môi trường.
- Yêu cầu AI tạo script thay vì execute nếu có thay đổi.
- Dùng
AGENTS.md để mô tả coding standard và safety rules.
- Không để AI xử lý secrets, password hoặc token.
- Review mọi đề xuất DDL, index, package hoặc data change.
- Dùng SQLcl MCP để phân tích APEX metadata, nhưng tự kiểm tra kết quả.
- Không xem AI là lớp bảo mật.
- Luôn giữ con người ở bước quyết định cuối cùng.
Kết luận
Oracle SQLcl MCP Server mở ra một cách làm việc rất mới cho lập trình viên Oracle APEX, SQL và PL/SQL.
Thay vì AI chỉ đọc prompt hoặc code trong repository, AI có thể dùng SQLcl để đọc metadata,
chạy query có kiểm soát, phân tích object, kiểm tra APEX configuration và tạo tài liệu kỹ thuật
dựa trên database thật.
Giá trị lớn nhất nằm ở việc kết hợp ba nguồn ngữ cảnh: yêu cầu của developer,
codebase trong repository và metadata thực tế trong Oracle Database.
Khi ba nguồn này được kết nối, AI có thể hỗ trợ tốt hơn trong việc tạo query,
review schema, kiểm tra security, phân tích performance và chuẩn bị tài liệu.
Tuy nhiên, sức mạnh này đi kèm rủi ro. SQLcl MCP đưa AI đến rất gần database thật.
Vì vậy, hãy bắt đầu bằng readonly connection, dùng môi trường dev/test,
viết prompt rõ ràng, kiểm soát quyền database, review script và không để AI tự quyết định thay đổi production.
Nếu dùng đúng cách, SQLcl MCP Server có thể trở thành một trợ lý rất mạnh cho APEX developer:
không thay thế kinh nghiệm của developer, nhưng giúp tăng tốc phân tích,
giảm thao tác lặp lại và làm cho quy trình phát triển ứng dụng Oracle thông minh hơn.