-1

ここで提供されているこのコードを使用しようとすると、実行しようとすると次のエラーが返されます。

    PLS-00103: 次のいずれかを想定しているときに、記号"IS"が検出されました:

    定数 例外テーブル long double ref char 時間 タイムスタンプ 間隔
    日付 2 進国別文字 nchar

    1.宣言する
    2.従業員%ROWTYPE;
    3. tbl_emp IS TABLE OF emp;
    4. v_user_type 従業員.user_type%TYPE;
    5. 開始

コードは次のとおりです。

DECLARE
  emp employee%ROWTYPE; 
  tbl_emp IS TABLE OF emp;
  v_user_type employee.user_type%TYPE;
BEGIN
  SELECT user_type
  INTO v_user_type
  FROM Employee 
  WHERE upper(username) = v('APP_USER');
  IF v_user_type = 1 
  THEN
    SELECT * BULK COLLECT INTO tbl_emp
    FROM employee;
  ELSE
    SELECT * BULK COLLECT INTO tbl_emp
    FROM employee;
    WHERE upper(username) = v('APP_USER');
  END IF;
END;
/
4

1 に答える 1

1

最初に型を宣言し、次にその型の変数を宣言する必要があります。

例えば

declare 
  type tbl_emp_type IS TABLE OF employee%ROWTYPE; 
  tbl_emp tbl_emp_type; 
begin

  select * 
  bulk collect into tbl_emp
  from employee;

end;

SQL フィドル

于 2013-04-24T10:36:47.577 に答える