当前位置: 首页 > 知识库问答 >
问题:

雪花ODBC和变体数据类型

公孙令秋
2023-03-14

使用odbctest和Snowflake 64位ODBC驱动程序for Windows:

CREATE TABLE "SFDEST"."QAUSER"."BT14726" 
("VARCHAR_10_COL" VARCHAR (10),
 "VARCHAR_4000_COL" VARCHAR (4000) ,
 "CHAR_10_COL" CHAR (10) ,
 "CLOB_COL" VARIANT,
 "ROWID" CHAR (18)  NOT NULL )
INSERT INTO "SFDEST"."QAUSER"."BT14726" 
("VARCHAR_10_COL",
 "VARCHAR_4000_COL",
 "CHAR_10_COL",
 "ROWID",
 "CLOB_COL")
VALUES ( ?, ?, ?, ?, ?)  

这是odbc跟踪的相关部分:

sqdrsvc 3dfc-52bc输入SQLPrepare HSTMT 0x000000435c961620 UCHAR*0x000000435d262720[140]“插入”sfdest“.”qauser“.”bt14726“(”varchar_10_col“,”varchar_4000_col“,”char_10_col“,”rowid“,”clob_col“)值(?,?,?,?,?)”SDWORD 140

sqdrsvc 3DFC-52BC退出SQLPrepare,返回代码-1(SQL_ERROR)HSTMT 0x000000435C961620 UCHAR*0x000000435D262720[140]“插入”SFDEST“.”QAUSER“.”BT14726“(”VARCHAR_10_COL“,”VARCHAR_4000_COL“,”CHAR_10_COL“,”ROWID“,”CLOB_COL“)值(?,?,?,?,?,?)”SDWORD 140 DIAG[22000]SQL编译错误:表达式类型与列数据类型不匹配,应为VARIANT,但为列CLOB_COL(

共有1个答案

史洛城
2023-03-14

如果您有一个格式化为有效JSON blob的字符串,则需要使用PARSE_JSON将其转换为实际的variant类型,以便SnowFlake能够将其识别为variant类型。

大概是这样的:

INSERT INTO "SFDEST"."QAUSER"."BT14726" 
("VARCHAR_10_COL",
 "VARCHAR_4000_COL",
 "CHAR_10_COL",
 "ROWID",
 "CLOB_COL")
VALUES ( ?, ?, ?, ?, PARSE_JSON(?))  
 类似资料:
  • 有人有做这事的经验吗? 更新: 我要添加的数据是一个字典的python列表:

  • 我有一个Pandas dataframe,其中包含几个列,这些列是列表。我希望将它们作为数据类型插入到雪花表中。

  • 如何使用雪花存储过程将current_date()bind变量插入到表中 创建或替换过程abc(“p_message_id”浮点数、“p_theater”字符串、“p_month”字符串、“p_message”字符串、“p_message”字符串、“p_start_date”字符串、“p_end_date”字符串、“p_action”字符串、“p_msg_type”字符串、“p_logged_us

  • 有没有人知道这样的特性、可能性或变通方法?谢谢!

  • 我试图使用以下代码将数据加载到雪花,但得到一个错误。 tmp是从Snowflake下载的,该表使用RStudio:

  • 我已经看到了一些关于数据库到雪花的问题,但我的问题是如何将表格从雪花到数据库。 到目前为止我所做的:创建了一个集群并将集群附加到我的笔记本上(我正在使用Python) 然后我试着用spark.read读取雪花中的FBK _视频表: 我也尝试过:选项(“dbtable”,“从FBK_VIDEOS中选择*”).load() 但我看到的以下错误: net.snowflake.client.jdbc.Sn