來個程式碼吧, 這樣比較好解釋.
object a1 = 1;
object a2 = 1;
Console.WriteLine(string.Format("object a1==a2 {0}", a1 == a2));//false
這個方法會使用型別 T 的預設比較子 Comparer<T>.Default,以判斷清單項目的順序。 Comparer<T>.Default 屬性會檢查型別 T 是否實作 IComparable<T> 泛型介面,並使用該實作 (如果可用的話)。 如果不是,則 Comparer<T>.Default 會檢查型別 T 是否實作 IComparable 介面。 如果型別 T 不實作這兩種介面,則 Comparer<T>.Default 會擲回 InvalidOperationException。
沒想到要在 C# 中使用, Thread Pool 這麼簡單.
如下簡單範例, 當然實際的程式不可能這樣, 但這是一個好入門概念.
using System;
using System.Collections.Generic;
using System.Linq;
imp 遇到以下的錯誤, 這是怎樣一回事.
m_row$$ 這個欄位心裡有印象, 記得在以下兩種情況, oracle 都會幫忙建一個 unique index, 裡面就是這個欄位. 心裡有這個印象, 但沒有特別去注意 ...
1. 建 mview 沒有 PK 時.
2. 做 online redefinition 沒有 PK 時.
IMP-00058: ORACLE 錯誤 904 發生
像我們使用 oracle, 如果要將一個 Table 的資料自 A DB 複製到 B DB, 當然有很多做法, 像使用 MView 就是一個極為簡單的解決方案, 但如果是多個要複製到一個, 例如 A, C DB 複製到 B DB, 又不想因為 A DB 有問題中斷服務, 導致 C DB 的資料沒有複製到 B DB. 目前想到的就是自己使用 Trigger 做 Replication 的行為.
舉一個最簡單的例子, 假設要處理一個產品定義的 Prod Table, Schema 如下, 我們將對這一個 table 所做的 DML 都記錄起來, 然後再將這些 DML 拿到目的 DB 去執行就可以達成我們的目的.
--要複製資料的 table, PK {prod_id}
CREATE TABLE Prod
(prod_id VARCHAR2(64),
ORA-14402: updating partition key column would cause a partition change
這是一個發生在 Partition Table 的問題, 例如我們以 Save_Time 當做分割 Partition 的欄位, 且一個月一個 Partition. 所以假設我們的 Table 裏有下列的 Partition.
PARTITION BY RANGE (Save_Time)
(
PARTITION Par_2010_01 VALUES LESS THAN (TO_DATE(' 2010-02-01 ','YYYY-MM-DD')) TABLESPACE TBS_2010_01,
這一個錯誤是因為 Bug# 6966286 導致, 可能發生的版本於 10.2 ~ 11.2.
嚴重可以使 DB Crashed, 有 patch Set , 所以遇到了, 就上一上問題就解了.
如果不行, 也可以 set _library_cache_advice = false
誤刪 oracle data file 有怎樣的情況呢?
1. 輕微的, select 到的 table 是儲存此 data file 會有 error.
2. DB Crashed.
如果只是狀況一, 可以直接將該 table 所屬的 table space(如果沒有別的 table 使用), table 刪除.
如果是狀況二, 也很簡單.