ACCEPT er en SQL*Plus og SQL Developer-klientkommando a> , ikke en PL/SQL-kommando. Du indstiller en substitutionsvariabel, som du kan bruge i en anonym blok med:
ACCEPT lastname CHAR FORMAT 'A20' PROMPT 'Enter employee lastname: '
SET serveroutput on;
BEGIN
DBMS_OUTPUT.PUT_LINE('&lastname');
END;
/
Det ville dog være mere almindeligt at bruge det i SQL:
select '&lastname' from dual;
PL/SQL er ikke designet til at blive brugt interaktivt, men det er ikke klart, hvad du egentlig vil lave.
SQL Developer (version 4.1.3, i det mindste) ser ikke ud til at håndtere format
helt det samme som SQL*Plus, som kan være en fejl. Hvis du bruger ACCEPT som vist i spørgsmålet og koden ovenfor, er der ingen prompt eller output fra scriptet; logningsruden viser en 'alvorlig' besked fra Accept.java:341. Det virker, hvis du også angiver en standard:
ACCEPT lastname CHAR FORMAT 'A20' DEFAULT 'dummy' PROMPT 'Enter employee lastname: '
Standardværdien vises ikke i promptdialogboksen, og din substitutionsvariabel vil indeholde denne standardværdi, hvis du bare OK dialogboksen - hvilket er den forventede adfærd "hvis der ikke gives et svar". Hvis du ikke vil have en standard, sidder du dog lidt fast - ved at angive en nul-standard (med ''
) får også den samme alvorlige besked, som kan være relateret.