1

データベース (Oracle および Impala) に varchar2 フィールドがあり、このフィールドに文字列フィールドを挿入したいと考えています。通常どおり、値を文字列として挿入できませんでした。次のエラーが発生しました

AnalysisException: ターゲット テーブル 'test01.testdcr' の精度が失われる可能性があります。式 ''data1 data2 data3 data4 '' (タイプ: STRING) は、列 'testVarchar2Field' の VARCHAR(128) にキャストする必要があります

table への挿入中に文字列変数を varchar2 に変換するにはどうすればよいですか?

4

1 に答える 1

2

documentationsから、次のように機能するキャスト関数があります。

select concat('Here are the first ',10,' results.'); -- Fails
select concat('Here are the first ',cast(10 as string),' results.'); -- Succeeds

彼らはまた、この他の例を別の場所で述べています:

式の結果、特に組み込み関数呼び出しの結果を INT、SMALLINT、TINYINT、FLOAT などの小さな数値列に挿入する場合、CAST() 式を使用して値を適切な列に強制変換する必要がある場合があります。タイプ。Impala は、大きい型から小さい型に自動的に変換しません。たとえば、コサイン値を FLOAT 列に挿入するには、INSERT ステートメントに CAST(COS(angle) AS FLOAT) を記述して、変換を明示的にします。

それはあなたの問題を解決しませんか?

于 2016-06-17T15:20:59.950 に答える