Oracle
 sql >> база данни >  >> RDS >> Oracle

как да изпълня функция от TOAD за Oracle и да обвържа резултата с мрежа от данни

След известно търсене наоколо намерих отговора на собствения си проблем. Да кажем, че типът на вашия масив се нарича varchar_pair_array и обектите, съхранени в този масив, се наричат ​​varchar_pair_object. varchar_pair_object е прост обект, който има два varchar като членове.

Ето кода за изпълнение на процедура, която приема варрей от 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;

Копирайте и поставете този код в sql редактора на TOAD и го променете, за да се адаптира към вашата функция и типове и натиснете F9. TOAD ще ви попита за типа на променливата :to_grid. Изберете курсор (ако приемем, че вашата функция връща референтен курсор) и натиснете Enter. TOAD ще свърже набора от резултати към мрежа от данни.

Връзки, които ми помогнаха:

http://www.smart-soft .co.uk/Oracle/oracle-plsql-tutorial-part-11.htm (добър урок за колекции)http:/ /download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/10_objs.htm#1972 (особено полезен в този случай е разделът за деклариране и инициализиране на обекти)

С много малка промяна същото може да се направи с процедура.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00904:невалиден идентификатор в този случай

  2. Материализиран изглед - Oracle/данните не се актуализират

  3. Създайте диапазони от минути (15) в select

  4. Как да преконфигурирате Oracle 10g xe на Linux

  5. Грешка при изключване на PDB ORA-17528