■ はじめに
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