Khả năngtươngthích SQL trongDB29.7
Tương thíchSQL
Bước đầu tiên trong việc sử dụng các tính năngtươngthíchSQLtrongDB29.7 là cho phép
tham số DB2_COMPATIBILITY_VECTOR. Việc thiết lập db2set
DB2_COMPATIBILITY_VECTOR=ORA cho phép các tính năngtươngthíchSQL liên quan
đến Oracle đối với tất cả cơ sở dữ liệu được tạo ra tiếp sau đó. Để giải thích một số trong các
tham số quan trọng nhất được DB2_COMPATIBILITY_ VECTOR sử dụng, hãy xem Bảng 1.
Để cho phép tính năng này, bạn phải có các quyền quản trị. Hãy nhập các lệnh sau tại cửa sổ
lệnh DB2:
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
Để tạo một cơ sở dữ liệu đơn giản, hãy nhập: db2 create database [dbname]. Sau đó, bạn có thể
kết nối với cơ sở dữ liệu này bằng cách nhập:
db2 connect to [dbname];
Bước tiếp theo là tạo các bảng bằng cách sử dụng các kiểu dữ liệu Oracle. Nhập vào câu lệnh
CREATE TABLE sau đây bằng cách sử dụng hoặc cửa sổ CLP Plus vào hoặc IBM Data Studio:
Create table employee (EMPNO NUMBER(5), ENAME VARCHAR2(50), DEPTNO
NUMBER(5))
Hình 1: TrongDB2 9.7, giao diện CLP Plus cho phép bạn thử các tính năngtươngthích
SQL.
Về đầu trang
Các tính năng PL/SQL
Bây giờ chúng ta sẽ khám phá những tính năng cho phép bạn tạo ra các thủ tục PL/SQL. DB2
9.7 hỗ trợ như sau:
Các gói do người dùng định nghĩa
Các thủ tục/các hàm/các khối ẩn danh trong PL/SQL
Các gói dựng sẵn (DBMS_OUT.PUT_LINE, DBMS_PIPE, DBMS_UTL, và v.v )
Các mảng kết hợp (INDEX BY)
Varrays
Triggers (Các tri-gơ)
%ROWTYPE
%TYPE
EXCEPTIONS (Các trường hợp ngoại lệ)
Ref-Cursors (Các con trỏ-tham chiếu)
Lưu ý rằng sự hỗ trợ PL/SQL chỉ có sẵn trong Enterprise Server Edition và Workgroup Edition
(Ấn bản máy chủ doanh nghiệp và ấn bản Nhóm làm việc) của DB29.7 cho LUW. PL/SQL
không được hỗ trợ trongDB2 Express-C, DB2 Express, hoặc DB2 Personal Edition (Ấn bản cá
nhân của DB2).
Về đầu trang
Các thủ tục PL/SQL trongDB2
DB2 hỗ trợ nhiều ngôn ngữ PL/SQL. Chúng ta hãy xem cách các thủ tục này làm việc với một số
mã mẫu. Một khi được biên dịch và được thực hiện, thủ tục PL/SQL sẽ hiển thị một thông báo
chào mừng cho người dùng. Để xem kết quả đầu ra trên bàn điều khiển, trước tiên hãy ban hành
lệnh SET SERVEROUTPUT ON.
CREATE OR REPLACE PROCEDURE message_proc (myname varchar2)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Welcome to DB29.7 ( )! ' || myname
|| '. Now supports for ORACLE SQL and PL /SQL as well :-)!');
END message_proc;
Để gọi thủ tục PL/SQL này trong DB2, ban hành các lệnh sau đây:
EXEC proc_name
EXEC message_proc('Anil');
Dưới đây là một ví dụ sử dụng một vòng lặp FOR:
BEGIN
FOR a IN 10 20 LOOP
DBMS_OUTPUT.PUT_LINE('Counter ' || a);
END LOOP;
END;
Vòng lặp này sẽ tạo ra kết quả đầu ra sau đây:
Counter 10
Counter 20
Về đầu trang
Lệnh cắt ngắn bảng
Một số trong các bạn quen nền tảng cơ sở dữ liệu Oracle nhiều khảnăng đã sử dụng lệnh
TRUNCATE TABLE (cắt ngắn bảng) ở đâu đó trong sự nghiệp của mình. Bây giờ DB2 cũng hỗ
trợ lệnh này. Các mã sau đây tạo ra một bảng đơn giản, thêm các hàng vào nó, và sau đó sử dụng
lệnh TRUNCATE để loại bỏ tất cả các hàng khỏi bảng này:
CREATE TABLE CLIENTS
(CLIENTID NUMBER(5) PRIMARY KEY NOT NULL,CLIENTNAME
VARCHAR2(50));
Chèn một vài hàng vào:
INSERT INTO CLIENTS (CLIENTID, CLIENTNAME) VALUES (1,'IBM');
INSERT INTO CLIENTS VALUES (2,'MSFT');
INSERT INTO CLIENTS VALUES (3,'EDB');
Bảng 1: Các giá trị DB2_COMPATIBILITY_VECTOR
Chúng ta hãy nhìn vào các hàng:
SELECT * FROM CLIENTS;
Bây giờ ban hành lệnh sau để cắt các hàng này:
TRUNCATE TABLE CLIENTS;
Hãy chứng tỏ rằng chúng đã thực hiện xong:
SELECT * FROM CLIENTS;
Bạn sẽ không có hàng nào được hiển thị.
Về đầu trang
Các cải tiến đối tượng và tương tranh
Tôi muốn kết thúc bằng cách nhắc đến hai cải tiến quan trọng với DB29.7 có thể tiết kiệm thời
gian cho bạn và tăng hiệu năng: xác nhận hợp lệ sử dụng lần đầu, và một trạng thái khóa mặc
định mới.
Xác nhận hợp lệ sử dụng lần đầu
Bất cứ khi nào các đối tượng cơ sở dữ liệu cơ bản (các bảng, các khung nhìn, các thủ tục, các
hàm, và v.v ) bị thay đổi, lần sau khi một đối tượng được lấy ra với các đối tượng phụ thuộc của
nó, nó sẽ được tự động xác nhận hợp lệ lại. Điều này chắc chắn sẽ tiết kiệm thời gian cho các nhà
phát triển ứng dụng. Việc kiểm tra phụ thuộc tự động được thực hiện bất cứ khi nào một đối
tượng bị thay đổi.
Đọc dữ liệu đã giao kết hiện tại (mặc định trong DB2)
Trong phiên bản trước của DB2, đã không có khảnăng xảy ra việc một người dùng cố gắng đọc
và một người dùng cố gắng viết lên cùng một hàng trong cùng một lúc. Điều này dựa trên
nguyên tắc rằng người đọc chờ kết quả viết sắp xảy ra. Hiện nay DB29.7 sử dụng trạng thái
khóa-mặc định để cho người đọc sẽ không phải chờ kết quả viết sắp xảy ra. Thay vào đó, họ sẽ
đọc phiên bản hiện tại đã giao kết của hàng. Do đó, những người đọc không chặn những người
viết nữa và những người viết cũng không chặn những người đọc.
Tôi rất ấn tượng bởi những tính năngtươngthíchSQL mới này. Tôi mới chỉ có thể bàn sơ qua
trong bài viết này Vì vậy, tôi khuyến khích bạn thử với DB2 9.7. Bạn sẽ không phải thất vọng!
. Khả năng tương thích SQL trong DB2 9. 7 Tương thích SQL Bước đầu tiên trong việc sử dụng các tính năng tương thích SQL trong DB2 9. 7 là cho phép tham số DB2_ COMPATIBILITY_VECTOR NUMBER(5)) Hình 1: Trong DB2 9. 7, giao diện CLP Plus cho phép bạn thử các tính năng tương thích SQL. Về đầu trang Các tính năng PL /SQL Bây giờ chúng ta sẽ khám phá những tính năng cho phép bạn. thiết lập db2set DB2_ COMPATIBILITY_VECTOR=ORA cho phép các tính năng tương thích SQL liên quan đến Oracle đối với tất cả cơ sở dữ liệu được tạo ra tiếp sau đó. Để giải thích một số trong các