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

Làm thế nào để ánh xạ TYPE TABLE OF VARCHAR2 (5) trong java?

Tôi đã có thể ánh xạ một bảng loại varchar2 sang java như sau:

  1. Tạo một kiểu mới bên ngoài bất kỳ gói PLSQL nào và cấp các quyền cần thiết.

     CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (100);
     /
     GRANT all ON MYSCHEMA.STRARRAY TO MYUSER1;
     /
     commit;
    
  2. Tạo một hàm PLSQL chấp nhận / trả về strarray. Điều này đã được khai báo trong đặc tả gói và được viết đầy đủ trong phần thân gói. Mặc dù tôi đã khai báo mảng là IN OUT, trong quá trình triển khai, tôi chỉ thực sự sử dụng đầu ra từ lệnh gọi PLSQL.

    PROCEDURE getArr(arr_var IN OUT strarray) IS
      counter NUMBER := 1;
    BEGIN
      arr_var := new strarray();
      WHILE counter <= 10 LOOP
        arr_var.extend();
        arr_var(counter) := 'my data string';
      END LOOP;
    END getArr;
    
  3. Gọi thủ tục trong java. Trong ví dụ này, biến conn có kiểu dữ liệu là Kết nối và đã được khởi tạo. Tôi đang chạy một ứng dụng mỏng jdbc dựa trên cơ sở dữ liệu Oracle.

    CallableStatement proc = null;
    String sql = "{ call myPackage.getArr(?) }";
    try{
      proc = conn.prepareCall(sql);
      proc.registerOutParameter(1, OracleTypes.Array, "MYSCHEMA.STRARRAY");
      proc.execute();
      Array arrOut = proc.getArray(1);
      for (int num=0; num<10; num++){
         System.out.println(arrOut[num]);
    }finally{
      proc.close();
    }
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt phiên bản SDE trong nguồn luồng dữ liệu SSIS

  2. ORA-01027:ràng buộc các biến không được phép định nghĩa dữ liệu khi cố gắng sử dụng if elseif

  3. Có cách nào khác để tạo các ràng buộc trong quá trình tạo bảng SQL không?

  4. Cách chuyển tham số DateTime trong truy vấn SQL cho Oracle DB

  5. SQL Developer 4.1.3 đã được phát hành