Vertica创建含经纬度与餐厅名临时表报错求助
Vertica临时表创建语法错误排查与修复
嘿,我来帮你搞定这个语法错误问题~
你遇到的报错是因为把创建临时表、插入数据、查询数据三个独立的SQL操作直接连在了一起,没有用分号正确分隔,导致Vertica的解析器无法正确识别语句结构,才会抛出Syntax error at or near "float"的错误。
修正后的正确写法
我们把每个操作拆分成独立的语句,用分号分隔,就可以正常执行了:
-- 第一步:创建本地临时表,指定提交后保留数据 CREATE LOCAL TEMP TABLE geo_raw ( lat float, lng float, resto_name varchar ) ON COMMIT PRESERVE ROWS; -- 第二步:插入测试数据 INSERT INTO geo_raw (lat, lng, resto_name) VALUES (12.345, 12.3555, 'abc'); -- 第三步:查询验证表数据 SELECT * FROM geo_raw;
另一种更简洁的写法(适合初始数据少的场景)
如果只是要创建表并插入少量测试数据,也可以用CREATE TABLE AS SELECT的方式一步完成:
CREATE LOCAL TEMP TABLE geo_raw ON COMMIT PRESERVE ROWS AS SELECT 12.345 AS lat, 12.3555 AS lng, 'abc' AS resto_name; -- 查询验证 SELECT * FROM geo_raw;
两种写法都能正确创建你需要的临时表并插入数据,执行后就不会再出现语法错误啦~
内容的提问来源于stack exchange,提问作者Nimish Shah
相关产品推荐
相关产品推荐

