Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

làm cách nào tôi có thể lấy ra một tham số là varchar2 trong oracle

Có không ít hơn 10 lần quá tải OracleParameterCollection.Add phương pháp. Có vẻ như bạn đã vô tình gọi nhầm.

Tôi tin rằng người bạn muốn là Add(string, OracleDbType, int, object, ParameterDirection) , trong trường hợp đó, bạn chỉ thiếu một giá trị cho đối tượng object tham số. Tham số này phải chứa giá trị ban đầu cho tham số Oracle mà bạn đang sử dụng. Tuy nhiên, trong trường hợp của bạn, giá trị ban đầu không quan trọng vì nó là out tham số. Thêm null sau 50 và lệnh gọi thủ tục được lưu trữ của bạn sẽ thành công.

Người bạn đã gọi là Add(string, OracleDbType, object, ParameterDirection) . Kích thước 50 đã được hiểu là một giá trị ban đầu cho tham số. Tôi không chắc làm thế nào để diễn giải lỗi mà Oracle trả về ("lỗi số hoặc giá trị") - điều đó ngụ ý với tôi rằng Oracle đã cố gắng chuyển đổi một chuỗi thành một số và không thành công. Có lẽ giá trị 50 ghi đè kiểu OracleDbType.Varchar2 và vì vậy Oracle mong đợi một số hơn là một chuỗi?

Có một số vấn đề khác mà tôi phát hiện:

  • Nên command.Parameters["SP_REQ_NUM"] be command.Parameters["SP_NUM"] ?
  • Thủ tục đã lưu trữ của bạn không trả về một số; gọi Convert.ToInt32 trên một chuỗi chẳng hạn như 201405 001 sẽ thất bại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng đối tượng CŨ và MỚI cho các hoạt động động bên trong trình kích hoạt

  2. Tôi không hiểu tại sao nhóm của tôi không thành công

  3. Soundex với các số dưới dạng tham số Chuỗi

  4. 12c Kế hoạch Thích ứng

  5. Sự khác biệt giữa kết nối trình điều khiển OCI và THIN với kết nối nguồn dữ liệu giữa java và oracle XE là gì?