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

Tìm nạp giá trị trả về mảng pl / sql trong java

Tôi đã không làm điều đó với ARRAY nhưng nó sẽ hoạt động. Đầu tiên, bạn phải đăng ký out tham số của chức năng của bạn. Vì vậy, nó có thể như thế này.

private final String PRODECURE_NAME = "{? = call <ProcedureName>(?,?,?)}";

Connection con = null;
CallableStatement cs = null;

       try {
            con = DAOFactory.getDatabaseConnection();
            cs = con.prepareCall(PRODECURE_NAME);
            cs.registerOutParameter(1, java.sql.Types.ARRAY);
            cs.setYourType(2, <yourData>);
            cs.setYourType(3, <yourData>);
            cs.setYourType(4, <yourData>);
            cs.execute();
            Array arr = cs.getArray(1);
            if (arr != null) {
               String[] data = (String[]) arr.getArray();
            }
        } 
        catch (SQLException ex) {
            Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
            try {
                con.rollback();
            }
        }
        finally {
            if (con != null) {
                try {
                    con.close();
                } 
                catch (SQLException ex) {
                    Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

Hãy thử người đàn ông này và cho tôi sau đó càng ngày càng ướt nó có làm được hay không.

CHỈNH SỬA:

Những ký tự này ? đại diện cho một tham số mà bạn sẽ đặt (nó được đặt tên là tham số). Vì vậy, thế này:

cs.setYourType(2, <yourData>);
cs.setYourType(3, <yourData>);
cs.setYourType(4, <yourData>);

có nghĩa là bạn đặt ba tham số của mình (?), tham số đầu tiên của phương thức là chỉ mục cột và thứ hai là dữ liệu của bạn thuộc loại cụ thể của bạn.

CHỈNH SỬA 2:

Rất tiếc, tôi đã viết giải pháp không tốt, đã được cập nhật nên hãy kiểm tra mã ngay bây giờ và thử nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Kết hợp nhiều kết quả trong một truy vấn con thành một giá trị được phân tách bằng dấu phẩy

  2. Oracle - Bảng sao chép - Cấu trúc, ràng buộc dữ liệu và tất cả

  3. Tìm nạp loại bảng Oracle từ thủ tục được lưu trữ bằng JDBC

  4. Tìm số ký tự và số trong một chuỗi

  5. Hàm TANH () trong Oracle