كيف يمكنني تنفيذ وظيفة من الضفدع لأوراكل وربط النتيجة بشبكة بيانات

StackOverflow https://stackoverflow.com/questions/2829391

  •  26-09-2019
  •  | 
  •  

سؤال

لديّ وظيفة تأخذ كأحد الحجج في كائنات PL/SQL. كيف يمكنني تنفيذ هذا الإجراء المخزن وربط مجموعة النتائج التي تعود إلى شبكة بيانات في الضفدع لأوراكل؟

هل كانت مفيدة؟

المحلول

بعد بعض البحث حولها ، وجدت الإجابة على مشكلتي الخاصة. لنفترض أن نوع varray الخاص بك كان يسمى varchar_pair_array وتم تسمية الكائنات المخزنة في هذه الصفيف varchar_pair_object. varchar_pair_object هو كائن بسيط يحتوي على varchars كأعضاء.

فيما يلي رمز تنفيذ proc يأخذ في varray من 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. سوف يربط الضفدع النتيجة التي تم تعيينها على شبكة بيانات.

الروابط التي ساعدتني:

http://www.smart-soft.co.uk/oracle/oracle-plsql-tutorial-bart-11.htm (تعليمي جيد على المجموعات)http://download.oracle.com/docs/cd/b10501_01/appdev.920/a96624/10_objs.htm#1972 (مفيد بشكل خاص في هذه الحالة هو قسم إعلان الكائنات وتهيئتها)

مع القليل من التغيير ، يمكن القيام نفسه بإجراء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top