![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
PL/SQLの変数の宣言の仕方について質問です!!
PL/SQLで変数と変数の使用について質問があります。
PL/SQL内部でUPDATEなどを分を作成する際の、その要素を使用部に変数で格納したいと思ってい
ストアドを作成していました。
例えば:
update tableA
set columnA = 'aaaaaa'
where
columnA not in ('c1','c2','c3')
and
columnA like 'c%';
というを
--仕様部--
afterset varchar2(100) :='aaaaaa'; --変換したい値
nochg_before varchar2(100) := 'C1'',''C2'',''C3'; --特定で変換してはいけないもの
beforeset varchar2(100) := 'c%'; --変換したい対象
--本体部--
update tableA
set columnA = afterset
where
columnA not in (nochg_before)
and
columnA like beforeset;
で、作成して実行した際に、なぜか「特定で変換してはいけないもの」
も一緒に更新をかけていました。
おそらく、2番目の変数の宣言に問題があり、レコードが除外できなかったと思うのですが、
正しい書き方とはどうすればいいのでしょうか?
お力を貸してください。
お願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
変数としてINに指定しているnochg_beforeあくまで一つの値です。
意図しているような、c1でもc2でもc3でもない、にはならず
"c1","c2","c3"ではない、になってしまいます。
そういう意味でIN検索に変数を渡しても意図したような動きにすることは出来ません。
似たような事をするには、一時テーブルを作成する方法、SQLを動的に作成する方法などがありますが、本当にそこまで頑張る必要があるのでしょうか?
素直に、変数を3つ用意する方法が一番簡単ですが、もちろん変数の数は固定になります。
No.1
- 回答日時:
update文を組み立てる段階で nochg_before の値を確かめる。
> nochg_before varchar2(100) := 'C1'',''C2'',''C3'; --特定で変換してはいけないもの
カンマの前後はシングルクォートを2重にしているのに、文字列全体の囲みは大丈夫?
C1','C2','C3 になってない?
この回答への補足
変数を修正して、下記の通りにしました。
nochg_before varchar2(100) := '''C1'',''C2'',''C3''';
デバッカ上では、'C1','C2','C3'と表示されているのですが、
前件アップデートされました・・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
至急!尿検査前日にオナニーし...
-
EXCELで条件付き書式で空白セル...
-
甲状腺が腫れているが血液検査...
-
勃起する時って痛いんですか? ...
-
尿検査前日に自慰行為した時の...
-
値が入っているときだけ計算結...
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
MIN関数で空白セルを無視したい...
-
中出しをするとお腹が痛い・・・。
-
EXCELで式からグラフを描くには?
-
【Excelで「正弦波」のグラフを...
-
ある範囲のセルから任意の値を...
-
エクセルのグラフで、値0のとき...
-
リンク先のファイルを開かなく...
-
これって喉仏ですか? 私は女性...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報