向BigQuery插入数据时遇TIMESTAMP类型转换错误,求解决
BigQuery INSERT语句TIMESTAMP类型转换失败解决方案
错误原因
报错信息翻译:无法将字面量""转换为TIMESTAMP类型
问题出在你给deleted_on(TIMESTAMP类型)字段传入了空字符串'',BigQuery不支持将空字符串转换为TIMESTAMP类型,即使字段是NULLABLE,也必须用NULL表示空值。此外,is_deleted字段是BOOLEAN类型,传入空字符串''同样不符合类型要求。
修正后的INSERT语句
将TIMESTAMP类型字段的空字符串替换为NULL,BOOLEAN类型字段传入合法布尔值(或NULL),STRING类型空值建议用NULL更符合字段设计,同时修正数值类型的引号问题:
INSERT INTO `doctors` (status, created_on, updated_on, deleted_on, created_by, deleted_by, updated_by, is_deleted, id, msl_code, first_name, last_name, speciality, phone_number, clinic_name, address, pincode, mini_region, lat, lng, doctor_unique_id) VALUES ('ACTIVE','2022-07-09T06:51:45','2022-07-09T06:51:45',NULL,'b52e690b-e2c3-4a5e-9fec-4301d0586bd8',NULL,NULL,FALSE,4,'01128989','A','Goplarao','Cardiologist','55656565656','Chitara Clinic','Shop No.12 Municipal Shopping Complex,Seethammadha',530022,'Visaerekhapatnam',17.7432938,83.31475689999999,'01128989_530022_Chitara_Clinic');
关键修正点
deleted_on:TIMESTAMP类型空值用NULL替代''deleted_by/updated_by:STRING类型空值用NULL替代''(更贴合NULLABLE字段的语义)is_deleted:BOOLEAN类型传入FALSE(表示未删除,可根据业务需求调整为NULL)id/pincode:INTEGER类型去掉引号,直接传入数值(原语句带引号虽能自动转换,但直接传数值更规范)
内容的提问来源于stack exchange,提问作者Surya R
相关产品推荐
相关产品推荐

