الانتقال إلى المحتوى

سؤال عن : Table Type Parameter


Adel Moustafa

Recommended Posts

يا اهل الخبرة في اوراكل افيدونا افادكم الله.. دلوقتي انا عامل برنامج صغير WindowsForms فيه listview باباصي الداتا اللي فيها ل data table اللي بدوره بيباصيها ل T-SQL stored procedure ك input parameter و طبعا الداتا بتتحط الاول في table type و اللي منها ال procedure ب select الداتا و يحطها في table و كله شغال تمام.. دلوقتي انا عايز اعمل نفس الحركة بس مع اوراكل.. يعني انا دلوقتي عندي داتا جايه كتله واحده ك bulk، في sql server باخدها احطها كلها مرة واحده في table type مربوط ب procedure ك input type فيه البرنامج بينادي ال procedure اللي بدوره بيستقبل الداتا بنفس فورمات ال table type و ب select منها و يحطها في ال table.. في اوراكل علشان اعمل كده بتبقي ايه الخطوات؟؟

رابط هذا التعليق
شارك

مقرتش انت

انا وصلت لحاجه زي كده بس ماعرفش انا ماشي صح ولا غلط.. انا شغال علي جهاز SQL Server و مش عارف اجرب الكود ده علشان جهاز الاوراكل مش متاح اجرب عليه دلوقتي..ملاحظة صغيرة.. الاوراكل عندنا 6i  :(

 

create table test_table1 (
		employee_no integer,
		status varchar2(5),
		time_in date,
		date_in date);

create or replace package data1 as
	type type_employee_no is  table of test_table1.employee_no%type index by pls_integer;
	type type_status is  table of test_table1.status%type index by pls_integer;
	type type_time_in is  table of test_table1.time_in%type index by pls_integer;

	procedure usp_test_procedure1 (
		p_employee_no in type_employee_no,
		p_status in type_status,
		p_time_in in type_time_in);
end data1;

create or replace package body data1 as
	procedure usp_test_procedure1 (
		p_employee_no in type_employee_no,
		p_status in type_status,
		p_time_in in type_time_in) is
	begin
		forall i in p_employee_no.first..p_employee_no.last
		insert into test_table1 (employee_no, status, time_in, date_in)
		values (
			p_employee_id(i),
			p_status(i),
			p_time_in(i),
			p_time_in(i).todate('DD-MM-YYYY');
	end usp_test_procedure1;
end data1;

 

تم تعديل بواسطة Adel Moustafa
رابط هذا التعليق
شارك

طيب منتا وصلت اهه يا باشا , بس بدل دى مثلا

test_table1.employee_no%type

تبقى

%rowtype

- عموما انت حلك زي ما قلتلك ان شاء الله , اما

1- index by table of records .

2- nested tables .

3- varrays .

وأظن رقم 2 أنسب لك .

رابط هذا التعليق
شارك

طيب منتا وصلت اهه يا باشا , بس بدل دى مثلا

test_table1.employee_no%type

تبقى

%rowtype

الفرق هايكون في ايه؟؟

معلهش لو بارخم عليك انا بس كنت دخلت في اوراكل علي بسيط من زيادة عن 10 سنين و كل دماغي دلوقتي T-SQL.. و حاجه كمان.. الكود اللي كتبته ده مش هو الحل؟؟

تم تعديل بواسطة Adel Moustafa
رابط هذا التعليق
شارك

معلش انا مش بتابع المواضيع بالتفصيل , انا بديك hint وانت تعيش بقى , عشان كده بقلك اقرأ عن كذا

%type نفس نوع بيانات عمود معين

%rowtype بتستخدم في تعريف ريكورد كامل بنفس نوع بيانات اعمدة جدول معين

record_name employees%rowtype ;

رابط هذا التعليق
شارك

معلش انا مش بتابع المواضيع بالتفصيل , انا بديك hint وانت تعيش بقى , عشان كده بقلك اقرأ عن كذا

%type نفس نوع بيانات عمود معين

%rowtype بتستخدم في تعريف ريكورد كامل بنفس نوع بيانات اعمدة جدول معين

record_name employees%rowtype ;

تسلم يا كبير بس انت محتاج تركز شوية في المواضيع قبل التعليق علشان ال hint يبقي صح و في محله و ماتسوحش اللي بيسأل.. انا اعرف ان ال %rowtype بتاعة row كامل لو نفس ال data type انما المثال بتاعي كل entity في ال record ب data type مختلفه و بالتالي لازم كل entity تاخد ال data type المناسبه ليها من ال record اللي في ال table.. علشان كده استغربت و سالت هاتفرق في ايه يمكن يكون مفهومي غلط.. يعني انا لو عملت type_employee_no is table of test_table1%rowtype هو هايعرف منين انهي data type اللي يجيبها يحطها لل attribute دي من ال record بتاع ال table و هو عنده 3 data types مختلفين في كل record؟؟

كمان انا بعت كود و انت رديت ب "حلك زي ما قلتلك" و اديت 3 اختيارات و سيبتك من اللي وصلت ليه، فانا دلوقتي ماعرفتش برضه حلي ماشي في الطريق الصح ولا لا؟؟

رابط هذا التعليق
شارك

يا نهار ابيض دلوقتى بقيت بسوحك !!

عموما , مفهومك غلط يا باشا , اقرأ عن الي قلتلك عليه وانت هتوصل ان شاء الله .

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية