Thứ Hai, 31 tháng 10, 2022

Thứ Bảy, 29 tháng 10, 2022

[VIP5] Thư viện tài liệu chuẩn Oracle cho DBA

Mục đích: Chia sẻ Thư viện tài liệu chuẩn Oracle cho DBA để nâng cao kiến thức mỗi ngày (đọc và down xuống sớm trước khi không còn trên Internet)

Thứ Năm, 27 tháng 10, 2022

Vô hiệu hóa Transparent HugePages trong Oracle Database

Oracle khuyến nghị rằng bạn nên tắt Transparent HugePages trước khi bắt đầu cài đặt từ phiên bản Oracle database tất cả các phiên bản từ Oracle Linux 6 hoặc có kernel tương đương. 

Bộ nhớ Transparent HugePages khác với bộ nhớ HugePages tiêu chuẩn vì thread khugepaged của kernel phân bổ bộ nhớ động trong thời gian chạy. Bộ nhớ HugePages tiêu chuẩn được cấp phát trước khi khởi động và không thay đổi trong thời gian chạy.

Thứ Tư, 26 tháng 10, 2022

PL/SQL - Object Oriented

Trong chương này, chúng ta sẽ thảo luận về PL/SQL hướng đối tượng. PL/SQL cho phép xác định một kiểu đối tượng, giúp thiết kế cơ sở dữ liệu hướng đối tượng trong Oracle. Một kiểu đối tượng cho phép bạn tạo các kiểu kết hợp. Sử dụng các đối tượng cho phép bạn triển khai các đối tượng trong thế giới thực với cấu trúc dữ liệu và phương pháp cụ thể để vận hành nó. Các đối tượng có các thuộc tính và phương thức. Thuộc tính là thuộc tính của một đối tượng và được sử dụng để lưu trữ trạng thái của đối tượng; và các phương pháp được sử dụng để mô hình hóa hành vi của nó.

PL/SQL - DBMS Output

Trong chương này, chúng ta sẽ thảo luận về Đầu ra DBMS trong PL/SQL. DBMS_OUTPUT là một gói tích hợp cho phép bạn hiển thị thông tin đầu ra, gỡ lỗi và gửi thông báo từ các khối PL/SQL, chương trình con, gói và trình kích hoạt. Chúng tôi đã sử dụng gói này trong suốt hướng dẫn của chúng tôi.

PL/SQL - Date & Time

Trong chương này, chúng ta sẽ thảo luận về Ngày và Giờ trong PL/SQL. Có hai lớp kiểu dữ liệu liên quan đến ngày và giờ trong PL/SQL -

  • Các kiểu dữ liệu ngày giờ

  • Các kiểu dữ liệu khoảng thời gian

PL/SQL - Transactions (Giao dịch)

Trong chương này, chúng ta sẽ thảo luận về các giao dịch trong PL/SQL. Một giao dịch cơ sở dữ liệu là một đơn vị công việc nguyên tử có thể bao gồm một hoặc nhiều câu lệnh SQL liên quan. Nó được gọi là nguyên tử vì các sửa đổi cơ sở dữ liệu do các câu lệnh SQL tạo thành một giao dịch mang lại có thể được cam kết chung, tức là được thực hiện vĩnh viễn với cơ sở dữ liệu hoặc được khôi phục (hoàn tác) từ cơ sở dữ liệu.

PL/SQL - Collections

Trong chương này, chúng ta sẽ thảo luận về các Tập hợp trong PL/SQL. Tập hợp là một nhóm có thứ tự các phần tử có cùng kiểu dữ liệu. Mỗi phần tử được xác định bằng một chỉ số con duy nhất thể hiện vị trí của nó trong tập hợp.

PL/SQL - Packages (gói)

Trong chương này, chúng ta sẽ thảo luận về các package (Gói) . Các gói là các đối tượng lược đồ nhóm các kiểu, biến và chương trình con  có liên quan về mặt logic.

Một gói sẽ có hai phần bắt buộc -

  • Đặc điểm kỹ thuật gói

  • Nội dung hoặc định nghĩa gói

PL/SQL - Triggers

Trong chương này, chúng ta sẽ thảo luận về các Trigger . Trigger là các chương trình được lưu trữ, được tự động thực thi hoặc kích hoạt khi một số sự kiện xảy ra. Trên thực tế, các trình kích hoạt được viết ra để được thực thi để đáp ứng với bất kỳ sự kiện nào sau đây:

  • Câu lệnh thao tác cơ sở dữ liệu (DML) (DELETE, INSERT hoặc UPDATE)

  • Câu lệnh định nghĩa cơ sở dữ liệu (DDL) (CREATE, ALTER hoặc DROP).

  • Hoạt động cơ sở dữ liệu (SERVERERROR, LOGON, LOGOFF, STARTUP hoặc SHUTDOWN).

PL / SQL - Ngoại lệ (Exceptions)

Trong chương này, chúng ta sẽ thảo luận về các Ngoại lệ trong . Một ngoại lệ là một điều kiện lỗi trong quá trình thực thi chương trình.  hỗ trợ lập trình viên nắm bắt các điều kiện như vậy bằng cách sử dụng khối EXCEPTION trong chương trình và một hành động thích hợp được thực hiện đối với điều kiện lỗi. Có hai loại ngoại lệ -

  • Các ngoại lệ do hệ thống xác định

  • Các ngoại lệ do người dùng xác định

PL/SQL - Bản ghi (Records)

Trong chương này, chúng ta sẽ thảo luận về Bản ghi trong PL/SQL. Bản ghi là một cấu trúc dữ liệu có thể chứa các mục dữ liệu thuộc các loại khác nhau. Bản ghi bao gồm các trường khác nhau, tương tự như một hàng của bảng cơ sở dữ liệu.

PL / SQL - Con trỏ (cursor)

Trong chương này, chúng ta sẽ thảo luận về các con trỏ trong PL/SQL. Oracle tạo một vùng bộ nhớ, được gọi là vùng ngữ cảnh, để xử lý một câu lệnh SQL, vùng này chứa tất cả thông tin cần thiết để xử lý câu lệnh; ví dụ: số lượng hàng được xử lý, v.v.

PL / SQL - Hàm (function)

Trong chương này, chúng ta sẽ thảo luận về các hàm trong PL/SQL. Một hàm giống như một thủ tục ngoại trừ nó trả về một giá trị. Do đó, tất cả các thảo luận của chương trước cũng đúng cho các hàm.

PL / SQL - Thủ tục (procedure)

Trong chương này, chúng ta sẽ thảo luận về các Thủ tục trong PL/SQL. Chương trình con là một đơn vị / mô-đun chương trình thực hiện một nhiệm vụ cụ thể. Các chương trình con này được kết hợp với nhau để tạo thành các chương trình lớn hơn. Về cơ bản, đây được gọi là 'Thiết kế mô-đun'. Một chương trình con có thể được gọi bởi một chương trình con hoặc chương trình khác được gọi là chương trình gọi.


Một chương trình con có thể được tạo -

  • Ở cấp schema

  • Bên trong một gói

  • Bên trong một khối PL/SQL

Ở cấp độ lược đồ, chương trình con là một chương trình con độc lập . Nó được tạo bằng câu lệnh CREATE PROCEDURE hoặc câu lệnh CREATE FUNCTION. Nó được lưu trữ trong cơ sở dữ liệu và có thể bị xóa bằng câu lệnh DROP PROCEDURE hoặc DROP FUNCTION.

Một chương trình con được tạo bên trong một gói là một chương trình con được đóng gói . Nó được lưu trữ trong cơ sở dữ liệu và chỉ có thể bị xóa khi gói bị xóa bằng câu lệnh DROP PACKAGE. Chúng ta sẽ thảo luận về các gói trong chương 'PL/SQL - Gói' .

Chương trình con PL/SQL được đặt tên là các khối PL/SQL có thể được gọi với một tập các tham số. PL/SQL cung cấp hai loại chương trình con:

  • Hàm (function) - Các chương trình con này trả về một giá trị duy nhất; chủ yếu được sử dụng để tính toán và trả về một giá trị.

  • Thủ tục (procedure) - Các chương trình con này không trực tiếp trả về một giá trị; chủ yếu được sử dụng để thực hiện một hành động.

Chương này sẽ trình bày các khía cạnh quan trọng của một thủ tục PL/SQL . Chúng ta sẽ thảo luận về hàm PL/SQL trong chương tiếp theo.

Các phần của chương trình con PL/SQL

Mỗi chương trình con PL/SQL có một tên và cũng có thể có một danh sách tham số. Giống như các khối PL/SQL ẩn danh, các khối được đặt tên cũng sẽ có ba phần sau:

STT

Bộ phận & Mô tả

1

Phần khai báo

Nó là một phần tùy chọn. Tuy nhiên, phần khai báo cho chương trình con không bắt đầu bằng từ khóa DECLARE. Nó chứa các khai báo về kiểu, con trỏ, hằng, biến, ngoại lệ và chương trình con lồng nhau. Các mục này là cục bộ của chương trình con và không còn tồn tại khi chương trình con hoàn thành việc thực thi.

2

Phần thực thi

Đây là một phần bắt buộc và chứa các câu lệnh thực hiện hành động được chỉ định.

3

Xử lý ngoại lệ

Đây lại là một phần không bắt buộc. Nó chứa mã xử lý lỗi thời gian chạy.

Tạo một thủ tục

Một thủ tục được tạo bằng câu lệnh CREATE OR REPLACE PROCEDURE . Cú pháp đơn giản cho câu lệnh CREATE OR REPLACE PROCEDURE như sau:

CREATE [OR REPLACE] PROCEDURE procedure_name 

[(parameter_name [IN | OUT | IN OUT] type [, ...])] 

{IS | AS} 

BEGIN 

  < procedure_body > 

END procedure_name;

Ở đâu,

  • procedure-name chỉ định tên của thủ tục.

  • Tùy chọn [HOẶC THAY THẾ] cho phép sửa đổi quy trình hiện có.

  • Danh sách tham số tùy chọn chứa tên, chế độ và các loại tham số. IN đại diện cho giá trị sẽ được truyền từ bên ngoài và OUT đại diện cho tham số sẽ được sử dụng để trả về một giá trị bên ngoài thủ tục.

  • thân thủ tục chứa phần thực thi.

  • Từ khóa AS được sử dụng thay cho từ khóa IS để tạo một quy trình độc lập.

Thí dụ

Ví dụ sau tạo một thủ tục đơn giản hiển thị chuỗi 'Hello World!' trên màn hình khi thực thi.

CREATE OR REPLACE PROCEDURE greetings 

AS 

BEGIN 

   dbms_output.put_line('Hello World!'); 

END; 

/

Khi đoạn mã trên được thực thi bằng lời nhắc SQL, nó sẽ tạo ra kết quả sau:

Procedure created.


Thực hiện một quy trình độc lập

Một thủ tục độc lập có thể được gọi theo hai cách:

  • Sử dụng từ khóa EXECUTE

  • Gọi tên của thủ tục từ một khối PL/SQL

Thủ tục có tên 'lời chào' ở trên có thể được gọi với từ khóa EXECUTE là -

EXECUTE greetings;


Cuộc gọi trên sẽ hiển thị -

Hello World


PL/SQL procedure successfully completed.


Thủ tục cũng có thể được gọi từ một khối PL/SQL khác -

BEGIN 

   greetings; 

END; 

/

Cuộc gọi trên sẽ hiển thị -

Hello World  


PL/SQL procedure successfully completed. 


Xóa một thủ tục độc lập

Một thủ tục độc lập bị xóa với câu lệnh DROP PROCEDURE . Cú pháp để xóa một thủ tục là:

DROP PROCEDURE procedure-name; 


Bạn có thể bỏ quy trình chào hỏi bằng cách sử dụng câu lệnh sau:

DROP PROCEDURE greetings; 


Chế độ tham số trong chương trình con PL/SQL

Bảng sau liệt kê các chế độ tham số trong chương trình con PL/SQL:

STT

Thông số: Chế độ & Mô tả

1

IN

Tham số IN cho phép bạn truyền một giá trị vào chương trình con. Nó là một tham số chỉ đọc . Bên trong chương trình con, một tham số IN hoạt động giống như một hằng số. Nó không thể được chỉ định một giá trị. Bạn có thể chuyển một hằng số, nghĩa đen, biến khởi tạo hoặc biểu thức dưới dạng tham số IN. Bạn cũng có thể khởi tạo nó thành một giá trị mặc định; tuy nhiên, trong trường hợp đó, nó bị bỏ qua khỏi cuộc gọi chương trình con. Đây là chế độ truyền tham số mặc định. Các thông số được chuyển qua tham chiếu .

2

OUT

Tham số OUT trả về một giá trị cho chương trình đang gọi. Bên trong chương trình con, một tham số OUT hoạt động giống như một biến. Bạn có thể thay đổi giá trị của nó và tham chiếu giá trị sau khi gán nó. Tham số thực tế phải là biến và nó được truyền theo giá trị .

3

IN OUT

Tham số IN OUT chuyển một giá trị ban đầu cho một chương trình con và trả về một giá trị cập nhật cho người gọi. Nó có thể được gán một giá trị và giá trị đó có thể được đọc.

Tham số thực tế tương ứng với tham số chính thức IN OUT phải là một biến, không phải là một hằng số hoặc một biểu thức. Tham số chính thức phải được gán một giá trị. Tham số thực tế được truyền bằng giá trị.

Chế độ IN & OUT Ví dụ 1

Chương trình này tìm giá trị nhỏ nhất của hai giá trị. Ở đây, thủ tục nhận hai số bằng chế độ IN và trả về giá trị tối thiểu của chúng bằng cách sử dụng các tham số OUT.

DECLARE 

   a number; 

   b number; 

   c number;

PROCEDURE findMin(x IN number, y IN number, z OUT number) IS 

BEGIN 

   IF x < y THEN 

      z:= x; 

   ELSE 

      z:= y; 

   END IF; 

END;   

BEGIN 

   a:= 23; 

   b:= 45; 

   findMin(a, b, c); 

   dbms_output.put_line(' Minimum of (23, 45) : ' || c); 

END; 

/

Khi đoạn mã trên được thực thi tại dấu nhắc SQL, nó tạo ra kết quả sau:

Minimum of (23, 45) : 23  


PL/SQL procedure successfully completed. 


Chế độ IN & OUT Ví dụ 2

Thủ tục này tính bình phương giá trị của một giá trị được truyền vào. Ví dụ này cho thấy cách chúng ta có thể sử dụng cùng một tham số để chấp nhận một giá trị và sau đó trả về một kết quả khác.

DECLARE 

   a number; 

PROCEDURE squareNum(x IN OUT number) IS 

BEGIN 

  x := x * x; 

END;  

BEGIN 

   a:= 23; 

   squareNum(a); 

   dbms_output.put_line(' Square of (23): ' || a); 

END; 

/

Khi đoạn mã trên được thực thi tại dấu nhắc SQL, nó tạo ra kết quả sau:

Square of (23): 529 


PL/SQL procedure successfully completed.


Phương pháp truyền tham số

Các tham số thực tế có thể được chuyển theo ba cách:

  • Ký hiệu vị trí

  • Ký hiệu được đặt tên

  • Ký hiệu hỗn hợp

Ký hiệu vị trí

Trong ký hiệu vị trí, bạn có thể gọi thủ tục là -

findMin(a, b, c, d);


Trong ký hiệu vị trí, tham số thực tế đầu tiên được thay thế cho tham số hình thức đầu tiên; tham số thực tế thứ hai được thay thế cho tham số chính thức thứ hai, v.v. Vì vậy, a được thay thế cho x, b được thay thế cho y, c được thay thế cho z và d được thay thế cho m .

Ký hiệu được đặt tên

Trong ký hiệu được đặt tên, tham số thực được liên kết với tham số chính thức bằng ký hiệu mũi tên (=>) . Lệnh gọi thủ tục sẽ giống như sau:

findMin(x => a, y => b, z => c, m => d);


Ký hiệu hỗn hợp

Trong ký hiệu hỗn hợp, bạn có thể kết hợp cả hai ký hiệu trong cuộc gọi thủ tục; tuy nhiên, ký hiệu vị trí phải đứng trước ký hiệu được đặt tên.

Cuộc gọi sau là hợp pháp -

findMin(a, b, c, m => d);


Tuy nhiên, điều này không hợp pháp:

findMin(x => a, b, c, d);


=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
PL/SQL, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master