sql >> Databasteknik >  >> RDS >> Oracle

ACCEPT-sats i Oracle PL SQL

ACCEPT är ett SQL*Plus och SQL Developer-klientkommando a> , inte ett PL/SQL-kommando. Du ställer in en ersättningsvariabel som du kan använda i ett anonymt block med:

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

SET serveroutput on;

BEGIN
  DBMS_OUTPUT.PUT_LINE('&lastname');  
END;
/

Det skulle dock vara vanligare att använda det i SQL:

select '&lastname' from dual;

PL/SQL är inte designat för att användas interaktivt, men det är inte klart vad du egentligen kommer att göra.

SQL Developer (version 4.1.3, åtminstone) verkar inte hantera format ganska samma som SQL*Plus, som kan vara en bugg. Om du använder ACCEPT som visas i frågan och koden ovan finns ingen prompt eller utdata från skriptet; loggningsrutan visar ett "svårt" meddelande från Accept.java:341. Det fungerar om du också anger en standard:

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

Standardvärdet visas inte i promptdialogrutan, och din ersättningsvariabel kommer att innehålla det standardvärdet om du bara OK i dialogrutan - vilket är det förväntade beteendet "om ett svar inte ges". Om du inte vill ha en standard har du dock lite fastnat - ange en noll standard (med '' ) får också samma allvarliga meddelande, som kan vara relaterat.




  1. Att köra flera satser med Postgresql via SQLAlchemy kvarstår inte

  2. Vad är betydelsen av 1/1/1753 i SQL Server?

  3. Hitta primärnyckel från en tabell i kommaseparerad lista

  4. flera frågor samma tabell men i olika kolumner mysql