Sql &引用;“此处不允许使用列”;INSERT语句中出现错误
我创建了这个名为LOCATION的表 通过这样做:Sql &引用;“此处不允许使用列”;INSERT语句中出现错误,sql,oracle,sql-insert,Sql,Oracle,Sql Insert,我创建了这个名为LOCATION的表 通过这样做: CREATE TABLE LOCATION( POSTCODE VARCHAR(10) PRIMARY KEY, STREET_NAME VARCHAR(20), CITY VARCHAR(20)); 当我试图在表中添加一些日期时,如果说有错误,则无法工作 INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE'); 错误是说 此处不允许使用列 第一个值周围缺少引号,应该是 INS
CREATE TABLE LOCATION(
POSTCODE VARCHAR(10) PRIMARY KEY,
STREET_NAME VARCHAR(20),
CITY VARCHAR(20));
当我试图在表中添加一些日期时,如果说有错误,则无法工作
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
错误是说
此处不允许使用列
第一个值周围缺少引号,应该是
INSERT INTO LOCATION VALUES('PQ95VM', 'HAPPY_STREET', 'FRANCE');
顺便说一句,出于可读性、可维护性和健壮性的考虑,建议您在INSERT中明确指定列名,例如
INSERT INTO LOCATION (POSTCODE, STREET_NAME, CITY) VALUES ('PQ95VM', 'HAPPY_STREET', 'FRANCE');
如果我们在输入变量名时犯了一些拼写错误,就会出现这个错误。 与在存储过程中一样,我有变量名x,在insert语句中使用
insert into tablename values(y);
它将抛出此处不允许的错误列。正如斯加夫曼所说,您缺少引号。 始终在将值传递给varchar2时使用引号
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
因此,一个(“)启动字符串,第二个(”)关闭它
但如果要将引号符号添加到字符串中,例如:
我父亲告诉我:“儿子,你必须勇敢。”
必须使用三重引号符号,如:
“我父亲告诉我:‘你必须勇敢,孩子’。”
*添加quote方法在不同的db引擎上可能会有所不同您错过的是邮政编码中的“
,因为它是varchar
有两种插入方式
当您创建一个表table created.
并在创建后添加一行时,可以使用以下方法
INSERT INTO table_name
VALUES (value1,value2,value3,...);
1行已创建。
您添加了太多的表,或者它已保存并要重新打开,您还需要提及表的列名,否则它将显示相同的错误
ERROR at line 2:
ORA-00984: column not allowed here
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
1行已创建。
有一段时间,在执行insert查询时,我们面临:
此处不允许使用列
错误。因为字符串参数中可能缺少引号。在字符串参数中添加引号并尝试执行
试试这个:
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
或
插入位置值(PQ95VM、'HAPPY_STREET'、'FRANCE')代码>
上述代码不正确,因为您的第一个参数POSTCODE的类型为VARCHAR(10)
。您应该使用''
尝试插入位置值('PQ95VM'、'HAPPY_STREET'、'FRANCE')代码>
当连接字符串时,请不要错过添加“-----” 尝试使用varchar2而不是varchar,并使用以下命令:
插入位置值('PQ95VM'、'HAPPY_STREET'、'FRANCE')代码>插入数据时,我们必须使用字符串分隔符('
)。并且,您在插入值时错过了它(”
),这是错误消息的原因。代码的更正如下所示:
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
我在使用insert命令时也遇到了同样的错误。当我用单引号替换双引号时,效果很好将双引号(“”)转换为单引号(“”)
示例
如果你有这样的东西:
INSERT INTO clients (id, email, country)
VALUES (1, "john@gmail.com", "USA");
将其转换为:
INSERT INTO clients (id, email, country)
VALUES (1, 'john@gmail.com', 'USA');
+1特别是对于实际命名列的建议,在insert中暗示列是一种SQL反模式,当数据库结构发生变化时,可能会产生一些不幸的结果。您应该使用支持语法突出显示的编辑器。互联网提供了许多免费的服务。看看苏如何回答你的问题:你的花花公子很明显。我不知道你为什么会被否决。这也是我以前犯过的一个常见错误。
INSERT INTO clients (id, email, country)
VALUES (1, "john@gmail.com", "USA");
INSERT INTO clients (id, email, country)
VALUES (1, 'john@gmail.com', 'USA');