我正在创建一个易失性表,并试图将行插入到表中。我可以像下面这样上传一排..。
create volatile table Example
(
ProductID VARCHAR(15),
Price DECIMAL (15,2)
)
on commit preserve rows;
et;
INSERT INTO Example
Values
('Steve',4);但是,当我尝试上传多个文件时,我会得到以下错误:
“语法错误:在')‘和’‘之间期望某事。”
INSERT INTO Example
Values
('Steve',4),
('James',8);发布于 2016-09-23 21:04:04
正如Gordon所说,Teradata不支持具有多行的值(并且UNION都会因为缺少FROM而失败。
您可以使用多语句请求(MSR)来代替:
INSERT INTO Example Values('Steve',4)
;INSERT INTO Example Values('James',8)
;如果是BTEQ作业,插入将作为最后分号之后的一个块提交(当有一个新命令从同一行开始时,它是MSR的一部分)。在submit或Studio中,您必须使用F9而不是F5来提交它。
发布于 2016-09-23 19:41:02
我认为Teradata不支持多行values语法。只需使用select
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;发布于 2020-04-25 03:45:46
CTE语法(工作):
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 (错误:预期的东西之间")“和”插入“关键字)
with cte as (select 1 col1)
insert into target_table1 (col1, col2)
select 'value1', 'value2' from cte
union all
select 'value1a', 'value2a' from cte
;https://stackoverflow.com/questions/39668309
复制相似问题