我通过这样做创建了这个名为 LOCATION 的表:
CREATE TABLE LOCATION(
POSTCODE VARCHAR(10) PRIMARY KEY,
STREET_NAME VARCHAR(20),
CITY VARCHAR(20));
当我尝试在表格中添加一些日期时,它不起作用说有错误
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
错误是说
此处不允许列
我通过这样做创建了这个名为 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');
有时,在执行插入查询时,我们面临:
此处不允许列
错误。因为字符串参数中可能缺少引号。在字符串参数中添加引号并尝试执行。
尝试这个:
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
或者
INSERT INTO LOCATION (ID, FIRST_NAME, LAST_NAME) VALUES('PQ95VM','HAPPY_STREET','FRANCE');
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
上面提到的代码不正确,因为您的第一个参数 POSTCODE 是 type VARCHAR(10)
。你应该用过' '
.
尝试INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
就像 Scaffman 说的 - 你缺少引号。始终在将值传递给varchar2时使用引号
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
所以一个(')开始字符串,第二个(')关闭它。
但是,如果您想在字符串中添加引号符号,例如:
我父亲告诉我:'你必须勇敢,儿子'。
您必须使用三引号符号,例如:
“我父亲告诉我:‘你必须勇敢,儿子’。”
*添加报价方法可能因不同的数据库引擎而异
您错过的是" "
邮政编码,因为它是varchar
.
有两种插入方式。
当您创建一个表Table created.
并在创建它之后添加一行时,您可以使用以下方法。
INSERT INTO table_name
VALUES (value1,value2,value3,...);
1 row created.
您添加了这么多表,或者已保存并重新打开它,您还需要提及表的列名,否则它将显示相同的错误。
ERROR at line 2:
ORA-00984: column not allowed here
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
1 row created.
我犯了使用错误引号的错误。我在值列表中使用双引号作为字符串分隔符,而不是单引号。
INSERT INTO MYUSERS VALUES( 'Name', "Surname"); // Wrong
INSERT INTO MYUSERS VALUES( 'Name', 'Surname'); // Correct, Surname must be in single quotes
如果我们在输入变量名时犯了一些拼写错误,就会出现这个错误。就像在存储过程中一样,我有变量名 x 并且在我正在使用的插入语句中
insert into tablename values(y);
它将抛出此处不允许的错误列。
尝试使用 varchar2 而不是 varchar 并使用它:
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
我在使用插入命令时也遇到了同样的错误。当我用单引号替换双引号时,它工作正常
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
String surname = sc.nextLine();
Statement statement = connection.createStatement();
String query = "INSERT INTO STUDENT VALUES("+'"name"'+","+'"surname"'+")";
statement.executeQuery();
连接字符串 时不要错过添加'"----"' 。
在插入数据时,我们必须使用字符串分隔符 ( ' '
)。而且,您在插入值时错过了它(' '
),这是您的错误消息的原因。代码修正如下:
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
如果PQ95VM
应该是文字字符串,则使用'PQ95VM'
. 如果它是一个变量,请确保它已被声明。
例子
如果你有这样的事情:
INSERT INTO clients (id, email, country)
VALUES (1, "john@gmail.com", "USA");
将其转换为:
INSERT INTO clients (id, email, country)
VALUES (1, 'john@gmail.com', 'USA');