首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入多行SQL Teradata

插入多行SQL Teradata
EN

Stack Overflow用户
提问于 2016-09-23 19:33:04
回答 7查看 36.5K关注 0票数 7

我正在创建一个易失性表,并试图将行插入到表中。我可以像下面这样上传一排..。

代码语言:javascript
复制
create volatile table Example
(
    ProductID VARCHAR(15),
    Price DECIMAL (15,2)
)
on commit preserve rows;
et;

INSERT INTO Example
Values
('Steve',4);

但是,当我尝试上传多个文件时,我会得到以下错误:

“语法错误:在')‘和’‘之间期望某事。”

代码语言:javascript
复制
INSERT INTO Example
Values
('Steve',4),
('James',8);
EN

回答 7

Stack Overflow用户

发布于 2016-09-23 21:04:04

正如Gordon所说,Teradata不支持具有多行的值(并且UNION都会因为缺少FROM而失败。

您可以使用多语句请求(MSR)来代替:

代码语言:javascript
复制
INSERT INTO Example Values('Steve',4)
;INSERT INTO Example Values('James',8)
;

如果是BTEQ作业,插入将作为最后分号之后的一个块提交(当有一个新命令从同一行开始时,它是MSR的一部分)。在submit或Studio中,您必须使用F9而不是F5来提交它。

票数 9
EN

Stack Overflow用户

发布于 2016-09-23 19:41:02

我认为Teradata不支持多行values语法。只需使用select

代码语言:javascript
复制
INSERT INTO Example(ProductId, Price)
WITH dual as (SELECT 1 as x)
    SELECT 'Steve' as ProductId, 4 as Price FROM dual UNION ALL
    SELECT 'James' as ProductId, 8 as Price FROM dual;
票数 3
EN

Stack Overflow用户

发布于 2020-04-25 03:45:46

CTE语法(工作):

代码语言:javascript
复制
insert into target_table1 (col1, col2)
with cte as (select 1 col1)
select 'value1', 'value2' from cte
union all
select 'value1a', 'value2a' from cte
;

CTE语法不工作在Teradata (错误:预期的东西之间")“和”插入“关键字)

代码语言:javascript
复制
with cte as (select 1 col1)
insert into target_table1 (col1, col2)
select 'value1', 'value2' from cte
union all
select 'value1a', 'value2a' from cte
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39668309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档