1

データベースからデータを取得しようとしていますが、コードにエラーが見つかりません:

declare
  cursor c1 is select * from(select d.department_ID, d.department_name,count(d.department_name) cnt from emp e,dept d where e.department_id=d.department_id group by d.department_ID, d.department_name) where cnt>=5;
  TYPE cust_dept IS RECORD(dept_id dept.department_id%type,dept_name dept.department_name%type,emp_name emp.first_name%type);

begin 

FOR i IN c1
loop

    select * into cust_dept  from emp e, dept d where d.department_ID=i.department_ID;

 DBMS_OUTPUT.put_line('Department_id :'||i.department_id||' '||'department_name :'||i.department_name);--||' '||'customer_name :'||cust_dept.emp_name);
    --FETCH customer_cur into customer_rec;
    --EXIT WHEN customer_cur%notfound;
    --DBMS_OUTPUT.put_line(i.department_id);

 END LOOP;

end;
/

エラーは次のとおりです。

ORA-06550: line 10, column 23:
PLS-00321: expression 'CUST_DEPT' is inappropriate as the left hand side of an assignment statement
ORA-06550: line 10, column 34:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 10, column 9:
PL/SQL: SQL Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
4

2 に答える 2

1

コードにいくつかの問題があります

  1. cust_dept はタイプであり、タイプ cust_dept の変数を宣言するための変数ではありません。次のようなものが必要です。 cust_dept_var cust_dept;
  2. cust_dept の変数を定義しても問題は解決しません。1select * from emp e, dept d where d.department_ID = i.department_IDつの回答が返されない可能性があるためです。2 つ以上の結果が返されるか、結果が返されない可能性があるため、基本的に cust_dept の配列変数を定義する必要があります。
  3. 必要なものを得るには、以下のコードを使用できます。レコード タイプなどを定義する必要はありません。

    begin
    for x in
    (select d.department_ID, d.department_name from emp e, dept d where e.department_id = d.department_id group by d.department_ID, d.department_name having count(d.department_name) >= 5) loop

    for y in (select e.department_id, d.department_name from emp e, dept d where d.department_ID = x.department_ID) loop DBMS_OUTPUT.put_line('Department_id :' || y.department_id || ' ' || 'department_name :' || y.department_name);
    end loop;
    end loop;
    end;

  4. 幸運を ;)
于 2013-02-05T13:29:30.210 に答える
0

タイプの変数を宣言cust_deptし、それを選択する必要があります。

于 2013-02-05T07:23:59.287 に答える