Maddesindeki bir değişkenin karşılaştırılması Bu beni çıldırtıyor. Bir sütunun ve bir değişkenin basit bir karşılaştırmasını yapmak istiyorum ama sadece işe yaramıyor. Aşağıdaki satır her zaman tüm tuplları sayarken, sadece buradaki şartlara göre şart koşulanlara ihtiyacım var.PLSQL Procudure (Oracle)
SELECT count(*) INTO cnt from class where class.fid = fid;
Sooooo basit görünüyor ama saatlerce üzerinde çalışıyorum. Komple sql proc değeri
Büyük kafa karıştırıcı şey, eğer fid'i kodlanmış bir ID ile değiştirirsek (105 gibi) doğru bir cevap verir), ama fid'i kullandığım zaman artık işe yaramıyor ve geri dönüyor. tüm sınıfların sayısı. Herhangi bir nedenle, her zaman class.fid = fid. >, < veya <> tuşlarını kullandığımda, 0 sayımı geri döndürülür!
create or replace PROCEDURE pro_report2
AS
CURSOR c_dept IS select deptid, dname from department;
TYPE cur_typ IS REF CURSOR;
c1 cur_typ;
query_str1 VARCHAR2(200);
fid faculty.fid%type := 102;
fname faculty.fname%type;
cnt NUMBER;
BEGIN
FOR dept_row in c_dept LOOP
DBMS_OUTPUT.PUT_LINE('Dept.Name: ' || dept_row.dname);
DBMS_OUTPUT.PUT_LINE('Faculty Name' || chr(9)|| chr(9) || '0 Class' || chr(9) || chr(9) || '1 Class' || chr(9) || chr(9) || '2 Classes' || chr(9) || '>2 Classes');
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------------');
--find all faculty in this department
query_str1 := 'select fid, fname from faculty where faculty.deptid = ' || to_char(dept_row.deptid);
open c1 for query_str1;
LOOP
FETCH c1 into fid, fname;
exit when c1%notfound;
DBMS_OUTPUT.PUT_LINE(fname);
SELECT count(*) INTO cnt from class where class.fid = fid;
DBMS_OUTPUT.PUT_LINE(to_char(cnt) || ' ' || to_char(fid));
END LOOP;
-- Spaces between departments
DBMS_OUTPUT.PUT_LINE(chr(10));
DBMS_OUTPUT.PUT_LINE(chr(10));
END LOOP;
END;
Teşekkür
teşekkür ederiz (diğer uygun değiştirmeler Artı.)! Bu korkunç bir hataydı ve bana çok fazla iş verdi. Şuan çalışıyor! AMAN TANRIM! – user1710120
@ user1710120 Sorunu çözdüğünüze sevindim. İsterseniz bu cevabı doğru olarak işaretleyebilirsiniz. – Wolf