sql >> データベース >  >> RDS >> Oracle

ORACLE:PL / SQLでのCTE(共通表式)の使用

    まず、これはCTEとは何の関係もありません。この動作は、単純なselect * from tableでも同じです。 クエリ。違いは、T-SQLでは、クエリが暗黙カーソルに入り、呼び出し元に返されることです。 Management StudioからSPを実行する場合、これは便利です。結果セットは、クエリを直接実行したかのようにデータウィンドウに表示されます。しかし、これは実際には非標準の動作です。 Oracleには、「カーソルに向けられていないクエリの結果セットは変数に向けられなければならない」と言われる可能性のある、より標準的な動作があります。変数に向けられた場合、クエリは1行のみを返す必要があります。

    T-SQLの動作を複製するには、カーソルを明示的に宣言して返す必要があります。次に、呼び出し元のコードは、カーソルから結果セット全体をフェッチしますが、一度に1行ずつフェッチします。 SqlDeveloperまたはPL/SQL Developerが結果セットをデータ表示ウィンドウに転送するという便利さは得られませんが、すべてを手に入れることはできません。

    ただし、通常、IDEから呼び出されるだけのSPを作成することはないため、SQLServerの暗黙カーソルよりもOracleの明示カーソルを操作する方が簡単です。 「oraclereturnrefcursor to caller」をグーグルで検索するだけで、たくさんの優れた資料を入手できます。



    1. MySQL:Linuxサーバーの再起動時にmysqlディレクトリの所有権が「service_account」から「mysql」に変更されます

    2. エラー1049(42000):不明なデータベース'mydatabasename'

    3. PHP / MySQLの友達の友達?

    4. 英語以外の文字を保存する方法は?