Chuỗi trong PL/SQL thực sự là một chuỗi ký tự với đặc điểm kỹ thuật kích thước tùy chọn. Các ký tự có thể là số, chữ cái, trống, ký tự đặc biệt hoặc kết hợp của tất cả. PL/SQL cung cấp ba loại chuỗi:
Chuỗi có độ dài cố định - Trong các chuỗi như vậy, người lập trình chỉ định độ dài trong khi khai báo chuỗi. Chuỗi được đệm bên phải với các khoảng trắng có độ dài được chỉ định.
Chuỗi có độ dài thay đổi - Trong các chuỗi như vậy, độ dài tối đa lên đến 32,767, cho chuỗi được chỉ định và không có phần đệm diễn ra.
Đối tượng lớn ký tự (CLOB) - Đây là các chuỗi có độ dài thay đổi có thể lên đến 128 terabyte.
Chuỗi PL/SQL có thể là biến hoặc ký tự. Một chuỗi ký tự được đặt trong dấu ngoặc kép. Ví dụ,
'This is a string literal.' Or 'hello world'
Để bao gồm một dấu ngoặc kép bên trong một chuỗi ký tự, bạn cần nhập hai dấu ngoặc kép bên cạnh nhau. Ví dụ,
'this isn''t what it looks like'
Khai báo các biến chuỗi
Cơ sở dữ liệu Oracle cung cấp nhiều kiểu dữ liệu chuỗi, chẳng hạn như CHAR, NCHAR, VARCHAR2, NVARCHAR2, CLOB và NCLOB. Các kiểu dữ liệu có tiền tố là 'N' là kiểu dữ liệu 'bộ ký tự quốc gia' , lưu trữ dữ liệu ký tự Unicode.
Nếu bạn cần khai báo một chuỗi có độ dài thay đổi, bạn phải cung cấp độ dài tối đa của chuỗi đó. Ví dụ: kiểu dữ liệu VARCHAR2. Ví dụ sau minh họa việc khai báo và sử dụng một số biến chuỗi:
DECLARE
name varchar2(20);
company varchar2(30);
introduction clob;
choice char(1);
BEGIN
name := 'John Smith';
company := 'tranvanbinh.vn';
introduction := ' Hello! I''m John Smith from tranvanbinh.vn.';
choice := 'y';
IF choice = 'y' THEN
dbms_output.put_line(name);
dbms_output.put_line(company);
dbms_output.put_line(introduction);
END IF;
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:
John Smith
tranvanbinh.vn
Hello! I'm John Smith from tranvanbinh.vn.
PL/SQL procedure successfully completed
Để khai báo một chuỗi có độ dài cố định, hãy sử dụng kiểu dữ liệu CHAR. Ở đây bạn không phải chỉ định độ dài tối đa cho một biến độ dài cố định. Nếu bạn không giới hạn độ dài, Cơ sở dữ liệu Oracle sẽ tự động sử dụng độ dài tối đa được yêu cầu. Hai khai báo sau đây giống hệt nhau:
red_flag CHAR(1) := 'Y';
red_flag CHAR := 'Y';
Các hàm và toán tử chuỗi PL/SQL
PL/SQL cung cấp toán tử nối (||) để nối hai chuỗi. Bảng sau cung cấp các hàm chuỗi được cung cấp bởi PL/SQL:
Bây giờ chúng ta hãy làm một vài ví dụ để hiểu khái niệm -
ví dụ 1
DECLARE
greetings varchar2(11) := 'hello world';
BEGIN
dbms_output.put_line(UPPER(greetings));
dbms_output.put_line(LOWER(greetings));
dbms_output.put_line(INITCAP(greetings));
/* retrieve the first character in the string */
dbms_output.put_line ( SUBSTR (greetings, 1, 1));
/* retrieve the last character in the string */
dbms_output.put_line ( SUBSTR (greetings, -1, 1));
/* retrieve five characters,
starting from the seventh position. */
dbms_output.put_line ( SUBSTR (greetings, 7, 5));
/* retrieve the remainder of the string,
starting from the second position. */
dbms_output.put_line ( SUBSTR (greetings, 2));
/* find the location of the first "e" */
dbms_output.put_line ( INSTR (greetings, 'e'));
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:
HELLO WORLD
hello world
Hello World
h
d
World
ello World
2
PL/SQL procedure successfully completed.
Ví dụ 2
DECLARE
greetings varchar2(30) := '......Hello World.....';
BEGIN
dbms_output.put_line(RTRIM(greetings,'.'));
dbms_output.put_line(LTRIM(greetings, '.'));
dbms_output.put_line(TRIM( '.' from greetings));
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:
......Hello World
Hello World.....
Hello World
PL/SQL procedure successfully completed.
* 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