Bird
Raised Fist0
Snowflakecloud~10 mins

COPY INTO command in Snowflake - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to copy data from a stage into a table.

Snowflake
COPY INTO my_table FROM [1] FILE_FORMAT = (TYPE = 'CSV');
Drag options to blanks, or click blank then click option'
A'@my_stage/data/'
B'@my_table/data/'
C'my_database'
D'my_table'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the table name as source instead of a stage path.
Forgetting the '@' symbol before the stage name.
2fill in blank
medium

Complete the code to specify the file format as JSON in the COPY INTO command.

Snowflake
COPY INTO my_table FROM '@my_stage/data/' FILE_FORMAT = (TYPE = [1]);
Drag options to blanks, or click blank then click option'
A'CSV'
B'JSON'
C'PARQUET'
D'XML'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'CSV' when the data is JSON.
Omitting quotes around the file format type.
3fill in blank
hard

Fix the error in the COPY INTO command by choosing the correct option for the file format option name.

Snowflake
COPY INTO my_table FROM '@my_stage/data/' [1] = (TYPE = 'CSV');
Drag options to blanks, or click blank then click option'
AFILE_FORMAT
BFORMAT_FILE
CFILETYPE
DDATA_FORMAT
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect option names like FORMAT_FILE or FILETYPE.
Misspelling the option name.
4fill in blank
hard

Fill both blanks to copy data from a stage and specify to skip the header row.

Snowflake
COPY INTO my_table FROM [1] FILE_FORMAT = (TYPE = 'CSV' [2] = 1);
Drag options to blanks, or click blank then click option'
A'@my_stage/data/'
BSKIP_HEADER
CHEADER_SKIP
D'my_table'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the table name as source instead of the stage path.
Using incorrect option names like HEADER_SKIP.
5fill in blank
hard

Fill all three blanks to copy data from a stage, specify CSV format, and set the field delimiter to a semicolon.

Snowflake
COPY INTO my_table FROM [1] FILE_FORMAT = (TYPE = [2] FIELD_DELIMITER = [3]);
Drag options to blanks, or click blank then click option'
A'@my_stage/data/'
B'CSV'
C';'
D'JSON'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'JSON' instead of 'CSV' for the file format.
Forgetting quotes around the semicolon delimiter.

Practice

(1/5)
1. What is the main purpose of the COPY INTO command in Snowflake?
easy
A. To load data files from cloud storage into Snowflake tables
B. To export data from Snowflake tables to local files
C. To create new tables in Snowflake
D. To delete data from Snowflake tables

Solution

  1. Step 1: Understand the command purpose

    The COPY INTO command is designed to load data from external files into Snowflake tables.
  2. Step 2: Compare options

    Options B, C, and D describe exporting, creating, or deleting data, which are not the function of COPY INTO.
  3. Final Answer:

    To load data files from cloud storage into Snowflake tables -> Option A
  4. Quick Check:

    Loading data = COPY INTO [OK]
Hint: COPY INTO means loading data into tables [OK]
Common Mistakes:
  • Confusing COPY INTO with export commands
  • Thinking COPY INTO creates tables
  • Assuming COPY INTO deletes data
2. Which of the following is the correct basic syntax to load data using COPY INTO in Snowflake?
easy
A. COPY table_name INTO @stage_name FILE_FORMAT = (TYPE = 'CSV');
B. LOAD DATA INTO table_name FROM @stage_name FORMAT = CSV;
C. COPY INTO table_name FROM @stage_name FILE_FORMAT = (TYPE = 'CSV');
D. INSERT INTO table_name COPY FROM @stage_name FILE_FORMAT = CSV;

Solution

  1. Step 1: Recall correct COPY INTO syntax

    The correct syntax is COPY INTO table_name FROM @stage_name FILE_FORMAT = (TYPE = 'CSV'); to load CSV files from a stage.
  2. Step 2: Identify incorrect syntax

    Options A, C, and D use wrong keywords or order that Snowflake does not accept.
  3. Final Answer:

    COPY INTO table_name FROM @stage_name FILE_FORMAT = (TYPE = 'CSV'); -> Option C
  4. Quick Check:

    Correct COPY INTO syntax = COPY INTO table_name FROM @stage_name FILE_FORMAT = (TYPE = 'CSV'); [OK]
Hint: COPY INTO table FROM stage with FILE_FORMAT [OK]
Common Mistakes:
  • Swapping INTO and FROM keywords
  • Using LOAD DATA instead of COPY INTO
  • Incorrect FILE_FORMAT syntax
3. Given the command:
COPY INTO my_table FROM @my_stage FILE_FORMAT = (TYPE = 'CSV' FIELD_DELIMITER = ',') ON_ERROR = 'skip_file';

What happens if one file in the stage has errors during loading?
medium
A. Snowflake retries loading the file indefinitely
B. The entire load fails and no data is loaded
C. Only the erroneous rows are skipped, file loads partially
D. The file with errors is skipped, other files load successfully

Solution

  1. Step 1: Understand ON_ERROR = 'skip_file'

    This option tells Snowflake to skip any file that causes errors during loading instead of failing the entire load.
  2. Step 2: Analyze the effect on other files

    Other files without errors will load normally, so only the bad file is skipped.
  3. Final Answer:

    The file with errors is skipped, other files load successfully -> Option D
  4. Quick Check:

    ON_ERROR = skip_file skips bad files [OK]
Hint: ON_ERROR = skip_file skips bad files, loads others [OK]
Common Mistakes:
  • Assuming entire load fails on one bad file
  • Thinking only bad rows are skipped with skip_file
  • Believing Snowflake retries endlessly
4. You run this command:
COPY INTO sales FROM @data_stage FILE_FORMAT = (FORMAT_NAME = 'csv_format');

But get an error: SQL compilation error: file format not found. What is the likely cause?
medium
A. The stage @data_stage does not exist
B. The FILE_FORMAT clause references a named file format that does not exist
C. The sales table does not exist
D. The CSV files are empty

Solution

  1. Step 1: Analyze the error message

    The error says file format not found, meaning Snowflake expects a named file format or a full definition.
  2. Step 2: Check the FILE_FORMAT clause

    The clause FILE_FORMAT = (FORMAT_NAME = 'csv_format') references a named file format that does not exist.
  3. Final Answer:

    The FILE_FORMAT clause references a named file format that does not exist -> Option B
  4. Quick Check:

    File format error means missing or wrong FILE_FORMAT [OK]
Hint: File format errors mean missing or wrong FILE_FORMAT [OK]
Common Mistakes:
  • Assuming stage or table missing causes file format error
  • Ignoring need for file format definition
  • Thinking empty files cause this error
5. You want to load JSON files from an external S3 bucket into a Snowflake table named events. Which COPY INTO command correctly handles JSON format and ignores files with errors?
hard
A. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'JSON') ON_ERROR = 'skip_file';
B. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'CSV') ON_ERROR = 'continue';
C. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'JSON') ON_ERROR = 'abort_statement';
D. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'XML') ON_ERROR = 'skip_file';

Solution

  1. Step 1: Match file format to JSON files

    Since files are JSON, the FILE_FORMAT must specify TYPE = 'JSON'.
  2. Step 2: Choose error handling to ignore bad files

    ON_ERROR = 'skip_file' skips files with errors, which matches the requirement.
  3. Step 3: Eliminate incorrect options

    COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'CSV') ON_ERROR = 'continue'; uses CSV format, wrong for JSON. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'JSON') ON_ERROR = 'abort_statement'; aborts on error, not ignoring. COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'XML') ON_ERROR = 'skip_file'; uses XML format, incorrect.
  4. Final Answer:

    COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'JSON') ON_ERROR = 'skip_file'; -> Option A
  5. Quick Check:

    JSON format + skip_file error handling = COPY INTO events FROM @s3_stage FILE_FORMAT = (TYPE = 'JSON') ON_ERROR = 'skip_file'; [OK]
Hint: Match FILE_FORMAT type to file type and use skip_file to ignore errors [OK]
Common Mistakes:
  • Using wrong file format type
  • Choosing abort instead of skip_file for errors
  • Confusing JSON with CSV or XML