sql >> Databáze >  >> RDS >> Oracle

Příkaz ACCEPT v Oracle PL SQL

ACCEPT je příkaz klienta SQL*Plus a SQL Developer , nikoli příkaz PL/SQL. Nastavujete substituční proměnnou, kterou můžete použít v anonymním bloku s:

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

SET serveroutput on;

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

Běžnější by však bylo použití v SQL:

select '&lastname' from dual;

PL/SQL není navrženo pro interaktivní použití, ale není jasné, co budete skutečně dělat.

Zdá se, že SQL Developer (minimálně verze 4.1.3) nezvládá format úplně stejné jako SQL*Plus, což může být chyba. Pokud použijete ACCEPT, jak je ukázáno v otázce a výše uvedeném kódu, skript nevyvolá žádnou výzvu ani výstup; podokno protokolování zobrazuje 'závažnou' zprávu z Accept.java:341. Funguje to, pokud zadáte také výchozí:

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

Výchozí hodnota se v dialogovém okně výzvy nezobrazuje a vaše substituční proměnná bude tuto výchozí hodnotu obsahovat, pokud dialogové okno pouze potvrdíte – což je očekávané chování „pokud není dána odpověď“. Pokud nechcete výchozí nastavení, trochu se zaseknete - zadáním výchozí hodnoty null (s '' ) také obdrží stejnou závažnou zprávu, která může souviset.




  1. PHP - získat data z db do JSON

  2. Seznam specifikátorů formátu data MySQL

  3. Migrace vašeho projektu Django na Heroku

  4. V databázi jsou symboly jako  a tak dále, co dělat?