Rumah >pangkalan data >tutorial mysql >Mengapa Pakej SSIS Saya Gagal Apabila Mendapatkan Metadata daripada Jadual Sementara?

Mengapa Pakej SSIS Saya Gagal Apabila Mendapatkan Metadata daripada Jadual Sementara?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 05:13:10696semak imbas

Why Does My SSIS Package Fail When Retrieving Metadata from Temporary Tables?

Kegagalan Pengambilan Metadata dalam Pakej SSIS Kerana Jadual Sementara

Dalam SSIS, mendapatkan semula metadata daripada jadual sementara kadangkala boleh menyebabkan pakej gagal dengan ralat: "Ralat tidak ditentukan. Rekod OLE DB tersedia. Metadata tidak dapat ditentukan kerana pernyataan 'pilih * daripada '##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1'' menggunakan jadual temp."

Isu ini timbul apabila pakej cuba mengakses jadual sementara global bernama "##TmpMcsConfigurationDeviceHistory." Ralat menunjukkan bahawa SSIS tidak dapat menentukan metadata jadual temp secara dinamik.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh mentakrifkan secara eksplisit metadata untuk temp jadual menggunakan klausa WITH RESULT SETS. Ini memberikan SSIS maklumat yang diperlukan terlebih dahulu, menghapuskan keperluan untuknya menentukan metadata secara dinamik, yang boleh menyebabkan kegagalan untuk jadual temp.

Contoh Pertanyaan dengan SET HASIL:

EXEC ('
    CREATE TABLE #a 
      (
        MyIntegerColumn INT NOT NULL,
        MyTextColumn VARCHAR(50) NULL,
        MyOtherColumn BIT NULL
      ) 
    INSERT INTO #a 
      (
        MyIntegerColumn,
        MyTextColumn,
        MyOtherColumn
      )
    SELECT 
        1 AS MyIntegerColumn,
        ''x'' AS MyTextColumn,
        0 AS MyOtherColumn

    SELECT MyIntegerColumn, MyTextColumn, MyOtherColumn
    FROM #a')

WITH RESULT SETS
    (
        (
            MyIntegerColumn INT NOT NULL
           ,MyTextColumn VARCHAR(50) NULL
           ,MyOtherColumn BIT NULL
        )
    )

Dengan menyediakan metadata secara eksplisit, SSIS boleh mengelak daripada mendapatkannya secara dinamik daripada jadual temp, menghapuskan ralat dan membolehkan pakej mengambil metadata dengan jayanya.

Atas ialah kandungan terperinci Mengapa Pakej SSIS Saya Gagal Apabila Mendapatkan Metadata daripada Jadual Sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn