2014-04-21 16 views
0

Oracle文檔說2個連接字段返回字符類型,但字符類型最大長度是2000字節。2個連接字符列的結果有哪些數據類型?

在我的情況下,兩列有一個字符類型,每列的長度爲2000字節。

實施例:

create table temp(
     column_1 char(2000), 
     column_2 char(2000) 
    ); 

select column_1 || column_2 from temp; 

回答

1

Oracle docs

連接兩個字符串的結果是另一個字符 字符串。 如果兩個字符串的數據類型都是CHAR,則結果爲 數據類型爲CHAR,並且限制爲2000個字符。如果任一字符串的數據類型爲VARCHAR2, ,則結果的數據類型爲VARCHAR2,並且限制爲4000個字符。如果 兩個參數都是一個CLOB,則結果是一個臨時CLOB。尾隨 字符串中的空白通過串聯保留,而不管字符串或CLOB的數據類型爲 。

所以這意味着當你連接兩個長度爲2000的字段時,連接後它將是一個長度爲2000的CHAR類型,其餘的將被忽略。

+0

如果兩列有varchar2(4000)類型,連接後它還會被忽略嗎?我很困惑 – user3555529

+0

@ user3555529: - 不,那麼它不會被忽略! –

+0

據我所知,當列有char數據類型時,忽略會起作用。謝謝! – user3555529