こんにちは。
test.sqlでバインド変数として使用されている"hensu"に対して、SELECT文の結果を代入したいと考えています。
そこで、DEFINEで下記のようにセットしてみようとしたのですが、"hensu"には"hensu_id"という文字として入ってしまうようです。
DECLARE
hensu_id number ;
BEGIN
select min(id) into hensu_id;
END;
/
DEFINE hensu =hensu_id
@c:\test.sql
初歩的な質問ですみませんが、宜しくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
column tmp new_value hensu
select 'atai' tmp from dual;
select * from dual where 'atai' = '&hensu';
No.2
- 回答日時:
>test.sqlでバインド変数として使用されている"hensu"に対して、SELECT文の結果を代入したいと考えています。
理解に間違いがあるので、その訂正から..
「DEFINE hensu =」で定義するのは、バインド変数でなく、ユーザ変数です。
SQL*PLUSのスクリプト上で、変数(&~)として記述した箇所を置き換えるものです。
本当に、test.sqlでバインド変数(hensu)が使われているのなら、
var hensu number;
begin
select min(id) into :hensu from ~;
end;
/
@c:\test.sql
で良いはずです。
そうでなくて、test.sqlで使われているのは、ユーザ変数(&hensu)ということなら
実現するのが、ちょっと難しい。
spool機能を利用して、小細工するとかしないと、うまくいかないと思います。
すみません。ご指摘のとおり私の勉強不足でした。
test.sqlで使われているのはユーザ変数の方です。
そうですか。。。と、すると簡単にはいかないわけですね?
まずはspool機能について勉強してみます。
ありがとうございました。m(_ _)m
No.1
- 回答日時:
バインド変数を参照するには、変数名の前にコロンを付けるはず。
DEFINE hensu = :hensu_id
でどうですか?
この回答への補足
回答ありがとうございます。
早速、変数名の前にコロンをつけて実行してみたところ、「PL/SQLプロシージャが正常に完了しました。」が表示された後、test.sqlが実行された際、このような↓エラーがでます。
SP2-0552: バインド変数"hensu_id"が宣言されていません。
結果、セットされた値は、":hensu_id"でした。
そこで、test.sql側に"variable hensu_id number;"を追加してみましたが、SP2-0552エラーはでなくなりましたが、セットされた値は同じでした。
END;
/
で区切った時点で、変数は無効になるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Oracle SQL update方法 2 2022/06/22 14:07
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
SQL Plusで項目名が最後まで表示されない?
Oracle
-
動的にSPOOLファイルのファイル名を生成したい
Oracle
-
SPOOLのファイル名
Oracle
-
-
4
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
5
INDEXの無効化
Oracle
-
6
oracle spool SJIS → UTF-8
Oracle
-
7
OracleのSQL*PLUSで、データが折り返されて見づらいのですが。。。
その他(データベース)
-
8
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
9
列番号による項目の取得について
SQL Server
-
10
データを削除しても表領域の使用率が減りません
Oracle
-
11
バインド変数について
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectの単純繰り返し
-
oracle シーケンスの欠番を確認...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
-
エラーを起こす方法
-
Accessで今日から5日後
-
ACCESSにおいてスキーマとは
-
テーブル名が可変の場合のクエ...
-
SELECT INTOで一度に複数の変数...
-
truncate tableを使って複数の...
-
timestampのデータはどのように...
-
テーブル定義書(Oracle) 【IX】...
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
既存データをINSERT文にして出...
-
SQLでつまづいてます。
-
次の時間帯の勝率の合計を求め...
-
ACCESSのVBAにてExcelに行...
-
こちらのテーブルにあってこち...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
selectの単純繰り返し
-
SELECT文の結果をDEFINEの値と...
-
SQL Server:UNIONで結合した結...
-
RANK関数で順位付けする方法
-
ストアドプロシージャが作成さ...
-
PL/SQLの初歩的な質問その2
-
SQL WHERE文のノットイコール...
-
SQLを完全にマスターする方法は...
-
SQLのIF文
-
oracle シーケンスの欠番を確認...
-
SELECT文発行後の結果をテキス...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessで今日から5日後
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
timestampのデータはどのように...
-
オラクルのUPDATEで複数テーブル
おすすめ情報