Tôi cố gắng để thực hiện một truy vấn đối với oracle với mệnh đề where bao gồm0x80040e51 Mô tả: "Nhà cung cấp không thể lấy được thông tin tham số và SetParameterInfo chưa được gọi."
BETWEEN date AND date2
Vòng đầu tiên của nghiên cứu cho thấy rằng các nhà cung cấp oracle OLEDB không cho phép truy vấn tham số, và những nên được đặt trong các biến. Vì vậy, tôi đã tạo 3 biến. 2 tổ chức ngày của tôi được dân cư một cách chính xác, và một để giữ truy vấn với biểu thức kết thúc vào:
BETWEEN to_date('" + (DT_WSTR, 30)@[User::lastRun] + "','DD/MM/YYYY HH:MI:SS AM') AND to_date('" + (DT_WSTR, 30) @[User::thisRun] + "','DD/MM/YYYY HH:MI:SS AM')"
Khi tôi bấm vào nút "Đánh giá Expression" trong xây dựng biểu thức, nó đánh giá một cách chính xác để
BETWEEN to_date('1/1/1900','DD/MM/YYYY HH:MI:SS AM') AND
to_date('1/1/2010','DD/MM/YYYY HH:MI:SS AM')
Và tôi có thể chạy điều này đối với thành công bằng cách sử dụng các công cụ khác.
Nhưng khi tôi cố gắng chạy gói, tôi nhận được:
[mySource 1 ] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E51. An OLE DB record is available. Source: "OraOLEDB" Hresult: 0x80040E51 Description: "Provider cannot derive parameter information and SetParameterInfo has not been called.".
đâu mySource là OLE DB Nguồn. Nó có AccessMode được đặt thành "SQL Command From Variable" và SQLCommandVariable được đặt thành biến truy vấn của tôi.
Tôi cũng đã cố gắng tự thiết lập tất cả các cột bên ngoài Output, và thay đổi một số giá trị tôi đã chọn trong truy vấn để ném cái datatype oracle NGÀY:
to_char(PT.CREATED_DTTM,'DD/MM/YYYY HH:MI:SS AM')
tôi vẫn còn khá mới SSIS, vì vậy tôi thậm chí không chắc chắn tôi đang tìm kiếm ở vị trí chính xác cho thư mục gốc của lỗi này. Bất cứ ai có ý tưởng đi đâu từ đây?
Ảnh chụp màn hình theo yêu cầu. Như bạn có thể thấy truy vấn "từ biến" hoạt động như mong đợi ở chế độ xem trước, nhưng khi tôi cố gắng thực hiện nó, tôi nhận được lỗi.
Có, 2 trường hợp đầu tiên được điền bằng cách thực thi tác vụ SQL. Khi tôi hiển thị biến đánh giá đúng (nhưng với giá trị mặc định của hai biến ngày đầu tiên) "Khi tôi nhấp vào 'Đánh giá Biểu thức' trong trình tạo biểu thức, nó sẽ đánh giá chính xác thành" – slipsec
Tôi sẽ thêm ảnh chụp màn hình vào ngày mai khi tôi quay lại trước của máy tính đó. Bây giờ, tôi có thể nói rằng bản xem trước cho thấy rằng truy vấn thực hiện đúng - vấn đề có liên quan đến việc thêm nó vào nguồn OLEDB. – slipsec
Đã thêm ảnh chụp màn hình theo yêu cầu. Tôi chỉ lập bản đồ một Cột đầu ra cho đến khi nó hoạt động. – slipsec