Tương thích của SQL trong CLPPlus
Tổng quan
Công cụ trình xử lý dòng lệnh và hơn nữa, CLPPlus, cung cấp các tính năng cốt yếu cho người
sử dụng di trú từ Oracle đến DB2 và cũng cho người sử dụng DB2 và Informix. Bằng cách sử
dụng CLPPlus, người dùng đang di trú đến DB2 có thể chạy các tập lệnh SQL hiện có với DB2
cho Linux, UNIX và Windows với rất ít sửa đổi hoặc không có sửa đổi nào. Người hiện tại đang
dùng DB2 cũng có thể tận dụng lợi thế của một số các tính năng mới và lợi ích của CLPPlus,
chúng cho phép các nhà quản trị dữ liệu thực thi nhiều tác vụ thông thường một cách nhanh
chóng và hiệu quả. CLPPlus là một công cụ đơn giản và hữu ích cho người sử dụng trong việc
tạo ra các báo cáo có định dạng hoặc trong việc quản lý các tập lệnh PL/SQL hoặc SQL mộ t cách
quen thuộc. Ngoài ra, các tiện ích của trình biên t ập lệnh tinh vi của nó làm cho nó trở thành
công cụ dễ sử dụng để phát triển và gỡ lỗi các khối PL/SQL.
Là một phần của các cải tiến khả năng tương thích SQL trong DB2 9.7 của IBM cho Linux,
UNIX và Windows, một loạt các tính năng tương thích cho phép người dùng chạy các ứng dụng
Oracle trong môi trường DB2. Một phần của sản phẩm này là tiện ích dòng lệnh tương tác
CLPPlus. CLPPlus là một công cụ dòng lệnh thống nhất cho tất cả các máy chủ dữ liệu IBM, bao
gồm DB2 cho Linux, UNIX và Windows, DB2 cho z/OS và Informix. Cùng với sự hỗ trợ của nó
cho SQL và các lệnh máy chủ nguyên sinh, CLPPlus đã phát triển theo thời gian, thu hẹp khoảng
cách về tương thích SQL mà khách hàng đang di trú gặp phải và đã báo cáo để giúp chúng tôi
hoàn thiện CLPPlus. Bây giờ CLPPlus là có khả năng xử lý việc các tập lệnh di trú của SQL với
sự hỗ trợ toàn diện cho các tính năng tương thích SQL, bao gồm:
Phương ngữ PL/SQL
Định dạng báo cáo
Tạo tập lệnh
AUTOTRACE
Tiện ích bộ đệm SQL
Lưu trữ vào vùng đệm
F | ON | TRACE[ONLY] } [EXP[LAIN]] [STAT[ISTICS]] Khi bật tùy chọn AUTOTRACE thành ON sẽ cho phép hiển thị thông tin giải thích và thống kê cho mỗi câu lệnh được thực thi trong phiên đó cùng với kết quả truy vấn cho đến khi AUTOTRACE bị vô hiệu hóa. Các tùy chọn EXPLAIN (giải thích) và STATISTICS (thống kê) cho phép hiển thị giải thích kế hoạch và các thông tin thống kê một cách tương ứng. Thông tin thống kê bao gồm thống kê về mạng, chi phí, thông tin khóa, sắp xếp, nhóm trực đợi vào/ra, số hàng đã đọc, số hàng đã sửa đổi và hàng trả về v.v.. tạm kể ra như vậy. Tùy chọn TRACEONLY vô hiệu hóa hiển thị các kết quả thực hiện truy vấn. Ví dụ dưới đây cho thấy đầu ra khi tùy chọn AUTOTRACE được bật lên. Liệt kê 24. Tùy chọn AUTOTRACE SQL> SET AUTOTRACE ON SQL> SELECT EMPNO, FIRSTNME, LASTNAME, WORKDEPT, PHONENO FROM EMPLOYEE WHERE SALARY=152750 ; EMPNO FIRSTNME LASTNAME WORKDEPT PHONENO ------ ------------ --------------- -------- ------- 000010 CHRISTINE HAAS A00 3978 EXPLAIN PLAN ------------------------- ID TYPE OBJECT_SCHEMA OBJECT_NAME ------ --------------- -------------------- -------------------- PREDICATE_TEXT -------------------------------------------------- 1 RETURN 2 TBSCAN MANSHANB EMPLOYEE (Q1.SALARY = +0152750.00) STATISTICS --------------------------------- COMPILATION_TIME = 195000 ISOLATION_LEVEL = CS ROWS_READ = 42 ROWS_RETURNED = 1 ROWS_MODIFIED = 0 TOTAL_SORTS = 0 IN_MEMORY_SORTS = 0 LOCK_WAITS = 0 LOCK_ESCALS = 0 LOCK_TIMEOUTS = 0 POOL_READS = 1 POOL_WRITES = 0 QUERYOPT = 5 ESTIMATED_COST = 8 TOTAL_COST = 7.6209 NETWORK_TRIPS = 2 BYTES_SENT = 505 BYTES_RECEIVED = 1215 Ví dụ dưới đây cho thấy việc sử dụng tùy chọn AUTOTRACE với kế hoạch EXPLAIN (giải thích) được kích hoạt, cùng với kết quả truy vấn. Điều này vô hiệu hóa hiển thị các thông tin thống kê. Liệt kê 25. Tùy chọn AUTOTRACE với tùy chọn EXPLAIN được bật lên SQL> SET AUTOTRACE ON EXPLAIN SQL> SELECT EMPNO, FIRSTNME, LASTNAME FROM EMPLOYEE WHERE SALARY=152750 ; EMPNO FIRSTNME LASTNAME ------ ------------ --------------- 000010 CHRISTINE HAAS EXPLAIN PLAN ------------------------- ID TYPE OBJECT_SCHEMA OBJECT_NAME ------ --------------- -------------------- -------------------- PREDICATE_TEXT -------------------------------------------------- 1 RETURN 2 TBSCAN MANSHANB EMPLOYEE (Q1.SALARY = +0152750.00) Ví dụ dưới đây trình diễn việc sử dụng AUTOTRACE với tùy chọn TRACEONLY. Với thiết lập này, việc hiển thị kết quả truy vấn bị vô hiệu hóa. Liệt kê 26. Tùy chọn AUTOTRACE với chế độ TRACEONLY SQL> SET AUTOTRACE TRACEONLY SQL> SELECT * FROM EMPLOYEE WHERE SALARY=152750 ; EXPLAIN PLAN ------------------------- ID TYPE OBJECT_SCHEMA OBJECT_NAME ------ --------------- -------------------- -------------------- PREDICATE_TEXT -------------------------------------------------- 1 RETURN 2 TBSCAN MANSHANB EMPLOYEE (Q1.SALARY = +0152750.00) STATISTICS --------------------------------- COMPILATION_TIME = 4000 ISOLATION_LEVEL = CS ROWS_READ = 42 ROWS_RETURNED = 1 ROWS_MODIFIED = 0 TOTAL_SORTS = 0 IN_MEMORY_SORTS = 0 LOCK_WAITS = 0 LOCK_ESCALS = 0 LOCK_TIMEOUTS = 0 POOL_READS = 1 POOL_WRITES = 0 QUERYOPT = 5 ESTIMATED_COST = 8 TOTAL_COST = 7.6209 NETWORK_TRIPS = 2 BYTES_SENT = 462 BYTES_RECEIVED = 2364 Về đầu trang Tiện ích bộ đệm SQL Công cụ trình soạn thảo có sẵn được CLPPlus hỗ trợ này có thể được sử dụng trong việc phát triển các khối SQL, PL/SQL lớn. Nó cung cấp các tiện ích bộ đệm khác nhau, có thể rất thuận tiện trong việc soạn thảo, ghi lưu và thực hiện các nội dung của tiện ích bộ đệm SQL một cách nhanh chóng và hiệu quả. Tiện ích bộ đệm SQL có thể hữu ích trong việc: Sửa đổi các nội dung của tiện ích bộ đệm SQL bằng cách xóa, thêm hoặc thay thế một dòng trong bộ đệm Nạp nội dung tập tin vào bộ đệm SQL Soạn thảo nội dung bộ đệm bằng cách sử dụng trình biên tập bên ngoài Thực thi các nội dung của bộ đệm Ghi lưu nội dung của bộ đệm vào tệp tin Bất kỳ lệnh SQL, PL/SQL đã thực hiện trước đây trong CLPPlus đều được lưu trữ trong tiện ích bộ đệm SQL. Có thể dùng lệnh LIST để liệt kê các nội dung bộ đệm SQL ra giao diện bàn điều khiển. Nếu người dùng muốn thấy chỉ một dòng cụ thể trong bộ đệm, thì dung lệnh LIST theo sau là số thứ tự của dòng sẽ hiển thị các nội dung dòng này trên giao diện bàn điều khiển như thể hiện trong ví dụ dưới đây. Chỉ cần nhập số dòng các nội dung của bộ đệm sẽ được liệt kê trên dòng đã cho. Liệt kê 27. Lệnh LIST SQL> select * from employee 2 where firstnm='MICHAEL'; ERROR near line 1: SQL0206N "FIRSTNM" is not valid in the context where it is used. SQL> list 1 select * from employee 2* where firstnm='MICHAEL' SQL> list 2 2* where firstnm='MICHAEL' SQL> 1 1* select * from employee Một chuỗi cụ thể trong tiện ích bộ đệm SQL có thể được thay thế bằng cách sử dụng lệnh CHANGE. Chúng ta cũng có thể thay thế đoạn văn bản trong bộ đệm tại dòng ở số thứ tự đã cho hoặc loại bỏ lần xuất hiện đầu tiên của một chuỗi ký tự trong dòng hiện tại, bằng cách sử dụng tiện ích này. Ví dụ dưới đây thay thế mọi chuỗi ký tự firstnm bằng chuỗi ký tự firstnme bằng cách sử dụng lệnh CHANGE. Liệt kê 28. Lệnh CHANGE SQL> list 1 select * from employee 2* where firstnm='MICHAEL' SQL> change /firstnm/firstnme/ 2* where firstnme='MICHAEL' Trong ví dụ dưới đây, văn bản tại dòng 2 được thay thế bằng dòng văn bản mới. Ở đây, 2 là số của dòng được thay thế trong bộ đệm, tiếp sau đó là văn bản để thay. Liệt kê 29. Thay thế dòng bằng cách sử dụng số của dòng SQL> 2 where salary>10000 2* where salary>10000 SQL> list 1 select * from employee 2* where salary>10000 Chúng ta có thể nối thêm văn bản vào nội dung của tiện ích bộ đệm SQL hoặc thêm văn bản vào một dòng mới trong bộ đệm bằng cách sử dụng tương ứng các lệnh APPEND và INPUT. Tiện ích DEL có thể được sử dụng để xóa một dòng cụ thể trong bộ đệm. Ví dụ dưới đây trình diễn tiện ích này. Liệt kê 30. Các lệnh INPUT, APPEND và DEL SQL> input select * from employee SQL> list 1* select * from employee SQL> append where SQL> list 1* select * from employee where SQL> input salary>10000 SQL> list 1 select * from employee where 2* salary>10000 SQL> del 2 SQL> list 1* select * from employee where SQL> input firstnme='MICHAEL' SQL> list 1 select * from employee where 2* firstnme='MICHAEL' CLPPlus hỗ trợ tải nội dung tập tin vào tiện ích bộ đệm SQL hoặc ghi lưu các nội dung của bộ đệm vào tệp tin, việc này là hữu ích khi phát triển các tập lệnh SQL qua nhiều phiên làm việc hoặc trên các máy chủ khác nhau. Tiện ích SAVE có thể được sử dụng trong việc ghi lưu các nội dung của bộ đệm vào tệp tin, và tiện ích GET có thể được sử dụng để tải nội dung tệp tin vào tiện ích bộ đệm SQL. Liệt kê 31. Các tiện ích GET và SAVE SQL> get c:\buffer.sql 1* select * from employee SQL> input where salary > 10000 SQL> list 1 select * from employee 2* where salary > 10000 SQL> save c:\buffer1.sql DB250000I: The command completed successfully. Lệnh dấu gạch xiên ngược (/) thực thi các nội dung có mặt trong tiện ích bộ đệm SQL. Và lệnh CLEAR xóa làm sạch các nội dung của tiện ích bộ đệm SQL. Liệt kê 32. Tiện ích xóa bộ đệm SQL> list 1* select firstnme, salary from employee fetch first 2 rows only SQL> / FIRSTNME SALARY --------------- ----------------------- MICHAEL 15500 JOE 11100 SQL> clear buffer DB250000I: The command completed successfully. SQL> list DB250419W: The SQL buffer is empty. Nội dung của tiện ích bộ đệm SQL cũng có thể được biên tập bằng cách sử dụng trình soạn thảo bên ngoài với sự giúp đỡ của lệnh EDIT. Lệnh EDIT gọi trình soạn thảo bên ngoài và nạp luôn nội dung của tiện ích bộ đệm SQL, người dùng có thể sửa đổi các nội dung này và ghi lưu trở lại vào bộ đệm. Người dùng có thể định cấu hình trình soạn thảo bên ngoài để sử dụng theo từng yêu cầu. Về đầu trang Lưu trữ vào vùng đệm Các hoạt động xảy ra trong phiên CLPPlus có thể được ghi vào tệp tin bằng cách sử dụng tính năng lưu trữ vào vùng đệm. Tính năng này sẽ rất hữu ích trong việc phát triển các tập lệnh SQL lấy trong số các lệnh đã thực thi trong phiên CLPPlus. Kết quả là, tất cả các lệnh được thực thi và kết quả đầu ra được ghi vào tệp tin, tệp tin này có thể được xử lý để phát triển các tập lệnh. Cần chỉ rõ một tệp tin khi cho phép lưu trữ vào vùng đệm, và đầu ra hiển thị được ghi vào trong tệp tin này. Thao tác lưu trữ vào vùng đệm cũng có thể được tắt đi tại bất kỳ điểm nào trong phiên làm việc, như cho thấy dưới đây. Liệt kê 33. Lệnh spool SQL> spool c:\spooler.sp SQL> select firstnme, salary from employee fetch first 2 rows only; FIRSTNME SALARY --------------- ----------------------- MICHAEL 15500 JOE 11100 SQL> spool off Về đầu trang Kết luận Bài viết này đã cung cấp các thông tin giá trị cho người dùng di trú từ Oracle đến DB2 bằng cách đưa ra một tổng quan về hỗ trợ khả năng tương thích với SQL được cung cấp trong CLPPlus. CLPPlus đóng một vai trò quan trọng trong việc cho phép di trú các tập lệnh của người sử dụng đến DB2, và do đó, bài viết này có thể là một tham chiếu tốt để có một bức tranh toàn cảnh về các tính năng tương thích SQL được hỗ trợ trong CLPPlus. Bài viết này cũng rất hữu ích cho những người hiện đang sử dụng DB2 giúp họ trở nên quen thuộc với các phương tiện được CLPPlus cung cấp, các phương tiện này là mới cho các công cụ dòng lệnh của DB2 và có thể giúp họ thực hiện nhiệm vụ của mình một cách tốt hơn. Để biết thêm về CLPPlus và các lệnh được hỗ trợ, hãy truy cập Trung tâm thông tin của DB2 cho Linux, UNIX và Windows V9.7.
File đính kèm:
- Tương thích của SQL trong CLPPlus.pdf