plsqlで最初に行を取得する方法を教えてください

PL/SQLでは、次の方法で最初のデータを取得できます。

  1. SELECT INTO句を使って、クエリ結果を変数に格納する:
DECLARE
  first_data <table_name>%ROWTYPE;
BEGIN
  SELECT *
  INTO first_data
  FROM <table_name>
  WHERE <condition>
  ORDER BY <column_name>
  FETCH FIRST 1 ROW ONLY;
  
  -- 对第一条数据进行操作
END;
  1. カーソル(CURSOR)を使用し、OPEN、FETCH、CLOSE のステートメントで最初のデータをフェッチします。
DECLARE
  CURSOR c_data IS
    SELECT *
    FROM <table_name>
    WHERE <condition>
    ORDER BY <column_name>;

  first_data <table_name>%ROWTYPE;
BEGIN
  OPEN c_data;
  FETCH c_data INTO first_data;
  
  -- 对第一条数据进行操作
  
  CLOSE c_data;
END;

カーソルを使用する場合、カーソルを開く(OPEN)→FETCH文で最初のデータを取り出す→終了後、閉じる(CLOSE)の順序を守る必要がありますのでご注意ください。

bannerAds