当前位置:网站首页 > 数据科学与大数据 > 正文

sqlldr导入大量文件的数据(sqlldr导入数据不全)



本文可協助您解決從 SQL Server 擷取數據時錯誤。

原始產品版本: SQL S
原始 KB 編號:

存取 Active Server Pages 中的記錄集時,會發生下列錯誤 (ASP) 檔案,其中包含 或 輸入 SQL 數據表中的數據:

Microsoft OLE DB Provider for ODBC Drivers 錯誤 ''

下列情況可能會導致發生錯誤:

文字/Blob 欄位會依其他欄位類型的順序選取。

處理來自 Microsoft SQL Server 的 BLOB 欄位時,您必須將它們放在結果集非 BLOB 資料行的右邊。 為了安全起見,您也應該以從左至右的順序讀取數據行,因此如果您在結果集中有兩個 BLOB 資料行做為最後兩個數據行,請先讀取第一欄,然後讀取第二欄。 請勿以相反的順序讀取它們。

若要示範欄位選取的正確順序,請在 Visual InterDev 專案中建立新的 ASP 頁面,並將下列程式代碼貼到空白的 ASP 頁面中。 變更 連接字串 以連線到您的 SQL Server:

 
  

產生此錯誤是系統刻意為之。 不過,使用 Mdac 2.1 sp2 或更新版本搭配 3.7 驅動程式或更新版本進行 SQL Server 時,並不會發生此情況。

SQL Server 會在網路上傳回數據,而用戶端基本上會在網路網路上循序接收讀取的位數據流。 使用系結數據行 (也就是,這些值可以複製到本機記憶體緩衝區,並在該處快取) ,驅動程式會將這些數據行中的數據傳輸到記憶體緩衝區。 一旦數據在本機緩衝區中,您就可以依任何順序讀取數據。 因此,當所有數據行系結 (不是 BLOB) 時,您可以依任何順序讀取結果數據行。

當您包含 BLOB 數據行時,數據行的長度大約可以是 2 GB,而且數據存取連結庫通常不會繫結這些數據行,因為驅動程式通常無法判斷 BLOB 在擷取之前有多大。 此外,數據存取連結庫通常會避免快取 BLOB 數據,因為這可能會耗用大量記憶體,而且會在數據存取連結庫中快取它,而且您的應用程式效率不佳。 如果要求數據存取驅動程式傳回 BLOB 數據行的內容,它通常會捨棄要求之 BLOB 數據行前面的非系結數據行,因為它必須先擷取循序數據流,才能讀取要求的數據行。 因此,從左至右讀取結果集會更有效率,因為這符合擷取數據的方式

或許更好的替代方法是避免使用 Text 數據行。 因為 SQL Server 以 2K 區塊配置空間,所以如果文字長度很小,使用 Text 數據行可能會導致記憶體的使用效率不佳。 備份時間也會受到影響,因為傾印事務歷史記錄需要較長的時間。 通常最好是建立另一個具有現有數據表 PK、區塊編號數據行和 數據行的數據表。 將文字分割成所需的 255 個字元區塊,並在新的數據表中插入與區塊一樣多的數據列。 通常值得額外的編碼時間,因為您可以更有效率地使用記憶體,而備份的速度會更快。

到此这篇sqlldr导入大量文件的数据(sqlldr导入数据不全)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • cmip6降尺度流程图(cmip6降水数据)2025-11-27 07:09:10
  • java spring boot 数据库密码解密(spring对数据库密码解密)2025-11-27 07:09:10
  • 大数据学什么(大数据学什么语言好)2025-11-27 07:09:10
  • ad9959中文数据手册(ad9516中文数据手册)2025-11-27 07:09:10
  • iotdb数据库(iotdb数据库指令)2025-11-27 07:09:10
  • mpu6050读不出数据(mpu9250spi读取)2025-11-27 07:09:10
  • iotdb数据库重启(数据库服务器重启怎么重启oracle数据库)2025-11-27 07:09:10
  • 大数据培训心得(大数据培训心得体会)2025-11-27 07:09:10
  • mongodb数据库和mysql区别(mongodb和mysql性能对比)2025-11-27 07:09:10
  • 3dtile数据下载(3d数据模型下载)2025-11-27 07:09:10
  • 全屏图片