sql >> Database teknologi >  >> RDS >> Oracle

ACCEPT-sætning i Oracle PL SQL

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.




  1. Unik begrænsning over flere tabeller

  2. Laravel 5:synkronisering af et ekstra felt via pivot

  3. Hvordan opdaterer man to tabeller i én erklæring?

  4. Sjovt med Djangos nye Postgres-funktioner