[解決済み] PL/SQLで結果がNULLの場合、どのように変数に選択するのですか?
2023-05-27 06:26:27
質問
クエリが何も返さないかもしれないことを考慮して、変数に選択するために一度だけクエリを実行する方法はありますか、その場合、変数はnullであるべきです。
現在、私は
select into
クエリが何も返さない場合、PL/SQLは変数が設定されないと文句を言うからです。最初のクエリはカウントを行い、カウントがゼロの場合、変数をヌルに設定し、カウントが1の場合、変数に選択することで、クエリを2回実行することができるだけです。
というわけで、コードは以下のようになります。
v_column my_table.column%TYPE;
v_counter number;
select count(column) into v_counter from my_table where ...;
if (v_counter = 0) then
v_column := null;
elsif (v_counter = 1) then
select column into v_column from my_table where ...;
end if;
ありがとうございます。
更新しました。
例外を使わなかった理由は、以下のロジックがまだ残っているからです。
v_column
を割り当てた後、次のようなロジックがあり、私は
goto
を使わないと、次のコードに飛べません。私は、ちょっと躊躇してしまうのですが
goto
の行はちょっと躊躇します。
どのように解決するのですか?
単純に
NO_DATA_FOUND
例外を処理するには、変数に
NULL
. この方法では、1つのクエリのみが必要となります。
v_column my_table.column%TYPE;
BEGIN
BEGIN
select column into v_column from my_table where ...;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_column := NULL;
END;
... use v_column here
END;
関連
-
[解決済み】snosqlステートメントで予期しないselectエラーが発生し続ける
-
[解決済み] How to make the first option of <select> selected with jQuery
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] MySQL あるテーブルからすべてのカラムを選択し、別のテーブルからいくつかのカラムを選択する
-
[解決済み] break文はswitch/selectから抜け出すのか?
-
[解決済み] Removing rounded corners from a <select> element in Chrome/Webkit
-
[解決済み] MySQLのDECLAREでSELECT INTO変数を使用すると構文エラーが発生する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン