さて、私たちはこのように、テーブルゲームを持っているとしましょう:配列の内容がテーブル内にあるかどうかをチェックする方法は?
CREATE TABLE games(
game_name NVARCHAR2(20),
owner NVARCHAR2(30),
purchase DATE
);
そして、このような「アレイ」:
CREATE TYPE array_ch1 IS OBJECT (game_name NVARCHAR2(20),purchase DATE);
/
CREATE TYPE array_ch2 IS TABLE OF array_ch1;
/
そして、そのアレイ上GTA」のような値が存在することになります'、' 2019 '、'パックマン '、' 2000 '
私は、与えられた日付にすべてのゲームを持つすべての所有者を返すプロシージャを作成しようとしていました。
私はすでに(それ以外の場合は、その所有者がゲームを持っており、右の購入日であれば1 0)与えられたワンオーナーと型の変数「array_ch1」は1または0を返すことを、「checkGame」と呼ばれる機能を持っています。
私の元のアイデアは、テーブルゲームと配列を同時に繰り返し、特定のユーザーが実際に正しい日付のゲームを実際に持っていたかどうかを確認することでしたが、結果を返す方法はわかりません。基準に合致する複数の所有者が存在する場合の対処法もありません。
CREATE OR REPLACE PROCEDURE findOwners(game_date IN array_ch2, good_owners OUT SYS_REFCURSOR)
IS BEGIN
FOR v_game in SELECT * FROM games LOOP
FOR cond in 1..game_date.count LOOP
IF(checkGame(cond, v_game.owner) = 0) THEN
EXIT;
END IF;
END;
END;
END;
/
データを一度に2か所に配置する目的は何ですか? –
アイデアは、ユーザーが(別のソフトウェアを通じて)自分の基準に合ったゲームを探していたということです@BobJarvis、別の方法でこの種の入力を受け取るべきでしょうか? – Safirah
私の主張は、あなたのデータを2つの場所に持つことは悪い考えです。データをデータベースに保存し、作業に取り入れ、完了したら元に戻します。 –