No.2ベストアンサー
- 回答日時:
お返事が遅くなって申し訳ございませんでした。
ちょっと仕事でバタバタしてたもので・・・。
で、回答なのですが・・・Update文ならわかるのですが、SELECT文はわかりません(>_<)
ごめんなさい~。
とりあえず、Update文の場合です。(Ora8.1.7にて確認。)
--------------------------------------------------
DECLARE
wCount NUMBER(3);
wLoop NUMBER(3);
CURSOR CSR1 IS
SELECT Count(*) As 件数
FROM テーブル名1;
BEGIN
OPEN CSR1;
FETCH CSR1 INTO wCount;
CLOSE CSR1;
FOR wLoop IN 1..wCount LOOP
UPDATE テーブル名2 SET フィールド名=値;
END LOOP;
COMMIT;
END;
/
--------------------------------------------------
単純にUpdate文のところをSelectにしてみると、エラーになっちゃうんですよね・・・。
うーん・・・。
この回答への補足
もしかしたら、"DECLARE~bigin~end"、この文を打つ権限が無いかもしれないです~。
(今、上の人に確認してもらってます)
文だけ読むと、
内容的には、こんな感じの事がしたい!って感じです。
No.3
- 回答日時:
たびたびすみません。
ちょっと思いつきました。
-------------------------------------------------------------------
set echo off
set sqlprompt "--[SPOOLING...]> "
set heading off
set feed off
set timing off
set pages 0
spool temp.sql
SELECT
'SELECT 1a,1b,1c FROM TABLE1 WHERE 1a ='||count(TblB.TABLEのキー)||';'
||chr(10)||
'SELECT 2a,2b,2c FROM TABLE2 WHERE 2a='||count(TblB.TABLEのキー)||';'
FROM TABLE TblA, TABLE TblB
WHERE TblA.TABLEのキー>=TblB.TABLEのキー
GROUP BY TblA.TABLEのキー;
spool off
set heading on
set feed on
set timing on
set pages 1000
SET SQLPROMPT "SQL> "
set echo on
@temp
-------------------------------------------------------------------
spoolファイルを使ってみました。
一度、「temp.sql」というファイルにSQL文を書き出して、「@temp」でそのSQL文を実行しています。
SQL文を見て見たければ、「temp.sql」を自分でわかりやすいファイル名に変更して
spool c:\test.sql
(省略)
@c:\test.sql
とやってみてください。
連番を取得するのために、SQL文が複雑になってます。
単純に
SELECT
'SELECT 1a,1b,1c FROM TABLE1 WHERE 1a ='||rownum||';'
||chr(10)||
'SELECT 2a,2b,2c FROM TABLE2 WHERE 2a='||rownum||';'
FROM TABLE;
でもOKなような気もしますが・・・rownumがどんな場合でもきちんと1から連番になってくれる
のかはっきりしなかったので、今回は見送りました。
不明な点がありましたら書きこんでください。
(またお返事が遅くなるかもしれませんが・・・。)
No.1
- 回答日時:
補足をお願いします。
Oracleのバージョンはなんですか?
プログラムはどこに書いて、実行するのには何のツールを使いますか?
(SQLPlus?ストアドプロシージャ?トリガー?VB?Access?)
具体的に決まっていないのであれば、どういう状況で、どうしてその
処理を実行したいのか、また何度も繰り返し行うのか・・・等の詳細を
教えてください。
> ループに入れ込みたいSQLは以下のような感じです。
> 1.select 1a,1b from TABLE1 where 条件;
> 2.select 2a,2b from TABLE2 where 条件;
ということは、データの件数分SELECT文を発行する = 条件にあう
データを表示するだけ ですか??更新等ではなく?
また、この意味は、1件目で「select 1a,1b from・・・」、2件目では
「select 2a,2b from・・・」、3件目「select 3a,3b from・・・」
ということでしょうか?
この回答への補足
補足します。
oracle10gで、SqlPlusを使っています。
やりたいことはselect文発行のみです。(それ以上の権限が無いもので...)
カウントされたデータの数が9であれば、
1.と2.の両方とも9回ループしたいという意味です。
言葉不足のヤヤコシイ表現になっていまい、すみません。_(._.)_
また説明不足な点がありましたら、補足させていただきます。
よろしくおねがいします。
やりたい事のイメージとして、
select count(*) from TABLE;
COUNT(*)
----------
5
↓
このカウントされた5を元に、
1から5までをループを回す
select 1a,1b,1c from TABLE1 where 1a = 1~5;
select 2a,2b,2c from TABLE2 where 2a = 1~5;
しかし、
上のselect文を1~5までループして後に、
下のselect文がスタートするのではなく。(図1)
(図1)
1a | 1b | 1c ←上のセレクト文
---------------
1
1a | 1b | 1c
---------------
2
・
・
・
2a | 2b | 2c ←下のセレクト文
---------------
1
2a | 2b | 2c
---------------
2
・
・
・
上のselect文の1が発行されたら、下も1を発行し、
つづいて2,3,…という風に交互に表示したいのです。(図2)
(図2)
1a | 1b | 1c ←上のセレクト文
---------------
1
2a | 2b | 2c ←下のセレクト文
---------------
1
1a | 1b | 1c ←上
---------------
2
2a | 2b | 2c ←下
---------------
2
・
・
・
webなどを探しても、同じ例が見つけられなかったので、
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
複数条件に当てはまる行の抽出...
-
テーブル結合について、下記SQL...
-
SQLPLUSにて演算子を使う方法と...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
実績累計の求め方と意味を教え...
-
MERGE文を単体テーブルに対して...
-
DataGridViewの、選択されてい...
-
MySQLで MAX()とGROUP BYを使う...
-
select句副問い合わせ 値の個...
-
ファイル書込みで一行もしくは...
-
チェックボックスの項目をDBにi...
-
アクセスで「空き番」の確認
-
Access でレコードセレクタが押...
-
SQLの集計で「全て」の合計も表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
sqlのwhereで指定した条件の前...
-
あるカラムのMAX値+1をINSERTし...
-
外部結合に条件をつけたい
-
ループの仕方
-
Oracle8iでSQL文の引数について
-
テーブル結合について、下記SQL...
-
sumやcount関数について
-
PL/SQLの基礎的な質問ですが・・
-
SQLPLUSにて演算子を使う方法と...
-
複数条件に当てはまる行の抽出...
-
distinct句を使わずレコード総...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
おすすめ情報