2015/8/5

[Database] Teradata 3521 Table reference(s) detected where constants expected

在工作上又遇到 Teradata 的問題了,這次是在 Teradata 新增資料的時候,遇到了 3521 的錯誤代碼,一樣請谷歌大神來解惑吧。

我們先來看看谷歌大神怎麼跟我們解釋 Teradata 3521 的錯誤。

In INSERT statements, the right-most side of the assignments must either be constants or expressions that contain only constants.

看起來果然是 INSERT 的問題,但是後面那句是什麼意思呢?其實就是在新增資料的時候,在產生或取得所有新增的資料欄位值的時候,都必須要是一般數值或資料,不能呼叫函式 (function) 來處理資料。

因為我們在新增資料時,有個欄位資料是要加密過的,所以呼叫 ENCRYPT(123, encrpt_key.key_val)。這樣的函式呼叫方式,是不能直接使用在 INSERT INTO … VALUES () 裡面,而要改用 INSERT INTO … SELECT 的方式才能成功。

相關連結:
[Teradata] 3521   Table reference(s) detected where constants expected.

沒有留言:

張貼留言