เราได้รับสตริงที่มีความยาวเท่าใดก็ได้ และภารกิจคือการคำนวณจำนวนอักขระและคำในสตริงโดยใช้ PL/SQL
PL/SQL คือการรวมกันของ SQL ร่วมกับคุณสมบัติขั้นตอนของภาษาโปรแกรมมิ่ง ได้รับการพัฒนาโดย Oracle Corporation ในช่วงต้นทศวรรษ 90 เพื่อเพิ่มขีดความสามารถของ SQL PL/SQL เป็นหนึ่งในสามภาษาการเขียนโปรแกรมหลักที่ฝังอยู่ในฐานข้อมูล Oracle พร้อมด้วย SQL และ Java
ในบล็อก PL/SQL เรามีบล็อก DECLARE ซึ่งใช้ในการประกาศตัวแปรที่ใช้ในการเขียนโปรแกรม และเรามีบล็อก BEGIN ที่เราเขียนตรรกะสำหรับปัญหาที่กำหนด
ตัวอย่าง
Input − string str = “Tutorials Point” Output− count of characters is: 15 Count of words are: 2
คำอธิบาย-:ในสตริงที่กำหนด เรามีคำทั้งหมด 2 คำ ดังนั้นจำนวนคำคือ 2 และในคำเหล่านั้น เรามีอักขระ 14 ตัว บวกอีกหนึ่งตัวสำหรับช่องว่างในสตริงที่กำหนด
Input − string str = “Honesty is the best policy” Output − count of characters is: 26 Count of words are: 5
คำอธิบาย − ในสตริงที่กำหนด เรามีทั้งหมด 5 คำ ดังนั้นการนับจำนวนคำคือ 5 และในคำเหล่านั้น เรามีอักขระ 24 ตัว บวกสี่ตัวสำหรับช่องว่างสี่ช่องในสตริงที่กำหนด
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนสตริงที่มีความยาวเท่าใดก็ได้และเก็บไว้ในตัวแปร str
-
คำนวณความยาวของสตริงโดยใช้ฟังก์ชัน length() ที่จะคืนค่าจำนวนเต็มตามจำนวนตัวอักษรในสตริงรวมทั้งช่องว่าง
-
ข้ามลูปโดยเริ่มจาก i ถึง 0 และจนถึงความยาวของสตริง str
-
ใช้ฟังก์ชัน substr() ที่จะคืนค่าจำนวนสตริงย่อยในสตริงที่เป็นจำนวนคำในสตริง
-
และเพิ่มจำนวนอักขระด้วยการวนซ้ำทุกรอบซึ่งจะยาวไปจนถึงความยาวของสตริง
-
พิมพ์จำนวนอักขระและคำในสตริง
ตัวอย่าง
DECLARE str VARCHAR2(40) := 'Tutorials Point'; nchars NUMBER(4) := 0; nwords NUMBER(4) := 1; s CHAR; BEGIN FOR i IN 1..Length(str) LOOP s := Substr(str, i, 1); nchars:= nchars+ 1; IF s = ' ' THEN nwords := nwords + 1; END IF; END LOOP; dbms_output.Put_line('count of characters is:' ||nchars); dbms_output.Put_line('Count of words are: ' ||nwords); END;
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
count of characters is: 15 Count of words are: 2