Cập nhật: - Rõ ràng là sau một chút nghiên cứu (vì tôi không làm việc với Oracle) ADODB không hỗ trợ adVariant
(là 12
) và bạn nên sử dụng adVarChar
(là 200
) thay vào đó.
Xem Đáp:Quy trình gọi ASP cổ điển được lưu trữ trên Oracle với Trình điều khiển OraOleadb
Để lại phần còn lại của câu trả lời bên dưới vì nó có thể vẫn có liên quan sau khi vấn đề này được khắc phục.
Nguyên nhân của lỗi cụ thể đó thường là loại dữ liệu không khớp khi ADODB trao đổi với nhà cung cấp được xác định bởi kết nối.
Chỉ cần nhìn vào định nghĩa thủ tục trong Oracle so với ADODB.Command
của bạn đối tượng mà tôi có thể thấy rằng p_return
tham số dường như không chính xác. Tôi nói về điều này trong câu trả lời trước
cho một câu hỏi tương tự
.
Theo Ánh xạ loại dữ liệu
(một tài nguyên tuyệt vời cho Ánh xạ loại dữ liệu trong ADO) adInteger
(là 3
) ánh xạ tới Int
trong Oracle không phải Number
. Thay vào đó, bạn nên sử dụng adNumeric
(là 131
) sẽ sửa lỗi cụ thể đó.
Hãy thử thay đổi dòng này
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
đến
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
Các liên kết hữu ích
- Đ:Sử dụng Thủ tục được Lưu trữ trong ASP Cổ điển .. thực thi và nhận kết quả
- Đáp:ADODB. Lỗi tham số '800a0e7c' Đối tượng tham số được xác định không đúng. Thông tin không nhất quán hoặc không đầy đủ đã được cung cấp
(khuyến nghị điều này để tìm hiểu cách sử dụng
METADATA
trongglobal.asa
để luôn có sẵn Hằng số được đặt tên ADO cho Ứng dụng web ASP)