PL/SQL koleksiyonlarıyla ilgili aşağıda verilen şıklardan hangisi doğrudur?
CDoğru cevap
⚠️ Cevap anahtarı tartışmalı: VARRAY'de ilk eleman indisi 1'dir; A şıkkı da doğru. Anahtar C (o da doğru), birden fazla doğru şık var.
Kaynak: https://lolonolo.com/2025/11/15/pl-sql-veritabani-programlama-2024-2025-final-sorulari/
PL SQL Veritabanı Programlama 2024-2025 Final Soruları
DECLARE
CURSOR krsr_job ( p_min_salary NUMBER )
RETURN jobs%ROWTYPE
IS
SELECT *
FROM jobs
WHERE min_salary > p_min_salary;
rec jobs%ROWTYPE;
BEGIN
...
EXIT WHEN krsr_job%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(rec.job_id || ' : ' || rec.job_title);
END LOOP;
CLOSE krsr_job;
END;
DECLARE
a NUMBER := 1;
b NUMBER := 2;
c NUMBER := 4;
BEGIN
b := -2;
DBMS_OUTPUT.PUT_LINE(2 * a - b / c);
END;
CREATE OR REPLACE TRIGGER trg_jobs
BEFORE INSERT OR DELETE ON jobs
FOR EACH ROW
BEGIN
NULL;
END;
ALTER SESSION SET plsql_implicit_conversion_bool = TRUE;
DECLARE
a BOOLEAN := NULL;
b BOOLEAN := FALSE;
c BOOLEAN;
BEGIN
c := TRUE AND NULL OR NOT(NULL);
DBMS_OUTPUT.PUT_LINE('#' || c || '#');
END;
PL/SQL üç değerli mantık kullanır. TRUE AND NULL = NULL, NOT(NULL) = NULL ve NULL OR NULL = NULL olduğundan c NULL olur. NULL bir değer birleştirme (||) işleminde boş dize gibi davrandığı için çıktı ## olur.
BEGIN
DBMS_OUTPUT.PUT_LINE(5 / 0);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Sıfıra bölme hatası!');
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('Uyumsuz değer!');
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(5 / 0);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Sıfıra bölme hatası!');
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('Uyumsuz değer!');
END;
DECLARE
a NUMBER (3, -1) := 10.55;
b NUMBER (2, -1) := 11.55;
toplam PLS_INTEGER := a + b;
BEGIN
DBMS_OUTPUT.PUT_LINE (toplam);
END;
DECLARE
...
BEGIN
SELECT * INTO rec_regions FROM regions
WHERE region_id = 4;
DBMS_OUTPUT.PUT_LINE('Bölge: ' || rec_
regions.region_name);
END;
BEGIN
<< dis_dongu >> FOR i IN REVERSE 1..2
LOOP
<< ic_dongu >> FOR j IN 5..6 LOOP
DBMS_OUTPUT.PUT_LINE(i || ',
' || j);
EXIT dis_dongu WHEN i + j >=
6;
END LOOP ic_dongu;
END LOOP dis_dongu;
END;
Cevap anahtarı kaynakta yok.
BEGIN
CASE
WHEN FALSE AND NULL THEN
DBMS_OUTPUT.PUT_LINE('$');
WHEN NULL AND NULL THEN
DBMS_OUTPUT.PUT_LINE('%');
WHEN NULL OR NULL THEN
DBMS_OUTPUT.PUT_LINE('&');
WHEN NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('!');
ELSE
DBMS_OUTPUT.PUT_LINE('#');
END CASE;
END;