2013-02-05 56 views
1

我已經嘗試了下面的代碼來打印每個或一些細節的基礎上,我從光標得到的價值,但我不能,任何人都可以幫助我嗎?如何從pl/sql光標打印值?

set serveroutput on 

declare 
d_id number; 
temp_tab VARRAY; 
cursor c1 is select * from(select d.department_ID,   `enter code here`d.department_name,count(d.department_name) cnt from employees e,departments d where e.department_id=d.department_id group by d.department_ID, d.department_name) where cnt>=5; 

begin 
open c1; 

for i in c1 
loop 
    select e.first_name,d.department_id,d.department_name into temp_tab from employees e,departments d where d.department_id=i.department_ID; 
end loop; 

close c1; 
end; 

回答

3

是的。如果你想打印螞蟻元素的值。然後選擇元素值到變量。

然後使用下面一個打印的元素值:

dbms_output.put_line('Variable value= ' || Variable_name); 

在你的代碼使用的是收集varaiable和取值爲珍藏。 然後打印對象元素:

dbms_output.put_line('First Name :'||object_name.first_name); 

如果使用在PLSQL.Then記錄變量使用以下方法:然後聲明然後記錄類型變量取入該變量然後顯示variable.column,

DECLARE 
    TYPE t_name IS RECORD(
    first_name employees.first_name%TYPE, 
    last_name employees.last_name%TYPE 
); 
    r_name t_name; -- name record 
    n_emp_id employees.employee_id%TYPE := 200; 
BEGIN 
    SELECT first_name, 
     last_name 
    INTO r_name 
    FROM employees 
    WHERE employee_id = n_emp_id; 
    -- print out the employee's name 
    DBMS_OUTPUT.PUT_LINE(r_name.first_name || ',' || r_name.last_name); 
END; 
+0

TYPE cust_dept IS RECORD (dept_id dept.department_id%type, dept_name dept.department_name%type, emp_name emp.first_name%type); 這是我保存數據的記錄。我對不對? –

+0

但仍然是編譯錯誤 –

+0

那麼你如何顯示數據 – user2001117

0

創建您的域(e.first_name,d.department_id,d.department_name)的Oracle對象這裏是鏈接:http://docs.oracle.com/cd/B19306_01/appdev.102/b14260/adobjint.htm

然後選擇您的查詢此對象。可以說對象名稱是my_object。然後打印對象元素。

dbms_output.put_line('First Name :'||my_object.first_name||' Department: '||my_object.department_id||' Department Name: ' || my_object.department_name); 

如果我理解你的問題,這應該做你所要求的。

+0

ya ya現在只能以這種方式進行!但仍然出現編譯錯誤!這是我的代碼:ORA-06550:第13行,第67列: PLS-00330:無效使用類型名稱或子類型名稱 ORA-06550:第13行,第124列: PL/SQL:ORA-00904::無效標識符 ORA-06550:第13行,第8列: PL/SQL:忽略SQL語句 06550. 00000 - 「行%s,列%s:\ n%s」 *原因:通常是PL/SQL編譯錯誤。 *操作: –