Databases Reference
In-Depth Information
[ Error 3737 ] [ SQLState 42000 ] Name requires more than 30 bytes in LATIN
internal form.
Solution
You can use SQL projection to rename all columns longer than 28 characters to have a
maximum of 28 characters. For example, to rename the column REALLY_LONG_COL
UMN_NAME_30CHAR to a shorter name, you can use the --query import instead of the
--table import.
sqoop import \
--connect jdbc:teradata://teradata.example.com/DATABASE = database \
--username sqoop \
--password sqoop \
--query "SELECT REALLY_LONG_COLUMN_NAME_30CHAR AS shorter_column_name \
FROM table"
Discussion
Teradata has an internal 30-character limit on the column and table names. Some of the
Teradata technologies and tools prepend each column name with a special prefix that
counts toward the 30-character limit. In the case of using FastLoad over JDBC, the
effective limit is 28 characters as the Teradata JDBC driver automatically adds a prefix
V_ to each column. As this limitation is imposed by Teradata itself, there is not much
that Sqoop can do besides allow you to use the Generic JDBC Connector instead of the
Cloudera Teradata Connector.
Using the Generic JDBC Connector will significantly decrease
performance.
Search WWH ::




Custom Search