1

カーソルから取得した値に基づいて各詳細または一部の詳細を印刷するために次のコードを試しましたが、できません。誰か助けてもらえますか?

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;
4

2 に答える 2

3

はい。Ant 要素の値を出力する場合は、要素の値を変数に選択します。

次に、以下を使用して要素の値を出力します。

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

あなたのコードでは、コレクション変数を使用し、値をコレクションにフェッチしています。次に、オブジェクト要素を印刷します。

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

PLSQL でレコード変数を使用している場合は、次の方法を使用します。次に、レコード型変数を宣言し、その変数にフェッチしてから、変数.列を表示します。

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;
于 2013-02-05T06:17:44.227 に答える
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);

私があなたの質問を理解していれば、これはあなたが求めることをするはずです。

于 2013-02-05T06:00:37.720 に答える