Как указать имя схемы базы данных Oracle в команде импорта Sqoop

У меня есть схема оракула / пользователь U1 (пароль P1), который содержит таблицу T1. Существует еще одна схема оракула / пользователь U2 (пароль P2), которая имеет разрешение на чтение таблицы U1.T1.

Как я могу импортировать T1, используя учетные данные U2/P2. Следующая команда не работает.

sqoop import --connect jdbc:oracle:thin:@//localhost:1521/xe --username U2 --password P2 -m 1 --table U1.T1

Вход в систему с флагом --verbose

16/10/19 20:52:23 DEBUG manager.OracleManager: Using column names query: SELECT t.* FROM T1 t WHERE 1=0
16/10/19 20:52:23 DEBUG manager.SqlManager: Execute getColumnInfoRawQuery : SELECT t.* FROM T1 t WHERE 1=0
16/10/19 20:52:23 DEBUG manager.OracleManager: Creating a new connection for jdbc:oracle:thin:@//localhost:1521/xe, using username:U2
16/10/19 20:52:23 DEBUG manager.OracleManager: No connection paramenters specified. Using regular API for making connection.
16/10/19 20:52:24 INFO manager.OracleManager: Time zone has been set to GMT
16/10/19 20:52:24 DEBUG manager.SqlManager: Using fetchSize for next query: 1000
16/10/19 20:52:24 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM TABLE_NAME t WHERE 1=0
16/10/19 20:52:24 DEBUG manager.SqlManager: Found column xxxxxxxxxx of type [2, 19, 0]
16/10/19 20:52:24 DEBUG manager.SqlManager: Found column xxxxxxxxxxxxx of type [12, 36, 0]
16/10/19 20:52:24 DEBUG manager.SqlManager: Found column xxxxxxxxxxxxx of type [-9, 512, 0]
....
16/10/19 20:52:24 DEBUG manager.OracleManager$ConnCache: Caching released connection for jdbc:oracle:thin:@//localhost:1521/xe/U2
16/10/19 20:52:24 ERROR tool.ImportTool: Imported Failed: There is no column found in the target table T1. Please ensure that your table name is correct.

2 ответа

Решение

Проблема заключается в чувствительности к регистру имени таблицы и имени пользователя.

Согласно документам sqoop,

  1. Укажите имя пользователя, к которому подключается Sqoop, в верхнем регистре (если только он не был создан со смешанным / нижним регистром в кавычках).

  2. Укажите имя таблицы, с которой вы работаете, в верхнем регистре (если оно не было создано в смешанном / нижнем регистре в кавычках).

Возможно, вам придется использовать что-то вроде этого sqoop import -–connect jdbc:oracle:thin:system/system@localhost:1521:xe

Другие вопросы по тегам