ORA-01754: a table may contain only one column of type LONG
Hive Metastore Schema(package.jdo)對 Oracle 定義了多個 LONG VARCHAR 欄位,Oracle 限制**每張表僅能有一個 LONG 類型欄位**(已棄用,建議用 CLOB)。
hive-metastore-.jar 。package.jdo:將所有 LONGVARCHAR 替換為 CLOB。$HIVE_HOME/lib 下原檔案。schematool -initSchema -dbType oracle 初始化。Hive 啟動時若檢測到資料庫已存在表,**不會自動修改欄位類型**。必須在乾淨資料庫上重新建表,新的 JDO 定義才會生效。
$HIVE_HOME/scripts/metastore/upgrade/oracle/ 下有現成 SQL,可直接在 Oracle 執行建表/修改欄位,再啟動服務。
通常為端口衝突(10000)、日誌級別過低、或 Metastore 連不上。檢查 hive-server2.log,確認 hive.metastore.uris 指向正確 Thrift 服務。