我有一個名爲「preference」的表,其中包含超過100列的oracle,我寫了一點點複雜的SQL,需要使用關鍵字UNION/INTERSECT/MINUS來執行查詢。 舉一個簡單的例子:問題發生在Oracle的clob上union minus
select a.* from preference a where a.id = ? union
select a.* from preference a where a.id = ?
業務護理已被更改,由於需求無限長度的字符串存儲。一列需要重新定義爲Clob類型。 Oracle不允許clob類型的聯合,所以理想情況下a。*不能在這裏使用。
我改變SQL下面喜歡:
select a.a,a.b,a.c... from preference a where a.id = ? union
select a.a,a.b,a.c... from preference a where a.id = ?
它列出的所有列,除了CLOB,然後我必須做的另一個選擇的CLOB值附加在一起。這是一個好主意嗎?
上述情況帶來的另一個問題是:正如我所提到的,這個表有大列,列出了sql中的所有列,使得SQL變得更長。有沒有表達我可以選擇所有列,但擺脫具體的一個?
感謝您的回覆,我正在使用JDBC與Oracle交談,clob並沒有那麼大(一般小於10000字節),對於系統性能方面的擔憂,我們正在將常用數據加載到內存中。該示例不是真實的情況,所以我必須在此SQL條件中使用UNION/INTERSECT/MINUS。 –
我現在關心的SQL很長,因爲它列出了每一列,這會影響oracle的執行性能嗎?是否有任何SQL語言可以選擇希望解釋的所有列 –