SQL INSERT INTO 多行 [重复]
Posted
技术标签:
【中文标题】SQL INSERT INTO 多行 [重复]【英文标题】:SQL INSERT INTO multiple rows [duplicate] 【发布时间】:2021-11-19 00:14:54 【问题描述】:所以,我在 Oracle Apex 上收到一个错误,上面写着 'ORA-00933: SQL command not proper ending' 。据我所知,我的命令中没有语法错误,如果我遗漏了什么并且有人可以帮助我,那就太好了。
我创建表的命令:
CREATE TABLE details
(
ssn INTEGER NOT NULL,
gender VARCHAR(255),
hair VARCHAR(255)
);
我向表中添加行的命令:
INSERT INTO details(ssn, gender, hair)
VALUES
(112, 'male', 'blonde'),
(132, 'female', 'blonde'),
(882, 'male', 'brown'),
(542, 'female', 'black'),
(662, 'male', 'red') ;
【问题讨论】:
作为一个侧面观察,您应该使用 VARCHAR2 而不是 VARCHAR,oracle 仅将其识别为向后兼容。还有——真的需要 255 个字符来表示性别吗?一个人会这样做(“M”或“F”)。 255的头发颜色?您可能认为这无关紧要,因为只会存储实际的数据长度。但这忽略了任何查询都必须为最大可能大小预先分配内存。在某些情况下,这会导致内存不足错误。 这能回答你的问题吗? Oracle SQL Language Reference: INSERT 【参考方案1】:据我所知,我的命令中没有语法错误
其实是有的。就 Oracle 而言,您使用的语法无效。
Oracle Apex 上的“SQL 命令”,一次只需要一个命令
实际上,没有。您可以运行其中的几个,只是不是作为 SQL 而是 PL/SQL,这意味着您必须将它们包含在 BEGIN-END
块中。看看截图:
但是,请注意,并非所有东西都可以这样运行。例如,DDL 需要动态 SQL。
【讨论】:
【参考方案2】:原来我在 Oracle Apex 上使用了“SQL 命令”,它要求一次只运行一个命令,因此命令未正确结束错误。
【讨论】:
oracle 也不支持 ***.com/questions/39576/…以上是关于SQL INSERT INTO 多行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
INSERT INTO .. ON DUPLICATE KEY更新多行记录
如何在不重复声明的“INSERT INTO dbo.Blah”部分的情况下插入多行?