sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kortlægger man TYPETABEL AF VARCHAR2(5) i java?

Jeg var i stand til at kortlægge en typetabel af varchar2 til java som følger:

  1. Opret en ny type uden for enhver PLSQL-pakke og giv de nødvendige tilladelser.

     CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (100);
     /
     GRANT all ON MYSCHEMA.STRARRAY TO MYUSER1;
     /
     commit;
    
  2. Opret en PLSQL funktion, der accepterer/returnerer strarray. Dette blev erklæret i pakkespecifikationen og skrevet i sin helhed i pakkens krop. Selvom jeg erklærede arrayet for at være IN OUT, bruger jeg i min implementering kun outputtet fra PLSQL-kaldet.

    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. Kald proceduren i java. I dette eksempel er variablen conn af datatypen Connection og er allerede blevet initialiseret. Jeg kører en tynd jdbc-klient mod en Oracle-database.

    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. Sådan skriver du forespørgsel i MySQL til JSON-arrayobjekter

  2. Codeigniter-model med flere opdateringsbetingelser ved hjælp af manual where-erklæring

  3. T-SQL-fejl, faldgruber og bedste praksis – vinduesfunktioner

  4. Samlet strengsammenkædning i Oracle 10g