Pl/Sql Là Gì ? Sự Khác Nhau Giữa Oracle Và Sql Server Sự Khác Nhau Giữa Oracle Và Sql Server

[ad_1]

Các lệnh PL/SQL cơ bản Các kiểu dữ liệu thông dụng và khai báo Con trỏ (Cursor) Thủ tục (Procedure) Package
PL/SQL (Procedural Language/Structured Query Language) là một ngôn ngữ lập trình lập trình hướng thủ tục sử dụng cho Oracle SQL. Nó là một mở rộng của Oracle SQL.

Bạn đang xem: Pl/Sql Là Gì ? Sự Khác Nhau Giữa Oracle Và Sql Server Sự Khác Nhau Giữa Oracle Và Sql Server

PL/SQL bao gồm các thành phần ngôn ngữ hướng thủ tục bao gồm điều kiện và vòng lặp. Nó cho phép khai báo hằng số và biến, thủ tục và các hàm, kiểu dữ liệu và biến của các kiểu dữ liệu, và các trigger. Nó có thể sử lý các ngoại lệ (lỗi tại thời gian chạy). Mảng cũng được hỗ trợ nâng cấp để sử dụng cho các tập hợp trong PL/SQL. Từ phiên bản 8 trở đi nó bao gồm thêm các tính năng hướng đối tượng. Nó có thể tạo một đơn vị PL/SQL như thủ tục, hàm, package, kiểu dữ liệu, triggers, những thứ được lưu trữ trong database được tái sử dụng bởi các ứng dụng bất kỳ giao tiếp với ứng dụng Oracle.

Chú ý: Các hình minh họa dưới đây tôi sử dụng công cụ PL/SQL Developer phiên bản 8.x, tuy nhiên cũng không có khác biệt nếu bạn sử dụng PL/SQL Developer phiên bản 10.x hoặc một phiên bản khác.

Để có thể tiếp cận nhanh với PL/SQL bạn cần có một công cụ lập trình. Theo kinh nghiệm làm việc của tôi bạn có thể sử dụng PL/SQL Developer, đây là một công cụ trực quan làm việc với Oracle và để lập trình PL/SQL.
Trong tài liệu này tôi sử dụng LearningSQL (Một database nhỏ dùng để hướng dẫn học SQL trong website o7planning.org). Bạn có thể tạo database này theo hướng dẫn dưới đây:
Mỗi lệnh SQL kềt thúc bằng dấu chấm phẩy (;)Các lệnh thuộc “ngôn ngữ định nghĩa dữ liệu” (Data Definition LanguageDDL) không được sử dụng trong PL/SQLLệnh SELECT.. INTO trả về nhiều dòng có thể gây ra exception ( > 1 dòng).Lệnh SELECT .. INTO không trả về dòng nào có thể gây ra exceptionCác lệnh thuộc “ngôn ngữ thao tác trên dữ liệu” (Data Manipulation Language – DML) có thể tác động trên nhiều dòng dữ liệu.Sử dụng toán tử := để giá giá trị cho một biến.

— Lệnh gán giá trị cho biếnx := 1;– Lệnh Insert:Insert into Department (Dept_Id, Dept_No, Dept_Name, Location) values (1, “D1”, “HR”, “Chicago”);– Bắt ngoại lệ:Begin Select Dept.Dept_Id into v_Dept_Id from Department Dep;Exception when too_many_rows then Dbms_Output.put_line(“Error:”||Sqlerrm);End;……
Declare — Phần khai báo – Không bắt buộc- — Khai báo các biến sử dụng trong phần thân v_Location Varchar2(100);Begin — Phần thân của khối lệnh — Đoạn lệnh thực hiện v_Location := “Chicago”; — ….Exception — Phần xử lý lỗi – Không bắt buộc — Bắt để sử lý các ngoại lệ khác nhau. When No_Data_Found Then — Ngoại lệ khi câu lệnh SELECT .. INTO không trả về dòng nào — (Không bắt buộc phải bắt) — Sử lý gì đó tại đây. — Hoặc để lệnh null nếu không cần sử lý. Null; When Too_Many_Rows Then — Ngoại lệ khi câu lệnh SELECT .. INTO trả về nhiều dòng — (Không bắt buộc phải bắt) Null; When Others Then — Các ngoại lệ khác Null;End;
Ở đây tôi giới thiệu tổng quan về các lệnh cơ bản của PL/SQL. Bạn sẽ hiểu hơn về nó thông qua các ví dụ ở các phần tiếp theo.
If v_Option = 1 Then v_Action := “Run”;Elsif v_Option = 2 Then v_Action := “Backup”;Elsif v_Option = 3 Then v_Action := “Stop”;Else v_Action := “Invalid”;End If;

*

*

*

Declare v_Result Number; — Khai báo một biến có giá trị 50 v_a Number := 50; — Khai báo một biến có giá trị 100 v_b Number := 100;Begin — In ra màn hình Console Dbms_Output.Put_Line(“v_a= ” || v_a); — In ra màn hình Console Dbms_Output.Put_Line(“v_b= ” || v_b); — Tính tổng v_Result := v_a + v_b; — In ra màn hình Console Dbms_Output.Put_Line(“v_Result= ” || v_Result);End;
Nhấn biểu tượng

*

Data TypeDescription
PLS_INTEGERSố tự nhiên có dấu 32 bit nằm trong khoảng -2,147,483,648 tới 2,147,483,647.

Xem thêm: Lao Động Hợp Đồng 68 Là Gì, Hợp Đồng 68 Có Phải Là Viên Chức Không

BINARY_INTEGERSố tự nhiên có dấu 32 bit nằm trong khoảng -2,147,483,648 tới 2,147,483,647.
BINARY_FLOATKiểu dấu chấm động số thực với độ chính xác đơn (Single-precision)
BINARY_DOUBLEKiểu dấu chấm động số thực với độ chính xác gấp đôi (Double-precision)
NUMBER(prec, scale)Kiểu dấu chấm cố định (Fixed-point) với giá trị tuyệt đối từ 1E-130 tới (không bao gồm) 1.0E126. Một biến NUMBER cũng có thể mô tả 0.
DEC(prec, scale)Kiểu dấu chấm cố định, tiêu chuẩn ANSI với độ chính xác tối đa 38 số thâp phân.
DECIMAL(prec, scale)Kiểu dấu chấm cố định, tiêu chuẩn IBM với độ chính xác tối đa 38 số thập phân.
NUMERIC(pre, secale)Loại số thực (Floating type) với độ chính xác tối đa 38 số thập phân.
DOUBLE PRECISIONLoại số chấm động, số thực, tiêu chuẩn ANSI với độ chính xác 126 số nhị phân (khoảng 38 số thập phân).
FLOATLoại số chấm động, số thực tiêu chuẩn ANSI IBM với độ chính xác tối đa 126 số nhị phân (khoảng 38 số thập phân).
INTKiểu số nguyên, tiêu chuẩn ANSI với độ chính xác tối đa 38 chữ số thập phân
INTEGERKiểu số nguyên, tiêu chuẩn ANSI IBM với độ chính xác 38 chữ số thập phân
SMALLINTSố nguyên từ -32768 –> 32767
REALKiểu số chấm động, số thực, với độ chính xác tối đa 63 số nhị phân (Khoảng 18 số thập phân).

Kiểu sốKhai báo sử dụng
Numberv_Amount Number(15,2)v_Salary Number;
Integerv_Age Integer;
Floatv_Amount Float;
Double
Real

[ad_2]

Related Posts

Trò chơi Bida 3D online

[ad_1] ContentsRelated posts:Giới thiệu game Bida 3D Bida 3D thuộc dòng game 1 người chơi, game 7k7k khi mà các bạn sẽ được chiêm ngưỡng tựa game…

Trò chơi quán nước giải khát

[ad_1] ContentsRelated posts:Giới thiệu game quán nước giải khát Quán nước giải khát thuộc dòng game nấu ăn, game A10, các bé của chúng ta thỏa thích…

Trò chơi đẳng cấp thú cưng

[ad_1] ContentsRelated posts:Giới thiệu game đẳng cấp thú cưng Đẳng cấp thú cưng một dòng game A10, 2 người chơi hấp dẫn và kịch tính dành cho…

Trò chơi đấu sĩ thời la mã

[ad_1]  ContentsRelated posts:Giới thiệu game đấu sĩ thời la mã Đấu sĩ thời la mã thuộc dòng game đối kháng, game Y8 khi mà bạn sẽ…

Game cóc bắn bóng: Totemia Cursed Marbles

[ad_1] ContentsRelated posts:Giới thiệu game cóc bắn bóng Cóc bắn bóng thuộc dòng game kỹ năng, với một hình hài quen thuộc mà mình nghĩ rằng rất…

Game xếp hình kẹo ngọt Candy: Candy Era

[ad_1]  ContentsRelated posts:Giới thiệu game xếp hình kẹo ngọt Candy Xếp hình kẹo ngọt Candy thuộc dòng game Y8, game A10 vốn là phiên bản nâng…

Leave a Reply