私はOracleを初めて使用しており、PL/SQLではなくOracle SQLでforループを使用することについてはわかりません。forループのOracle SQL
私はクエリで+1を増やして文を実行する必要がありました。 SQLでforループを使用することは可能ですか?
私はOracleを初めて使用しており、PL/SQLではなくOracle SQLでforループを使用することについてはわかりません。forループのOracle SQL
私はクエリで+1を増やして文を実行する必要がありました。 SQLでforループを使用することは可能ですか?
私の友人はかなり混乱しています。 LOOPSはSQLにはなく、PL/SQLでのみ使用できます。ここでは、既存のOracleテーブルに基づいて、いくつかの例だ - コピー/結果を見るために貼り付けます。
-- Numeric FOR loop --
set serveroutput on -->> do not use in TOAD --
DECLARE
k NUMBER:= 0;
BEGIN
FOR i IN 1..10 LOOP
k:= k+1;
dbms_output.put_line(i||' '||k);
END LOOP;
END;
/
-- Cursor FOR loop --
set serveroutput on
DECLARE
CURSOR c1 IS SELECT * FROM scott.emp;
i NUMBER:= 0;
BEGIN
FOR e_rec IN c1 LOOP
i:= i+1;
dbms_output.put_line(i||chr(9)||e_rec.empno||chr(9)||e_rec.ename);
END LOOP;
END;
/
-- SQL example to generate 10 rows --
SELECT 1 + LEVEL-1 idx
FROM dual
CONNECT BY LEVEL <= 10
/
あなたは確か句 WITH を使用していることを行うことができる、または分析関数のOracle SQLで利用できるを使用します。
通常の手続き型言語のように、サイクル的に何かを得ることができます。どちらの方法も通常のSQLに比べてかなり強力です。
http://www.dba-oracle.com/t_with_clause.htm
これは、しかし、いくつかの努力が必要です。具体的な例を投稿することを恐れないでください。
単純な擬似表を使用すると、DUALも役立ちます。
私の質問を編集しました – user964147
の例を見てください。申し訳ありませんが、それを見ることはできません。 「賢明な」人たちは、おそらく彼らがそれを理解しなかったので、おそらく、早すぎて質問を閉じた。 – MarianP
別の質問を投稿できますか? 「Oracle SQL分析関数を使用してこれを行う方法」としてフレーム化しますか?彼らはそれを閉じないだろう。 – MarianP
セット操作に「forループ」はありません。 「本当の質問」(入力/出力/現在の試行を必ず表示してください)を尋ね、タイトルにそれが反映されていることを確認してください。 PL/SQL *でない場合は 'plsql'タグを削除してください。 –
pstによると、 "forループ"はありませんが、同じ効果を達成する方法があります。あなたは*ステートメント*を実行することによって何を意味するのですか?また、どの番号を1ずつ増やす必要がありますか? –
@ A.B.Cade 'i'と言うカスタム変数を作成したいのですが、 '5'に達するまでそれを増やしたいのですが、この変数を使用して文字列に追加したいのですが。 SQLで – user964147