Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
Gabriel_Araya
Partner - Contributor III
Partner - Contributor III

Table Name in Snowflake with Uupper and lower cases

Hi Team,

I have the following situation, my customer has a table in Snowflake called "Customers" ( with Upper and lower cases).

From Talend Studio using a tDBOutput in where I have all the settings that Snowflake needs for the connection I can't insert records in that table .. 

In the field "Table" of Basic Settings I tested:

"Customers"

"CUSTOMERS"

"\"Customers""

\"Customers\"

and all the tests failed. So my question is: Are there any way to insert records in a Snowflake table in where the name has upper and lower cases? or just Talend Studio works with table name in upper cases.

Thanks in advanced,

Gabriel

Labels (4)
1 Solution

Accepted Solutions
Rahul_Kale
Support
Support

Hello Gabriel_Araya,
 

Thank you for your patience,
 

I have checked internally with our team and got to know that in Talend Studio tDBOutput, there is no reliable quoting string you can put in the Table field to target a case-sensitive Snowflake table like "Customers".
 

Even if you use:
 

\"Customers\"
 

Talend usually rewrites or uppercases it, so it hits CUSTOMERS instead.
 

You have the best solution, which is to rename the table in Snowflake.
 

If that is not helpful, then we recommend using a tMap component to explicitly map your input columns to the corresponding Snowflake columns. The tMap allows you to bridge the case-sensitivity gap by directly mapping columns regardless of their capitalization differences. For example, you can map a lowercase column name from your source to an uppercase column name in Snowflake without having to modify either schema.

View solution in original post

5 Replies
Rahul_Kale
Support
Support

Hello Gabriel_Araya,
 

Thank you for reaching out to the Qlik community.
 

Snowflake automatically converts all object names (including table and column names) to uppercase unless they are enclosed in double quotes. When you have a table named "Customers" with mixed case in Snowflake, you need to use the exact casing with proper quoting.
 

The challenge you're facing is that Talend Studio's tDBOutput component handles column name mapping in a case-sensitive manner. When Talend Studio reads schema information from Snowflake, all column names appear in uppercase because that's how Snowflake stores them internally. This creates a mismatch between what Talend expects and what actually exists in your mixed-case table.
 

To resolve this issue, we recommend using a tMap component to explicitly map your input columns to the corresponding Snowflake columns. The tMap allows you to bridge the case-sensitivity gap by directly mapping columns regardless of their capitalisation differences. For example, you can map a lowercase column name from your source to an uppercase column name in Snowflake without having to modify either schema.
 

Additionally, when working with Snowflake in Talend Studio, it's generally best practice to use uppercase naming conventions for tables and columns to avoid these complications, as Snowflake's default behaviour is to convert everything to uppercase anyway.

Gabriel_Araya
Partner - Contributor III
Partner - Contributor III
Author

Hi Rahul_Kale,

Thanks a lot for your reply, I have 2 scenarios for my tests. In the first one, the table name is CUSTOMERS and in the second one is Customers both have the same schema. I don't have problems with the columns names. As you mentioned, to create the table Customers I needed to enclosed in double quotes the table name.

But, mi challenge is: What should be the proper quoting in the field TABLE in Basic settings tab for a tDBOutput component? If I use Customers or CUSTOMERS enclosed in double quotes I don't have problems, the records are added to the CUSTOMERS Snowflake table, but what should be the correct combination of quotes for Customers.

 

Kind regards

Gabriel

Rahul_Kale
Support
Support

Hello Gabriel_Araya,
 

Thank you for your patience,
 

I have checked internally with our team and got to know that in Talend Studio tDBOutput, there is no reliable quoting string you can put in the Table field to target a case-sensitive Snowflake table like "Customers".
 

Even if you use:
 

\"Customers\"
 

Talend usually rewrites or uppercases it, so it hits CUSTOMERS instead.
 

You have the best solution, which is to rename the table in Snowflake.
 

If that is not helpful, then we recommend using a tMap component to explicitly map your input columns to the corresponding Snowflake columns. The tMap allows you to bridge the case-sensitivity gap by directly mapping columns regardless of their capitalization differences. For example, you can map a lowercase column name from your source to an uppercase column name in Snowflake without having to modify either schema.

Gabriel_Araya
Partner - Contributor III
Partner - Contributor III
Author

Hi Rahul .. I was doing many test and found that there is a flag that I need to have uncheck.

In Advanced Settings the box is called: "Allow Snowflake to convert columns and tables to uppercase", this option is checked by default and I need to have unchecked.

Thanks

Rahul_Kale
Support
Support

Hello Gabriel_Araya,

Thanks for digging into this and updating us.