Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql &引用;“此处不允许使用列”;INSERT语句中出现错误_Sql_Oracle_Sql Insert - Fatal编程技术网

Sql &引用;“此处不允许使用列”;INSERT语句中出现错误

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

我创建了这个名为LOCATION的表 通过这样做:

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');