我正嘗試使用Toad將Excel電子表格導入Oracle。問題在於我導入的表有一個主鍵字段,我使用「sequence」.nextval來填充正常的存儲過程插入。我嘗試把'table_seq.nextval'作爲表達式放入,但是當我在最後執行嚮導時出現錯誤:無法將類型(UnicodeString)的變體轉換爲類型(Double) 。使用Toad將Excel電子表格導入到Oracle
那麼是否有可能使用帶有Toad導入嚮導的sequence.nextval導入Excel數據,或者有更好的方法嗎?
我也給了一些想法,讓Excel通過開始超出當前表中的種子來生成密鑰。但是對於Oracle而言,這是否會破壞我爲表格設置的順序?例如,如果在插入之前,下一個可用的ID是500,而Excel的插入插入的行是500到5000,那麼下一次執行該表序列的存儲過程時是否會嘗試使用500?
在此先感謝!
我想到這個問題,但也不會我需要更新我的所有存儲過程,除去從嵌入式.nextval聲明? – indianapolymath
您可以在將序列值分配給觸發器之前檢查:new.id是否爲空。這將允許您的存儲過程保持不變。 – GriffeyDog
indianapolymath,這不會是一個真正的問題。對於每條記錄,該順序將被提取兩次,並且只有來自觸發器的順序將保留在表中,因爲觸發器將覆蓋該過程。但@griffeydog是正確的,你可以檢查觸發器:new.id爲null,然後從序列中分配值。但是:我建議你只有一個地方給id賦值,這在這種情況下是觸發器。 –