2017-07-17 4 views
0
insert into BOOK values(&bid, '&title', '&pub', &year); 

Ich erhalte eine Fehlermeldung, wenn ich die Abfrage in Oracle 10g laufen, ist dies die Fehlermeldung Ich erhalte:SQL in Oracle 10g

ORA-01008: nicht alle Variablen gebunden

+2

eine Variable hat keinen gültigen Ersatzwert – Frank

+0

Schon vor diesem Fehler haben Sie wahrscheinlich '' title' 'und '& pub' Eingangsvariablen gemeint. Wenn Sie sie in einfache Anführungszeichen setzen, werden sie nicht mehr als Variablen behandelt. Sie brauchen die Anführungszeichen nicht; Wenn Sie Zeichenfolgen für diese beiden Variablen eingeben, werden sie als Zeichenfolgen in Ihre Tabelle eingefügt. Dann: Haben Sie Ihren Variablen tatsächlich irgendwelche Werte gegeben? Wenn Sie nicht wissen, wie Sie das tun sollen, müssen Sie uns mitteilen, welches Front-End Sie verwenden, da sie alle verschiedene Möglichkeiten haben, Variablen Variablen zuzuweisen. Das heißt: Verwenden Sie SQL \ * Plus, SQL Developer, Toad, ...? – mathguy

+0

Fügen Sie die Zeile "SET DEFINE OFF" hinzu, bevor Sie Ihr SQL ausführen. Andernfalls werden Sie nach & title und & pub gefragt, die Konstanten und keine Variablen sind. –

Antwort

0

Standardmäßig behandelt SQL Plus '&' als ein Sonderzeichen, das eine Substitutionszeichenfolge beginnt. Wenn Sie diese Abfrage ausführen, berücksichtigt oracle Gebot, Titel, Pub, Jahr als Bind-Variablen und fordert Sie auf, die Werte für diese Variablen einzugeben. Geben Sie die Werte für sie ein, es ersetzt die Werte und fügt den Datensatz in die Datenbank ein.

Wenn Sie das Standardverhalten machen möchten, können Sie den folgenden Befehl verwenden

SQL> set define off 

Sobald Sie auf das Standardverhalten aktivieren möchten verwenden Sie diesen Befehl

SQL> set define on 

hoffe, das hilft!