【Snowflake】エラー「String 'XXXXX...' is too long and would be truncated」が発生

■ はじめに

Snowflake で エラーがあったので
原因とトラブルシュートを書いておく

【1】現象

 Snowflake で、
INSERT文で以下「【2】エラー内容」が表示

発生したSQL

CREATE OR REPLACE TABLE demo_table (
  ...
  comment VARCHAR(100) DEFAULT NULL,
  ...
);

INSERT INTO 
INSERT INTO demo_table (..., comment, ...)
  SELECT ..., comment, ...
  FROM clone_table
;

【2】エラー内容

String 'XXXXX...' is too long and would be truncated

和訳

文字列 'XXXXX..' は長すぎるため、切り捨てられてしまいます

【3】原因

* テーブル定義の文字列長に対して、データ長が超えたため。
* 今回の場合は、「VARCHAR(100)」で、100を超えるデータが来たため

【4】解決案

* 以下のいずれか。

[1] テーブル定義の文字列長を増やす(例:「VARCHAR(100)」⇒「VARCHAR(16777216)」)
[2] Insert側のデータをテーブル定義の文字列長に抑える(今回の場合、100文字以内する)

参考:公式ドキュメント・VARCHAR

https://docs.snowflake.com/ja/sql-reference/data-types-text#varchar

参考文献

https://newssdx.kcme.jp/too_longest_word_from_dc_to_snowflake/

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
エラー「Failed to cast variant value "" to XXX」時の対応
https://dk521123.hatenablog.com/entry/2021/12/17/102659
エラー「Insufficient privileges to operate」時の対応
https://dk521123.hatenablog.com/entry/2022/08/02/090439
エラー「<Object> does not exist or not authorized」時の対応
https://dk521123.hatenablog.com/entry/2022/08/18/120935
エラー「Failure using stage area. ... AccessDenied」時の対応
https://dk521123.hatenablog.com/entry/2022/10/27/195547
エラー「Error assuming AWS_ROLE」時の対応
https://dk521123.hatenablog.com/entry/2022/11/25/175912
所有権変更後にエラー「current role has no privileges on it」
https://dk521123.hatenablog.com/entry/2023/04/14/151140
エラー「Ownership restriction violation」時の対応
https://dk521123.hatenablog.com/entry/2023/07/13/000000
COPY INTO したがデータが格納されていない
https://dk521123.hatenablog.com/entry/2022/12/20/152040
エラー「Transient object cannot be cloned to a permanent object」時の対応
https://dk521123.hatenablog.com/entry/2024/09/13/213300