ACCEPT adalah perintah klien SQL*Plus dan Pengembang SQL , bukan perintah PL/SQL. Anda sedang menyetel variabel substitusi, yang dapat Anda gunakan di blok anonim dengan:
ACCEPT lastname CHAR FORMAT 'A20' PROMPT 'Enter employee lastname: '
SET serveroutput on;
BEGIN
DBMS_OUTPUT.PUT_LINE('&lastname');
END;
/
Akan lebih umum untuk menggunakannya dalam SQL:
select '&lastname' from dual;
PL/SQL tidak dirancang untuk digunakan secara interaktif, tetapi tidak jelas apa yang sebenarnya akan Anda lakukan.
Pengembang SQL (setidaknya versi 4.1.3) tampaknya tidak menangani format
sama seperti SQL*Plus, yang mungkin merupakan bug. Jika Anda menggunakan ACCEPT seperti yang ditunjukkan pada pertanyaan dan kode di atas tidak ada prompt atau output dari skrip; panel logging menunjukkan pesan 'parah' dari Accept.java:341. Ini berfungsi jika Anda juga menyediakan default:
ACCEPT lastname CHAR FORMAT 'A20' DEFAULT 'dummy' PROMPT 'Enter employee lastname: '
Nilai default tidak ditampilkan di kotak dialog prompt, dan variabel substitusi Anda akan berisi nilai default itu jika Anda hanya meng-OK dialog - yang merupakan perilaku yang diharapkan "jika balasan tidak diberikan". Jika Anda tidak menginginkan default, Anda agak buntu - menentukan default nol (dengan ''
) juga mendapatkan pesan serius yang sama, yang mungkin terkait.