Skip to content

Converting

When a file can't be read

The problems IntoSQL reports while reading and converting a file, what each one means, and what to do about it.

View as Markdown

Some files can't be converted as they are, and some values don't fit the type their column gets. IntoSQL says what failed, where, and how to fix it. The same codes appear in the converter, the command line, the desktop app, the API (in a conversion's report) and MCP.

A problem that stops the whole file, such as a damaged workbook, ends the conversion. A problem with one value only affects its row: the row is left out and listed among the rejected rows, and the rest converts.

Reading the file

unsupported_format

"notas.pdf" isn't a spreadsheet, CSV or JSON file IntoSQL can read.

What to do: Save it as .xlsx or .csv and try again.

encrypted_file

"nomina.xlsx" is protected with a password.

What to do: Open it, remove the password, save it and try again.

corrupt_file

"ventas.xlsx" is damaged and can't be read to the end.

What to do: Open it in the app that made it and save a fresh copy.

empty_file

"ventas.csv" has no rows.

What to do: Check that you picked the right file or sheet.

sheet_not_found

There's no sheet called "Q4".

What to do: Pick one of: Q1, Q2, Q3.

other_table_skipped

Row 58 starts another table, which was left out.

What to do: Convert it on its own: copy that range to a new sheet or file.

invalid_json_row

Row 7 isn't valid JSON, so it was left out.

What to do: Check that each line holds one complete JSON object.

ragged_row

Row 212 has 7 values but the header has 6.

What to do: Missing values are left empty and extra values are dropped. Check the row if that isn't what you want.

Values

invalid_date

Row 418, column "Alta": 31/02/2024 isn't a date.

What to do: Keep the value as text, or leave the row out.

invalid_number

Row 77, column "Saldo": pendiente isn't a number.

What to do: Keep the column as text, or correct the value.

invalid_time

Row 15, column "Hora": 25:10 isn't a time of day.

What to do: Keep the column as text, or correct the value.

invalid_boolean

Row 30, column "Activo": tal vez isn't yes or no.

What to do: Keep the column as text, or correct the value.

value_too_long

Row 9, column "Notas" is longer than SQL Server allows (4000 characters).

What to do: Use a text type without a limit, or shorten the value.

ambiguous_reading

Check "Fecha": 03/02/2024 could mean February 3 or March 2.

What to do: If February 3 is wrong, change how the column is read.

mixed_number_formats

"Importe" mixes 1.234,50 and 1,234.50, so it stays text.

What to do: Pick a number type for the column to read every value as a number.

Options

table_name_empty

The table name is empty.

What to do: Type a name, or leave the field out to use the file's name.

table_name_too_long

"ventas_mensuales_por_sucursal_y_region" is longer than Oracle allows (30 characters).

What to do: Shorten the name to 30 characters or fewer.

column_name_empty

The new name for column 2 is empty.

What to do: Type a name, or leave the column's name as detected.

column_name_too_long

"fecha_de_la_ultima_actualizacion_del_registro" is longer than Oracle allows (30 characters).

What to do: Shorten the name to 30 characters or fewer.

column_not_found

There's no column 9 to change: the last column is 6.

What to do: Check the column numbers: they start at 1.

no_columns

Every column is left out, so there's nothing to write.

What to do: Keep at least one column.

batch_rows_out_of_range

Rows per batch must be between 1 and 10000; it is 0.

What to do: Pick a number in that range. 500 suits most databases.

sample_rows_too_small

Type inference needs at least 100 sample rows; it is 10.

What to do: Raise the sample size to 100 or more.

unsupported_version

This request uses contract version 2; this engine reads version 1.

What to do: Update IntoSQL, or send a request made for version 1.