sql >> Database >  >> RDS >> Oracle

hoe voer ik een functie van TOAD voor Oracle uit en bind ik het resultaat aan een gegevensraster?

Na wat rondzoeken vond ik het antwoord op mijn eigen probleem. Stel dat uw varray-type varchar_pair_array heette en de objecten die in deze array zijn opgeslagen, varchar_pair_object. varchar_pair_object is een eenvoudig object dat twee varchars als leden heeft.

Hier is de code voor het uitvoeren van een proc die een varray van varchar_pair_object (s) inneemt:

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;

Kopieer en plak deze code in de sql-editor van TOAD en wijzig deze om deze aan te passen aan uw functie en typen en druk op F9. TOAD zal je het type van de :to_grid variabele vragen. Selecteer cursor (ervan uitgaande dat uw functie een ref-cursor retourneert) en druk op enter. TOAD zal de resultaatset binden aan een gegevensraster.

Links die me hebben geholpen:

http://www.smart-soft .co.uk/Oracle/oracle-plsql-tutorial-part-11.htm (goede tutorial over collecties)http:/ /download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/10_objs.htm#1972 (vooral handig in dit geval is de sectie over het declareren en initialiseren van objecten)

Met heel weinig verandering kan hetzelfde worden gedaan met een procedure.




  1. Selecteer het grootste getal uit de MYSQL-tabel met toegevoegd voorvoegsel

  2. Black-outs met EMCLI

  3. retourneer alle kolommen in een MySQL-tabel in een tekenreeksindeling

  4. Upload meerdere afbeeldingen en sla hun pad op in de database