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

OraclePLSQLのACCEPTステートメント

    ACCEPTは、 SQL*PlusおよびSQLDeveloperクライアントコマンド 、PL/SQLコマンドではありません。 使用できる置換変数を設定しています 匿名ブロック内:

    ACCEPT lastname CHAR FORMAT 'A20' PROMPT 'Enter employee lastname:  '
    
    SET serveroutput on;
    
    BEGIN
      DBMS_OUTPUT.PUT_LINE('&lastname');  
    END;
    /
    

    ただし、SQLで使用する方が一般的です:

    select '&lastname' from dual;
    

    PL / SQLはインタラクティブに使用するようには設計されていませんが、実際に何をするかは明確ではありません。

    SQL Developer(少なくともバージョン4.1.3)はformatを処理していないようです SQL * Plusとまったく同じですが、バグの可能性があります。質問と上記のコードに示されているようにACCEPTを使用する場合、スクリプトからのプロンプトや出力はありません。ロギングペインには、Accept.java:341からの「重大な」メッセージが表示されます。デフォルトも指定すると機能します:

    ACCEPT lastname CHAR FORMAT 'A20' DEFAULT 'dummy' PROMPT 'Enter employee lastname:  '
    

    デフォルト値はプロンプトダイアログボックスに表示されません。ダイアログをOKしただけで、置換変数にそのデフォルト値が含まれます。これは、「応答がない場合」に予想される動作です。デフォルトが必要ない場合は、少し行き詰まっています-nullのデフォルトを指定します(''を使用) )も同じ重大なメッセージを受け取りますが、これは関連している可能性があります。




    1. SQL SERVER –トリック–異なるWindowsアカウントでSSMSを実行する

    2. MySQL移動平均計算

    3. PL / SQL開発に最適なツールボックスは何ですか?

    4. PHPとWP:DBからのエラーがスローされたときにcatchが機能しないようにしてください