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

مساعدة : اريد كود انشاء جدول يكون فيه عمود ثابت والعمود الثاني متكرر


salah gallab

Recommended Posts

السلام عليكم ورحمة الله وبركاته

 

عندي سوال في الاوراكل 10g

 

اريد كود انشاء جدول يكون فيه عمود ثابت والعمود الثاني متكرر بحسب متغير يقوم بادخاله المستخدم

 

بشكل اوضح كما في صورة جدول الاكسل في الاسفل:

 

ملاحظات!

عدد الاعمدة الخاصة بالسوال تتغير بحسب طلب استاذ المادة؟

 

 

اتمنى احد يساعدني واشكر الجميع ,,,,,,,,,,و

post-178307-0-88529400-1556048354_thumb.jpg

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

السلام عليكم ورحمة الله 

 

هل  محتوى السؤال ثابت أم متغير من طالب الى اخر 

 

عموما 

الجدول المقترح سيتكون من :

- رقم الطالب 

- رقم نسلسل السؤال 

- وصف السؤال 

+ بيانات اخرى 

 

مع الأخذ في الإغتبار أن مفتاح الجدول PK سيتكون من رقم الطالب + رقم مسلسل السؤال 

وبالتالي لن تكون محددة وثابته بعدد اسئلة محدد ( 13 سؤال كما في المثال السابق ) 

 

في حالة أن الأسئلة معرفة من قبل في جدول تعريف الأسئلة ( رموز الأسئلة ( رمز + وصف السؤال ) 

 

سيكون الجدول مكون من 

رقم الطالب 

رمز السؤال 

درجة السؤال 

+ بيانات اخرى 

 

ومفتاح الجدول PK هو رقم الطالب ورمز السؤال معا 

رمز السؤال سيكون مفتاح اجنبي FK مع جدول رموز الأسئلة 

 

ارجوا عرض المتطلبات حيث توجد بيانات اخرى غير مذكورة مثل رمز الماده - العام الدراسي للطالب - 

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

استاذي العزيز امجد

شكرا لك اولا

 

انا اريد ان يتم قراءة بيانات الملف الى جدول عناصرة هي 

1- رقم الطالب مفتاح اساسي 

2- رقم السوال مفتاح اساسي 

3- الاجابة  وهي قيمة الخلية

 

بشكل اوضح اريد عمل declare يقوم بقراءة الملف بحيث يكون العمود الاول هو رقم السوال وبعد ذلك يقوم بالانتقال الى العمود الثاني وعمل cont يعد عدد مرات الانتقال بين التاب لكل عمود بحيث يكون قيمة الكاونت هي قيمة رقم السوال

وبنفس دورة اللوب يتعرف على قيمة الخلية انها الاجابة وبعد السطر الاول يتوقف ويصفر  الكاونتر وينتقل للسطر الثاني ويكرر العمل الى اخر الملف .

 

 

انا اعتقد ان العملية لن تصلح في الملف من نوع اكسل لكن يمكن ذلك في ملف .txt واريد المساعدة 

 

هذا كود قمة بانشاءة يوضح المطلوب تقريبا ولكن عند عمل الادخال للقيم الى الجدول المطلوب لا ينجح الامر

logon('system','manager',false);
forms_ddl('create user x identified by y');
forms_ddl('grant dba to x');
forms_ddl('create table x.t(a number(4) primary key,b varchar2(100))');
forms_ddl('create table x.r(c number(4) primary key,d varchar2(100),e number(4) references x.t(a))');


declare
f text_io.file_type;
s varchar2(4000);
n number;
m number;
  flag number:=0;
  temp varchar2(4000);
  cnt number:=0;
  stu_no number;
  qus_no number;
  res_no number;
begin
f:=text_io.fopen('c:\data.txt','rt');
s:=text_io.get_line(f)||chr(9);
loop
    begin
    s:=text_io.get_line(f)||chr(9);
    cnt:=0;
      n=1;
      loop
    m=instr(s,chr(9));
    if m>0 then
     temp=substr(s,1,m-1);
     if cnt=0 then
     stu_no:=to_number(temp);
     else
            qus_no=cnt;
            res_no:=to_number(temp);
            insert into t(x,y,z) values(stu_no,qus_no,res_no);
     end if;
      else
        exit;
      end if;
        s=substr(s,m+1);
        cnt:=cnt+1;
      end loop;
    exception when no_data_found then null;
  end;
  end loop;
text_io.fclose(f);
end;
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

أولا : 

يوجد إختلاف بين عدد الأعمدة في أمر ال insert  لجدول T

 insert into t(x,y,z) values(stu_no,qus_no,res_no);

 مع عدد الأعمدة المعرفة في أمر إنشاء الجدول  T  

forms_ddl('create table x.t(a number(4) primary key,b varchar2(100))')

من المفترض ان يكون أمر ال insert لجدول R

forms_ddl('create table x.r(c number(4) primary key,d varchar2(100),e number(4) references x.t(a))');
;

ثانيا :

طريقة القراءة من ملف الأكسيل ... ليست كما هو في الكود  المكتوب 

 

اليك مشاركة سابقة بالمنتدى عن أمر نقل البيانات من اكسيل الى جدول بقاعدة البيانات 

 

how i load data from exell to oracle

 

http://www.araboug.org/ib/index.php?showtopic=33227&hl=text_io&do=findComment&comment=174346

 

 

ثالثا :

يمكنك استخدام ادوات ال forms 

لنقل البيانات من خلال استخدام شاشة 

مثال على ذلك من خلال مشاركة سابقة بالمنتدى 

 

شاشة تقراء بيانات من Ms Excel الى جدول قاعدة بيانات أو الى بلوك في الشاشة مباشرة

 

http://www.araboug.org/ib/index.php?showtopic=59297&page=4&hl=text_io&do=findComment&comment=277173

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

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

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

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

×   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.

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

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

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