65 คำถามและคำตอบในการสัมภาษณ์ PL/SQL (2025)

ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ PL/SQL สำหรับผู้สมัครใหม่และมีประสบการณ์เพื่อให้ได้งานในฝัน

 

คำถามและคำตอบในการสัมภาษณ์ PL/SQL สำหรับนักศึกษาใหม่

1) PL SQL คืออะไร

Oracle PL/SQL เป็นส่วนขยายของภาษา SQL ที่รวมพลังการจัดการข้อมูลของ SQL เข้ากับพลังการประมวลผลของภาษาขั้นตอนเพื่อสร้างแบบสอบถาม SQL ที่ทรงพลังอย่างยิ่ง PL/SQL ช่วยให้มั่นใจในการประมวลผลคำสั่ง SQL ได้อย่างราบรื่นโดยเพิ่มความปลอดภัย ความสามารถในการพกพา และความทนทานของฐานข้อมูล
PL/SQL ย่อมาจาก “ส่วนขยายภาษาขั้นตอนไปยังภาษาคิวรีที่มีโครงสร้าง”

👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบในการสัมภาษณ์ PL/SQL


2) แยกความแตกต่างระหว่าง % ROWTYPE และ TYPE RECORD

% ประเภทแถว ใช้เมื่อแบบสอบถามส่งกลับทั้งแถวของตารางหรือมุมมอง
พิมพ์บันทึก ในทางกลับกัน จะใช้เมื่อแบบสอบถามส่งกลับคอลัมน์ของตารางหรือมุมมองที่แตกต่างกัน

เช่น. ประเภท r_emp คือ RECORD (sno smp.smpno% ประเภท, sname smp sname % ประเภท)

e_rec เอสเอ็มพี %โรว์ไทป์

เคอร์เซอร์ c1 เลือก smpno, dept จาก smp;

e_rec c1 %โรว์ไทป์


3) อธิบายการใช้เคอร์เซอร์

เคอร์เซอร์เป็นพื้นที่ส่วนตัวที่มีชื่อใน SQL ซึ่งสามารถเข้าถึงข้อมูลได้ พวกเขาจำเป็นต้องประมวลผลแต่ละแถวแยกกันสำหรับข้อความค้นหาที่ส่งคืนหลายแถว


4) แสดงรหัสของเคอร์เซอร์สำหรับการวนซ้ำ

เคอร์เซอร์ประกาศ %ROWTYPE เป็นดัชนีของลูปโดยปริยาย จากนั้นจะเปิดเคอร์เซอร์ รับแถวของค่าจากชุดที่ใช้งานในฟิลด์ของเรกคอร์ด และปิดเมื่อประมวลผลเรกคอร์ดทั้งหมดแล้ว

เช่น.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) อธิบายการใช้ทริกเกอร์ฐานข้อมูล

หน่วยโปรแกรม PL/SQL ที่เกี่ยวข้องกับตารางฐานข้อมูลเฉพาะเรียกว่าทริกเกอร์ฐานข้อมูล มันใช้สำหรับ:

1) การแก้ไขข้อมูลการตรวจสอบ

2) บันทึกเหตุการณ์อย่างโปร่งใส

3) บังคับใช้กฎเกณฑ์ทางธุรกิจที่ซับซ้อน

4) ดูแลรักษาตารางจำลอง

5) รับค่าคอลัมน์

6) ดำเนินการตามการอนุญาตด้านความปลอดภัยที่ซับซ้อน


6) ข้อยกเว้นสองประเภทคืออะไร

ข้อผิดพลาดในการจัดการส่วนหนึ่งของบล็อก PL/SQL เรียกว่าข้อยกเว้น มีสองประเภท: user_defined และที่กำหนดไว้ล่วงหน้า


7) แสดงข้อยกเว้นที่กำหนดไว้ล่วงหน้าบางส่วน

DUP_VAL_ON_INDEX

ศูนย์_DIVIDE

ไม่พบข้อมูล

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

INVALID_NUMBER

INVALID_CURSOR

PROGRAM_ERROR

หมดเวลา _ON_RESOURCE

การจัดเก็บ_ข้อผิดพลาด

LOGON_DENIED

VALUE_ERROR

เป็นต้น


8) อธิบาย Raise_application_error

เป็นขั้นตอนของแพ็คเกจ DBMS_STANDARD ที่อนุญาตให้ออกข้อความแสดงข้อผิดพลาดที่ผู้ใช้กำหนดจากทริกเกอร์ฐานข้อมูลหรือโปรแกรมย่อยที่เก็บไว้


9) แสดงวิธีการเรียกใช้ฟังก์ชันและขั้นตอนต่างๆ ในบล็อก PL SQL

ฟังก์ชันถูกเรียกว่าเป็นส่วนหนึ่งของนิพจน์

total:=calculate_sal('b644')

ขั้นตอนเรียกว่าเป็นคำสั่งใน PL / SQL.

calculate_bonus('b644');


10) อธิบายตารางเสมือนสองตารางที่มีอยู่ในขณะที่ดำเนินการทริกเกอร์ฐานข้อมูล

คอลัมน์ตารางเรียกว่า OLD.column_name และ NEW.column_name

สำหรับทริกเกอร์ที่เกี่ยวข้องกับ INSERT ค่า NEW.column_name จะมีให้ใช้งานเท่านั้น

สำหรับทริกเกอร์ที่เกี่ยวข้องกับ DELETE ค่า OLD.column_name จะมีให้ใช้งานเท่านั้น

สำหรับทริกเกอร์ที่เกี่ยวข้องกับ UPDATE ทั้งสองคอลัมน์ของตารางจะพร้อมใช้งาน


11) มีกฎอะไรบ้างที่จะใช้กับ NULLs ในขณะที่ทำการเปรียบเทียบ?

1) NULL ไม่เคยเป็น TRUE หรือ FALSE

2) NULL ไม่สามารถเท่ากับหรือไม่เท่ากับค่าอื่น ๆ

3) ถ้าค่าในนิพจน์เป็นค่า NULL นิพจน์นั้นก็จะประเมินเป็นค่า NULL เอง ยกเว้นตัวดำเนินการเรียงต่อกัน (||)


12) กระบวนการของ PL SQL ถูกคอมไพล์อย่างไร?

กระบวนการคอมไพล์ประกอบด้วยการตรวจสอบไวยากรณ์ การผูก และกระบวนการสร้างรหัส P

การตรวจสอบไวยากรณ์จะตรวจสอบโค้ด PL SQL เพื่อหาข้อผิดพลาดในการคอมไพล์ เมื่อข้อผิดพลาดทั้งหมดได้รับการแก้ไข ที่อยู่การจัดเก็บข้อมูลจะถูกกำหนดให้กับตัวแปรที่เก็บข้อมูล มันถูกเรียกว่าการผูกมัด P-code คือรายการคำสั่งสำหรับกลไก PL SQL P-code ถูกจัดเก็บไว้ในฐานข้อมูลสำหรับบล็อกที่มีชื่อ และใช้ในครั้งต่อไปที่ดำเนินการ


13) แยกความแตกต่างระหว่างข้อผิดพลาดทางไวยากรณ์และรันไทม์

ข้อผิดพลาดทางไวยากรณ์สามารถตรวจพบได้ง่ายโดยคอมไพเลอร์ PL/SQL เช่น การสะกดคำไม่ถูกต้อง

ข้อผิดพลาดรันไทม์ได้รับการจัดการด้วยความช่วยเหลือของส่วนการจัดการข้อยกเว้นใน บล็อก PL/SQL- เช่น คำสั่ง SELECT INTO ซึ่งไม่ส่งคืนแถวใดๆ


14) อธิบาย Commit, Rollback และ Savepoint

สำหรับคำสั่ง COMMIT สิ่งต่อไปนี้เป็นจริง:

  • ผู้ใช้รายอื่นสามารถเห็นการเปลี่ยนแปลงข้อมูลที่ทำโดยธุรกรรม
  • การล็อกที่ได้รับจากธุรกรรมจะถูกนำออกใช้
  • งานที่ทำโดยธุรกรรมจะกลายเป็นงานถาวร

คำสั่ง ROLLBACK จะถูกออกเมื่อธุรกรรมสิ้นสุดลง และต่อไปนี้เป็นจริง

  • งานที่ทำในช่วงเปลี่ยนผ่านจะถูกยกเลิกเหมือนกับว่าไม่เคยออกเลย
  • ล็อคทั้งหมดที่ได้รับจากการทำธุรกรรมจะถูกปลดออก

โดยจะยกเลิกงานทั้งหมดที่ผู้ใช้ทำในธุรกรรม ด้วย SAVEPOINT คุณสามารถยกเลิกธุรกรรมได้เพียงบางส่วนเท่านั้น


15) กำหนดเคอร์เซอร์โดยนัยและชัดเจน

เคอร์เซอร์มีความหมายโดยนัยตามค่าเริ่มต้น ผู้ใช้ไม่สามารถควบคุมหรือประมวลผลข้อมูลในเคอร์เซอร์นี้ได้

หากแบบสอบถามส่งคืนข้อมูลหลายแถว โปรแกรมจะกำหนดเคอร์เซอร์ที่ชัดเจน ซึ่งช่วยให้แอปพลิเคชันประมวลผลแต่ละแถวตามลำดับเมื่อเคอร์เซอร์ส่งคืน


16) อธิบายข้อผิดพลาดของตารางการกลายพันธุ์

มันเกิดขึ้นเมื่อทริกเกอร์พยายามอัปเดตแถวที่กำลังใช้งานอยู่ ได้รับการแก้ไขโดยใช้มุมมองหรือตารางชั่วคราว ดังนั้นฐานข้อมูลจึงเลือกรายการหนึ่งและอัปเดตอีกรายการหนึ่ง


17) เมื่อใดจึงจำเป็นต้องมีคำสั่งประกาศ?

คำสั่ง DECLARE ถูกใช้โดยบล็อกที่ไม่ระบุชื่อ PL SQL เช่น โพรซีเดอร์แบบสแตนด์อโลนและไม่ได้จัดเก็บ หากใช้งานจะต้องมาก่อนในไฟล์แบบสแตนด์อโลน


18) ตารางหนึ่งสามารถใช้ทริกเกอร์ได้กี่ตัว?

สามารถใช้ทริกเกอร์ได้สูงสุด 12 รายการในหนึ่งตาราง


19) SQLCODE และ SQLERRM มีความสำคัญอย่างไร?

SQLCODE ส่งคืนค่าของจำนวนข้อผิดพลาดสำหรับข้อผิดพลาดที่พบครั้งล่าสุด ในขณะที่ SQLERRM ส่งคืนข้อความสำหรับข้อผิดพลาดครั้งล่าสุด


20) ถ้าเคอร์เซอร์เปิดอยู่ เราจะค้นหาใน PL SQL Block ได้อย่างไร?

สามารถใช้ตัวแปรสถานะเคอร์เซอร์ %ISOPEN ได้


คำถามสัมภาษณ์ PL/SQL สำหรับผู้มีประสบการณ์

21) แสดงข้อยกเว้นเคอร์เซอร์ PL/SQL สองตัว

เคอร์เซอร์_เปิดแล้ว_เปิดแล้ว

Invaid_cursor


22) ตัวดำเนินการใดจัดการกับ NULL?

NVL แปลง NULL เป็นค่าอื่นที่ระบุ

var:=NVL(var2,'Hi');

IS NULL และ IS NOT NULL สามารถใช้ตรวจสอบโดยเฉพาะเพื่อดูว่าค่าของตัวแปรเป็น NULL หรือไม่


23) SQL*Plus มี PL/SQL Engine ด้วยหรือไม่

ไม่ SQL*Plus ไม่มี PL/SQL Engine ฝังอยู่ ดังนั้นโค้ด PL/SQL ทั้งหมดจึงถูกส่งไปยังกลไกฐานข้อมูลโดยตรง มีประสิทธิภาพมากกว่ามากเนื่องจากแต่ละข้อความไม่ได้แยกออกจากกัน


24) แพ็คเกจใดบ้างที่พร้อมใช้งานสำหรับนักพัฒนา PL SQL?

DBMS_ ชุดของแพ็คเกจ เช่น DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE


25) อธิบายส่วนพื้นฐานของทริกเกอร์ 3 ส่วน

  • คำสั่งหรือเหตุการณ์ที่กระตุ้น
  • ข้อจำกัด
  • การกระทำ

26) ฟังก์ชั่นตัวละครคืออะไร?

INITCAP, UPPER, SUBSTR, LOWER และ LENGTH เป็นฟังก์ชันอักขระทั้งหมด ฟังก์ชันกลุ่มจะให้ผลลัพธ์ตามกลุ่มของแถว ตรงข้ามกับแต่ละแถว คือ MAX, MIN, AVG, นับ และ SUM


27) อธิบาย TTITLE และ BTITLE

คำสั่ง TTITLE และ BTITLE ที่ควบคุมส่วนหัวและส่วนท้ายของรายงาน


28) แสดงคุณลักษณะเคอร์เซอร์ของ PL/SQL

%ISOPEN: ตรวจสอบว่าเคอร์เซอร์เปิดอยู่หรือไม่

%ROWCOUNT: จำนวนแถวที่อัปเดต ลบ หรือดึงข้อมูล

%FOUND: ตรวจสอบว่าเคอร์เซอร์ดึงข้อมูลแถวใดหรือไม่ มันจะเป็นจริงหากดึงแถวมา

%NOT FOUND: ตรวจสอบว่าเคอร์เซอร์ดึงข้อมูลแถวใดหรือไม่ เป็นจริงหากไม่ได้ดึงข้อมูลแถว


29) อินเตอร์เซกคืออะไร?

Intersect คือผลคูณของสองตาราง และจะแสดงเฉพาะแถวที่ตรงกันเท่านั้น


30) ลำดับคืออะไร?

ลำดับใช้เพื่อสร้างหมายเลขลำดับโดยไม่ต้องมีการล็อก ข้อเสียคือหมายเลขลำดับจะสูญหายหากธุรกรรมถูกย้อนกลับ


31) คุณจะอ้างอิงค่าคอลัมน์ก่อนและหลังคุณแทรกและลบทริกเกอร์อย่างไร

การใช้คำหลัก "new.column name" ทริกเกอร์สามารถอ้างอิงค่าคอลัมน์ตามคอลเลกชันใหม่ โดยใช้คำสำคัญ "old.column name" พวกเขาสามารถอ้างอิงค่าคอลัมน์ตามคอลเลกชันเก่าได้


32) คำหลัก SYSDATE และ USER มีประโยชน์อย่างไร?

SYSDATE หมายถึงวันที่ระบบเซิร์ฟเวอร์ปัจจุบัน มันเป็นคอลัมน์หลอก USER ยังเป็นคอลัมน์หลอก แต่หมายถึงผู้ใช้ปัจจุบันที่ล็อกเข้าสู่เซสชัน ใช้เพื่อติดตามการเปลี่ยนแปลงที่เกิดขึ้นในตาราง


33) ROWID ช่วยในการเรียกใช้แบบสอบถามเร็วขึ้นได้อย่างไร

ROWID คือที่อยู่แบบลอจิคัลของแถว ไม่ใช่คอลัมน์จริง ประกอบด้วยหมายเลขบล็อกข้อมูล หมายเลขไฟล์ และหมายเลขแถวในบล็อกข้อมูล ดังนั้น เวลา I/O จะถูกย่อให้เหลือน้อยที่สุดในการดึงข้อมูลแถว และส่งผลให้คิวรีเร็วขึ้น


34) ลิงค์ฐานข้อมูลใช้ทำอะไร?

ลิงก์ฐานข้อมูลถูกสร้างขึ้นเพื่อสร้างการสื่อสารระหว่างฐานข้อมูลต่างๆ หรือสภาพแวดล้อมที่แตกต่างกัน เช่น การทดสอบ การพัฒนา และการใช้งานจริง ลิงค์ฐานข้อมูลเป็นแบบอ่านอย่างเดียวเพื่อเข้าถึงข้อมูลอื่นเช่นกัน


35) การดึงเคอร์เซอร์ทำหน้าที่อะไร?

การเรียกเคอร์เซอร์จะอ่านชุดผลลัพธ์ทีละแถว


36) การปิดเคอร์เซอร์ทำหน้าที่อะไร?

การปิดเคอร์เซอร์จะล้างพื้นที่ SQL ส่วนตัวและยกเลิกการจัดสรรหน่วยความจำ


37) อธิบายการใช้ไฟล์ควบคุม

มันเป็นไฟล์ไบนารี มันบันทึกโครงสร้างของฐานข้อมูล ประกอบด้วยตำแหน่งของไฟล์บันทึก ชื่อ และการประทับเวลาต่างๆ สามารถจัดเก็บไว้ในสถานที่ต่าง ๆ เพื่อช่วยในการดึงข้อมูลหากไฟล์หนึ่งเสียหาย


38) อธิบายความสม่ำเสมอ

ความสอดคล้องแสดงให้เห็นว่าข้อมูลจะไม่สะท้อนไปยังผู้ใช้รายอื่นจนกว่าข้อมูลจะถูกส่งมอบ ดังนั้นจึงรักษาความสอดคล้องไว้


39) ความแตกต่างระหว่างบล็อกนิรนามและโปรแกรมย่อย

บล็อกที่ไม่ระบุชื่อเป็นบล็อกที่ไม่มีชื่อซึ่งไม่ได้จัดเก็บไว้ที่ใดในขณะที่โปรแกรมย่อยถูกคอมไพล์และจัดเก็บไว้ในฐานข้อมูล พวกมันถูกคอมไพล์ตอนรันไทม์


40) ความแตกต่างระหว่างการถอดรหัสและกรณี

คำสั่ง DECODE และ CASE คล้ายกันมาก แต่ CASE เป็นเวอร์ชันขยายของ DECODE DECODE ไม่อนุญาตให้ใช้คำแถลงเกี่ยวกับการตัดสินใจแทน

เลือก decode(totalsal=12000,'high',10000,'medium') เป็น decode_tesr จาก smp โดยที่ smpno ใน (10,12,14,16);

คำสั่งนี้ส่งคืนข้อผิดพลาด

CASE ถูกใช้โดยตรงใน PL SQL แต่ DECODE ใช้ใน PL SQL ผ่าน SQL เท่านั้น


41) อธิบายธุรกรรมอัตโนมัติ

ธุรกรรมที่เป็นอิสระคือธุรกรรมอิสระของธุรกรรมหลักหรือรายการหลัก จะไม่ซ้อนกันหากเริ่มต้นโดยธุรกรรมอื่น

มีหลายสถานการณ์ในการใช้ธุรกรรมแบบอัตโนมัติ เช่น การบันทึกเหตุการณ์และการตรวจสอบ


42) แยกความแตกต่างระหว่าง SGA และ PGA

SGA ย่อมาจาก System Global Area ในขณะที่ PGA ย่อมาจาก Program หรือ Process Global Area PGA ได้รับการจัดสรรขนาด RAM เพียง 10% แต่ SGA จะได้รับขนาด RAM 40%


43) ตำแหน่งของ Pre_defence_functions คืออะไร

จะถูกจัดเก็บไว้ในแพ็คเกจมาตรฐานที่เรียกว่า “ฟังก์ชั่น ขั้นตอน และแพ็คเกจ”


44) อธิบายความหลากหลายใน PL SQL

Polymorphism เป็นคุณสมบัติของ OOP เป็นความสามารถในการสร้างตัวแปร วัตถุ หรือฟังก์ชันที่มีหลายรูปแบบ PL/SQL รองรับ Polymorphism ในรูปแบบของหน่วยโปรแกรมที่โอเวอร์โหลดภายในฟังก์ชันหรือแพ็คเกจของสมาชิก.. ต้องหลีกเลี่ยงตรรกะที่ชัดเจนในขณะที่กำลังโอเวอร์โหลด


45) MERGE มีประโยชน์อย่างไร?

MERGE ใช้เพื่อรวมคำสั่ง DML หลายรายการเป็นคำสั่งเดียว

ไวยากรณ์: ผสานเข้ากับชื่อตาราง

ใช้ (แบบสอบถาม)

เปิด (เข้าร่วมเงื่อนไข)

เมื่อไม่ตรงกันแล้ว

คำสั่ง [แทรก/อัพเดต/ลบ]

เมื่อจับคู่กันแล้ว

คำสั่ง [แทรก/อัพเดต/ลบ]


คำถามสัมภาษณ์ PL/SQL ที่มีประสบการณ์มากกว่า 5 ปี

46) สามารถดำเนินการ 2 คิวรีพร้อมกันในระบบฐานข้อมูลแบบกระจายได้หรือไม่

ใช่ สามารถดำเนินการพร้อมกันได้ แบบสอบถามหนึ่งรายการจะไม่ขึ้นอยู่กับแบบสอบถามรายการที่สองในระบบฐานข้อมูลแบบกระจายที่ใช้การคอมมิต 2 เฟส


47) อธิบาย Raise_application_error

เป็นขั้นตอนของแพ็คเกจ DBMS_STANDARD ที่อนุญาตให้ออกข้อความแสดงข้อผิดพลาดที่ผู้ใช้กำหนดจากทริกเกอร์ฐานข้อมูลหรือโปรแกรมย่อยที่เก็บไว้


48) out พารามิเตอร์ใดที่ใช้สำหรับคำสั่ง return ที่สามารถใช้ใน pl/sql ได้?

พารามิเตอร์ Out อนุญาตให้มีค่ามากกว่าหนึ่งค่าในการเรียกโปรแกรม ไม่แนะนำให้ใช้พารามิเตอร์ Out ในฟังก์ชัน สามารถใช้ขั้นตอนแทนฟังก์ชันได้หากต้องการหลายค่า ดังนั้นขั้นตอนเหล่านี้จึงใช้เพื่อดำเนินการพารามิเตอร์ Out


49) คุณจะแปลงวันที่เป็นรูปแบบวันที่แบบจูเลียนได้อย่างไร?

เราสามารถใช้สตริงรูปแบบ J :

SQL > เลือก to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') เป็นจูเลียนจาก dual;

จูเลียน


50) อธิบาย SPOOL

คำสั่ง Spool สามารถพิมพ์ผลลัพธ์ของคำสั่ง sql ลงในไฟล์ได้

เก็บพัก/tmp/sql_outtxt

เลือก smp_name, smp_id จาก smp โดยที่ dept='accounts';

ม้วนออก;


51) พูดถึงแพ็คเกจ PL/SQL ประกอบด้วยอะไรบ้าง?

แพ็คเกจ PL/SQL ประกอบด้วย

  • ตาราง PL/SQL และบันทึกคำสั่ง TYPE
  • ขั้นตอนและหน้าที่
  • เคอร์เซอร์
  • ตัวแปร (ตาราง สเกลาร์ เรคคอร์ด ฯลฯ) และค่าคงที่
  • ชื่อข้อยกเว้นและแนวทางปฏิบัติสำหรับการเชื่อมโยงหมายเลขข้อผิดพลาดกับข้อยกเว้น
  • เคอร์เซอร์

52) พูดถึงประโยชน์ของแพ็คเกจ PL/SQL คืออะไร?

มันให้ประโยชน์หลายประการเช่น

  • การปกปิดข้อมูลที่บังคับใช้: ให้อิสระในการเลือกว่าจะเก็บข้อมูลส่วนตัวหรือสาธารณะ
  • การออกแบบจากบนลงล่าง: คุณสามารถออกแบบอินเทอร์เฟซสำหรับโค้ดที่ซ่อนอยู่ในแพ็คเกจได้ก่อนที่คุณจะใช้งานโมดูลด้วยตนเอง
  • ความคงอยู่ของวัตถุ: ออบเจ็กต์ที่ประกาศในข้อกำหนดแพ็คเกจจะทำงานเหมือนกับข้อมูลส่วนกลางสำหรับออบเจ็กต์ PL/SQL ทั้งหมดในแอปพลิเคชัน คุณสามารถแก้ไขแพ็คเกจในโมดูลหนึ่ง จากนั้นอ้างอิงการเปลี่ยนแปลงเหล่านั้นไปยังโมดูลอื่น
  • การออกแบบเชิงวัตถุ: แพ็คเกจนี้ช่วยให้ผู้พัฒนาสามารถควบคุมวิธีการใช้โมดูลและโครงสร้างข้อมูลภายในแพ็คเกจได้อย่างมั่นคง
  • รับประกันความสมบูรณ์ของธุรกรรม: มันให้ความสมบูรณ์ของธุรกรรมในระดับหนึ่ง
  • การปรับปรุงประสิทธิภาพ: เค้ก อาร์ดีบีเอ็มเอส ติดตามความถูกต้องของออบเจ็กต์โปรแกรมทั้งหมดที่จัดเก็บไว้ในฐานข้อมูลโดยอัตโนมัติและปรับปรุงประสิทธิภาพของแพ็คเกจ

53) พูดถึงวิธีการต่างๆ ในการติดตามโค้ด PL/SQL มีอะไรบ้าง

การติดตามโค้ดเป็นเทคนิคสำคัญในการวัดประสิทธิภาพของโค้ดในระหว่างรันไทม์ วิธีการติดตามที่แตกต่างกัน ได้แก่

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION และ DBMS_MONITOR
  • ยูทิลิตี้ trcsess และ tkproof

54) กล่าวถึงว่าโปรไฟเลอร์แบบลำดับชั้นทำหน้าที่อะไร

โปรไฟเลอร์แบบลำดับชั้นสามารถสร้างโปรไฟล์การเรียกข้อมูลใน PL/SQL ได้ นอกเหนือจากการเติมช่องว่างระหว่างช่องโหว่และความคาดหวังในการติดตามประสิทธิภาพ ประสิทธิภาพของโปรไฟเลอร์แบบลำดับชั้นประกอบด้วย

  • รายงานที่แตกต่างสำหรับ SQL และการสิ้นเปลืองเวลาของ PL/SQL
  • รายงานจำนวนการเรียกใช้โปรแกรมย่อยที่แตกต่างกันใน PL/SQL และเวลาที่ใช้กับการเรียกโปรแกรมย่อยแต่ละรายการ
  • รายงานการวิเคราะห์เชิงโต้ตอบหลายรายการในรูปแบบ HTML โดยใช้ยูทิลิตีบรรทัดคำสั่ง
  • มีประสิทธิภาพมากกว่าเครื่องมือสร้างโปรไฟล์ทั่วไปและยูทิลิตี้การติดตามอื่นๆ

55) พูดถึง PLV msg ให้คุณทำอะไรได้บ้าง?

ข้อความ PLV ช่วยให้คุณสามารถ

  • กำหนดข้อความแต่ละรายการให้กับแถวที่ระบุในตาราง PL/SQL
  • จะดึงข้อความตามหมายเลข
  • โดยจะแทนที่ข้อความของคุณให้เป็นมาตรฐานโดยอัตโนมัติ Oracle ข้อความแสดงข้อผิดพลาดพร้อมการสลับจำกัด
  • โหลดแบตช์หมายเลขข้อความและข้อความจากตารางฐานข้อมูลโดยตรง PLV msg ตาราง PL/SQL

56) พูดถึงแพ็คเกจ PLV (PL/Vision) ที่เสนอให้คืออะไร?

  • ค่าการทดแทนค่าว่าง
  • ชุดของการยืนยันการยืนยัน
  • สาธารณูปโภคอื่นๆ
  • ชุดค่าคงที่ที่ใช้ตลอดการมองเห็น PL
  • ประเภทข้อมูลที่กำหนดไว้ล่วงหน้า

57) พูดถึงการใช้ PLVprs และ PLVprsps คืออะไร?

  • PLVprs: เป็นส่วนขยายสำหรับการแยกวิเคราะห์สตริงสำหรับ PL/SQL และเป็นระดับต่ำสุดของฟังก์ชันการแยกวิเคราะห์สตริง
  • PLVprsps: เป็นแพ็คเกจระดับสูงสุดสำหรับการแยกวิเคราะห์โค้ดต้นฉบับ PL/SQL ออกเป็นอะตอมแยกกัน โดยอาศัยแพ็คเกจการแยกวิเคราะห์อื่นๆ เพื่อให้ทำงานสำเร็จ

58) อธิบายว่าคุณสามารถคัดลอกไฟล์ไปยังไฟล์เนื้อหาและไฟล์ไปยังตาราง PL/SQL ล่วงหน้า PL/SQL ได้อย่างไร

ด้วยการเรียกโปรแกรมเพียงครั้งเดียว – “ขั้นตอน fcopy” คุณสามารถคัดลอกเนื้อหาทั้งหมดของไฟล์หนึ่งไปยังอีกไฟล์หนึ่งได้ ในขณะที่คัดลอกเนื้อหาของไฟล์ลงในตาราง PL/SQL โดยตรง คุณสามารถใช้โปรแกรม “file2pstab”.


59) อธิบายว่าการจัดการข้อยกเว้นล่วงหน้า PL/SQL ทำอย่างไร

ใช้เพื่อการ การจัดการข้อยกเว้น PL/SQL ให้ปลั๊กอินที่มีประสิทธิภาพ PLVexc PLVexc รองรับการดำเนินการจัดการข้อยกเว้นที่แตกต่างกันสี่แบบ

  • ดำเนินการประมวลผลต่อ
  • บันทึกแล้วดำเนินการต่อ
  • หยุดการประมวลผล
  • บันทึกแล้วหยุดการประมวลผล

สำหรับข้อยกเว้นเหล่านั้นที่เกิดขึ้นซ้ำ คุณสามารถใช้คำสั่ง RAISE ได้


60) พูดถึงปัญหาที่อาจเกิดขึ้นขณะเขียนข้อมูลบันทึกลงในตารางฐานข้อมูลใน PL/SQL?

ขณะเขียนข้อมูลบันทึกลงในตารางฐานข้อมูล ปัญหาที่คุณเผชิญคือข้อมูลจะพร้อมใช้งานเฉพาะเมื่อมีการส่งข้อมูลแถวใหม่ไปยังฐานข้อมูลเท่านั้น ซึ่งอาจเป็นปัญหาได้ เนื่องจาก PLVlog มักถูกนำไปใช้เพื่อติดตามข้อผิดพลาด และในกรณีดังกล่าว ธุรกรรมปัจจุบันอาจล้มเหลวหรือจำเป็นต้องย้อนกลับ


61) พูดถึงฟังก์ชั่นที่ใช้ในการถ่ายโอนบันทึกตาราง PL/SQL ไปยังตารางฐานข้อมูลคืออะไร?

ในการถ่ายโอนตาราง PL/SQL ให้บันทึกฟังก์ชันตารางบันทึกฐานข้อมูล “ขั้นตอน ps2db” ถูกนำมาใช้.


62) เมื่อคุณต้องใช้จุดบันทึกเริ่มต้น "ย้อนกลับไปยัง" ของ PLVlog?

จุดบันทึก "ย้อนกลับไปยัง" เริ่มต้นของ PLVlog จะใช้เมื่อผู้ใช้เปิดกิจกรรมการย้อนกลับและไม่ได้ระบุจุดบันทึกอื่นในการเรียก put_line จุดบันทึกเริ่มต้นจะเริ่มต้นเป็นค่าคงที่ c none


63) เหตุใด PLVtab จึงถือเป็นวิธีที่ง่ายที่สุดในการเข้าถึงตาราง PL/SQL

ตาราง PL/SQL นั้นใกล้เคียงที่สุดกับอาร์เรย์ใน PL/SQL และเพื่อที่จะเข้าถึงตารางนี้ คุณจะต้องประกาศประเภทตารางก่อน จากนั้นคุณจะต้องประกาศตาราง PL/SQL เอง แต่ด้วยการใช้ PLVtab คุณสามารถหลีกเลี่ยงการกำหนดประเภทตาราง PL/SQL ของคุณเอง และทำให้การเข้าถึงตารางข้อมูล PL/SQL เป็นเรื่องง่าย


64) พูดถึง PLVtab ที่ทำให้คุณสามารถทำอะไรเมื่อคุณแสดงเนื้อหาของตาราง PL/SQL?

PLVtab ช่วยให้คุณสามารถทำสิ่งต่อไปนี้ได้เมื่อคุณแสดงเนื้อหาของตาราง PL/SQL

  • แสดงหรือระงับส่วนหัวของตาราง
  • แสดงหรือซ่อนหมายเลขแถวสำหรับค่าตาราง
  • แสดงคำนำหน้าแต่ละแถวของตาราง

65) อธิบายว่าคุณจะบันทึกหรือวางข้อความของคุณในตารางได้อย่างไร?

หากต้องการบันทึกข้อความลงในตาราง คุณสามารถทำได้สองวิธี

  • โหลดข้อความแต่ละรายการพร้อมการโทรไปยัง add_text ขั้นตอนการ
  • โหลดชุดข้อความจากตารางฐานข้อมูลด้วย load_from_dbms ขั้นตอนการ

66) พูดถึงการใช้ฟังก์ชัน “ขั้นตอนโมดูล” ใน PL/SQL คืออะไร?

“ขั้นตอนของโมดูล” ช่วยให้สามารถแปลงบรรทัดโค้ดทั้งหมดในหน่วยโปรแกรมที่แน่นอนได้ด้วยการเรียกขั้นตอนเดียว มีสามอาร์กิวเมนต์สำหรับโมดูล

  • module_in
  • cor_in
  • Last_module_in

67) พูดถึงสิ่งที่ PLVcmt และ PLVrb ทำใน PL/SQL?

PL/Vision นำเสนอแพ็คเกจสองแพ็คเกจที่ช่วยคุณจัดการการประมวลผลธุรกรรมในแอปพลิเคชัน PL/SQL มันคือ PLVcmt และ PLVrb

  • PLVcmt: แพ็คเกจ PLVcmt ห่อหุ้มตรรกะและความซับซ้อนเพื่อจัดการกับการประมวลผลคอมมิท
  • PLVrb: มีอินเทอร์เฟซทางโปรแกรมสำหรับกิจกรรมการย้อนกลับใน PL/SQL

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)