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

我得到一个错误,当我运行在Oracle 10g中的查询,这是错误消息我得到:SQL Oracle 10g中

ORA-01008:未绑定所有的变量

+2

某些变量没有有效的替代值 – Frank

+0

甚至在出现该错误之前 - 您可能将'&title'和'&pub'作为输入变量。如果将它们用单引号括起来,它们不再被视为变量。你不需要报价;如果你为这两个变量输入字符串,它们将作为字符串插入到你的表中。然后:你是否给了你的变量任何价值?如果你不知道如何去做,你需要告诉我们你使用的前端是什么,因为它们都有不同的方式来分配绑定变量的值。那就是:你使用SQL \ * Plus,SQL Developer,Toad,...? – mathguy

+0

在执行SQL之前添加“SET DEFINE OFF”行。否则,它会提示你输入&title和&pub,它们是常数,而不是变量。 –

回答

0

默认情况下,SQL Plus将'&'视为开始替换字符串的特殊字符。因此,当您运行此查询时,oracle会将出价,标题,pub,year视为绑定变量并提示您输入这些变量的值。为它们输入值将替换值并将记录插入到数据库中。

如果你想打开的默认行为,您可以使用下面的命令

SQL> set define off 

当你想打开的默认行为使用此命令

SQL> set define on 

希望这有助于!