Oracle
 sql >> Baza danych >  >> RDS >> Oracle

jak wykonać funkcję z TOAD dla Oracle i powiązać wynik z siatką danych?

Po kilku poszukiwaniach znalazłem odpowiedź na swój własny problem. Załóżmy, że typ Twojej zmiennej varray nazywał się varchar_pair_array, a obiekty przechowywane w tej tablicy nosiły nazwę varchar_pair_object. varchar_pair_object to prosty obiekt, który ma dwie varchary jako składowe.

Oto kod do wykonania proc, który przyjmuje zmienną 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;

Skopiuj, wklej ten kod w edytorze sql TOAD i zmień go, aby dostosować się do funkcji i typów, a następnie naciśnij F9. TOAD zapyta o typ zmiennej :to_grid. Wybierz kursor (zakładając, że twoja funkcja zwraca kursor ref) i naciśnij Enter. TOAD powiąże zestaw wyników z siatką danych.

Linki, które mi pomogły:

http://www.smart-soft .co.uk/Oracle/oracle-plsql-tutorial-part-11.htm (dobry samouczek na temat kolekcji)http:/ /download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/10_objs.htm#1972 (szczególnie przydatna w tym przypadku jest sekcja dotycząca deklarowania i inicjowania obiektów)

Z niewielką zmianą to samo można zrobić za pomocą procedury.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja ACOS() w Oracle

  2. sprawdź, czy jest to funkcja liczbowa w Oracle

  3. Czy istnieje sposób na wybranie kilku wierszy za pomocą parametrów?

  4. Powiązanie zmiennej z nazwą tabeli za pomocą cx_Oracle

  5. Przykłady zapytań MySQL z odpowiedziami