ACCEPT to polecenie klienta SQL*Plus i SQL Developer , a nie polecenie PL/SQL. Ustawiasz zmienną podstawienia, której możesz użyć w anonimowym bloku z:
ACCEPT lastname CHAR FORMAT 'A20' PROMPT 'Enter employee lastname: '
SET serveroutput on;
BEGIN
DBMS_OUTPUT.PUT_LINE('&lastname');
END;
/
Częściej byłoby jednak używać go w SQL:
select '&lastname' from dual;
PL/SQL nie jest przeznaczony do interaktywnego używania, ale nie jest jasne, co naprawdę będziesz robić.
SQL Developer (przynajmniej wersja 4.1.3) nie obsługuje format
zupełnie tak samo jak SQL*Plus, co może być błędem. Jeśli użyjesz ACCEPT, jak pokazano w pytaniu i powyższym kodzie, skrypt nie pojawi się ani komunikat; okienko rejestrowania pokazuje „poważną” wiadomość z Accept.java:341. Działa, jeśli podasz również wartość domyślną:
ACCEPT lastname CHAR FORMAT 'A20' DEFAULT 'dummy' PROMPT 'Enter employee lastname: '
Wartość domyślna nie jest pokazywana w oknie dialogowym, a zmienna podstawiania będzie zawierała tę wartość domyślną, jeśli po prostu klikniesz okno dialogowe - co jest oczekiwanym zachowaniem "jeśli nie zostanie udzielona odpowiedź". Jeśli nie chcesz wartości domyślnej, trochę utkniesz - określając wartość domyślną zerową (za pomocą ''
) również otrzymuje ten sam poważny komunikat, który może być powiązany.