بتاريخ: 24 أغسطس 201015 سنة comment_199130 السلام عليكمكيف الشباب بعد اذنكن بدي حدا يساعدني ...مطلوب مني بالشغل procedure منمرقلو بارامترين اول واحد حيكون اسم ال table يللي حتنبنى جوا ال procedure هادوالتاني حيكون رقم وال table يللي حانشأو حيكون من حقلين اول واحد بدي ينطبع فيه الشكل التالي" num1 * num2" وبالحقل التاني النتيجةعلما ان num1 هو البارمتر التاني يللي مرقناه وال num2 هو رقم تسلسلي (عداد او هيك شي )انا حليت كلشي تقريبا ... بس ما عم تزبط معي انو يطلع "*" بالخرج ... عم يطالعلي الناتج بالحقلين هي حلي ...بتمنى تساعدوني بسرعة Create or replace procedure proc (name in varchar2, num in number) Is f number :=num; d number; C number :=0; s varchar2(20); lstr long; Begin Lstr := 'create table ' || name || '(numbe varchar2(20) , gen number)'; Execute immediate lstr; While c<10 Loop s:=c||'*'||f; d:=c*f; execute immediate 'insert into '||name||' values ('||s||' , '||d||')'; c:=c+1; End loop; End; / تقديم بلاغ
بتاريخ: 24 أغسطس 201015 سنة comment_199156 هذا الحل Create or replace procedure proc (name in varchar2, num in number) Is f number :=num; d number; C number :=0; s varchar2(20); lstr long; Begin Lstr := 'create table ' || name || '(numbe varchar2(20) , gen number)'; Execute immediate lstr; While c<10 Loop s:=c || '*' || f; d:=c*f; execute immediate 'insert into '||name||' values ('''||s||''' , '||d||')'; c:=c+1; End loop; End; تقديم بلاغ
بتاريخ: 24 أغسطس 201015 سنة comment_199157 و هذا الكود يعتبر اصح في حالة اذا كان الجدول موجود فيقوم بحذفه ثم انشائه Create or replace procedure proc (name in varchar2, num in number) Is f number :=num; d number; C number :=0; s varchar2(20); lstr long; Begin Lstr := 'drop table ' || name; Execute immediate lstr; Lstr := 'create table ' || name || '(numbe varchar2(20) , gen number)'; Execute immediate lstr; While c<10 Loop s:=c || '*' || f; d:=c*f; execute immediate 'insert into '||name||' values ('''||s||''' , '||d||')'; c:=c+1; End loop; exception when others then null; End; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.