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

hvordan udfører jeg en funktion fra TOAD til Oracle og binder resultatet til et datagitter

Efter lidt søgen rundt fandt jeg svaret på mit eget problem. Lad os sige, at din varray-type hed varchar_pair_array, og at objekterne, der er gemt i dette array, hed varchar_pair_object. varchar_pair_object er et simpelt objekt, der har to varchars som medlemmer.

Her er koden til at udføre en proc, der tager en varray af varchar_pair_object(s):

DECLARE 
  RetVal SYS_REFCURSOR;
  a_simplevalue VARCHAR2(200);
  another_simplevalue VARCHAR2(200);
  my_array_of_varchar_pairs VARCHAR_PAIR_ARRAY; -- assume varchar_pair_array is defined somewhere else
  my_obj VARCHAR_PAIR_OBJECT; -- assume varchar_pair_object is defined somewhere else
  my_other_obj VARCHAR_PAIR_OBJECT;
BEGIN 
  a_simplevalue := 'hello';
  another_simplevalue := 'there';
  my_obj := VARCHAR_PAIR_OBJECT('nice to meet you', 'greetings');
  my_other_obj := VARCHAR_PAIR_OBJECT('goodbye', 'ciao');
  my_array_of_varchar_pairs := VARCHAR_PAIR_ARRAY(); 
  my_array_of_varchar_pairs.EXTEND(2); -- this should be the number of objects you plan to put into the array
  my_array_of_varchar_pairs(1) := my_obj;
  my_array_of_varchar_pairs(2) := my_other_obj; 

  RetVal := my_function ( a_simplevalue, another_simplevalue, my_array_of_varchar_pairs); -- assuming your array takes two varchars and one array of VARCHAR_PAIR_OBJECT (s)
  :to_grid := RetVal;

END;

Kopiér indsæt denne kode i TOADs sql-editor og skift den til at tilpasse sig din funktion og typer og tryk på F9. TOAD vil spørge dig om typen af ​​variablen :to_grid. Vælg cursor (forudsat at din funktion returnerer en ref-markør) og tryk enter. TOAD vil binde resultatsættet til et datagitter.

Links, der hjalp mig:

http://www.smart-soft .co.uk/Oracle/oracle-plsql-tutorial-part-11.htm (god vejledning om samlinger)http:/ /download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/10_objs.htm#1972 (særligt nyttigt i dette tilfælde er afsnittet om deklarering og initialisering af objekter)

Med meget lidt ændring kan det samme gøres med en procedure.




  1. Yii2 gemmer fil til Oracle BLOB

  2. Send ArrayList fra Android til php MySQL

  3. Syntaksfejl i mysqldump-kommandoen

  4. FEJL:ekstra data efter sidste forventede kolonne ved brug af PostgreSQL COPY