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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

اين الخطاء فى هذا الكود البسيط


9 رد (ردود) على هذا الموضوع

#1 mohooo81

mohooo81

    عضو نشط

  • الأعضــاء
  • 214 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 July 2008 - 08:23 PM

DECLARE
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN SELECT ENAME,SAL,HIREDATE
FROM EMP WHERE DEPTNO=10;
DBMS_OUTPUT.PUT_LINE(X,Y,Z);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUPUT.PUT_LINE('U DON'T KNOW ANY THING ABOUT ORACLE');
END;
/

مالا يدرك كلة لا يترك كلة

#2 awn78

awn78

    عضو نشط

  • الأعضــاء
  • 491 مشاركة

تاريخ المشاركة 19 July 2008 - 09:23 PM

اخي الكريم في كود ال pl/sql لازم في جملة ال select يكون جملة into يعني القيم الي راح ترجع من جملة ال select تضعها في المتغيرات الي انت معرفها الي x,y,z لم

هذا والله اعلم

وشكرا
صورة

#3 ahmed**

ahmed**

    عضو

  • الأعضــاء
  • 48 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 July 2008 - 10:48 PM

السلام عليكم ورحمة اللة وبركاتة
ارجو الدعاء لى بالنجاح
اعتقد الخطا زى الزميل ما قال ان الخطا فى جملة الاستعلام جملة الاستعلام تستغل كدة على sql+
اما على الفورم بلدر لازم into x,y,z
على سبيل المثال
select id,name into :txt_id,:txt_name from emp;
وممكن يكون الخطا ايضا فى اسامى الجدول بس الخطا الاول هى into


وارجو لى بالدعاء والنجاح ولو فية اى حاجة انا تحت امرك
والسلام عليكم

#4 بو عبدالعزيز

بو عبدالعزيز

    مشترك

  • الأعضــاء
  • 137 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 July 2008 - 11:38 PM

هــذا هو الـكـود الخاص بـكـ ...
DECLARE
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN
SELECT ENAME,SAL,HIREDATE
FROM EMP
WHERE DEPTNO=10;
DBMS_OUTPUT.PUT_LINE(X,Y,Z);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUPUT.PUT_LINE('U DON'T KNOW ANY THING ABOUT ORACLE');
END;

طبيعي يكون في أخطاء ..
أولاً لازم تستخدم INTO في جمله SELECT
لأنك تطبع (X,Y,Z) .. وهم أصلاً مافيهم فيم !!

ثانياً .. تأكد من الجمله الأخيره (You Don't know anything about oracle)
في ثلاثة Single Quote .. والبرنامج بيطلب الرابع !!

لذلك .. أفضل شي .. أنسخ هذا الكـود
وإن شاء الله تمشي الأمور معك

DECLARE
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN SELECT ENAME,SAL,HIREDATE INTO X, Y, Z
FROM emp; END;


فقط أضيف الكلام إلي تريده في الـoutput
وفــالـك الـتـوفيج

#5 mohooo81

mohooo81

    عضو نشط

  • الأعضــاء
  • 214 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 July 2008 - 12:19 AM

السلام عليكم ورحمة اللة وبركاتة
ارجو الدعاء لى بالنجاح
اعتقد الخطا زى الزميل ما قال ان الخطا فى جملة الاستعلام جملة الاستعلام تستغل كدة على sql+
اما على الفورم بلدر لازم into x,y,z
على سبيل المثال
select id,name into :txt_id,:txt_name from emp;
وممكن يكون الخطا ايضا فى اسامى الجدول بس الخطا الاول هى into


وارجو لى بالدعاء والنجاح ولو فية اى حاجة انا تحت امرك
والسلام عليكم


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

#6 mohooo81

mohooo81

    عضو نشط

  • الأعضــاء
  • 214 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 July 2008 - 12:26 AM

هــذا هو الـكـود الخاص بـكـ ...

DECLARE
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN
SELECT ENAME,SAL,HIREDATE
FROM EMP
WHERE DEPTNO=10;
DBMS_OUTPUT.PUT_LINE(X,Y,Z);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUPUT.PUT_LINE('U DON'T KNOW ANY THING ABOUT ORACLE');
END;

طبيعي يكون في أخطاء ..
أولاً لازم تستخدم INTO في جمله SELECT
لأنك تطبع (X,Y,Z) .. وهم أصلاً مافيهم فيم !!

ثانياً .. تأكد من الجمله الأخيره (You Don't know anything about oracle)
في ثلاثة Single Quote .. والبرنامج بيطلب الرابع !!

لذلك .. أفضل شي .. أنسخ هذا الكـود
وإن شاء الله تمشي الأمور معك

DECLARE
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN SELECT ENAME,SAL,HIREDATE INTO X, Y, Z
FROM emp; END;


فقط أضيف الكلام إلي تريده في الـoutput
وفــالـك الـتـوفيج



طبعا انا مش لاقى كلام اشكرك بية بس انا جربت الكود واشتغل زى الفل بارك الله فيك
مالا يدرك كلة لا يترك كلة

#7 mahmoudmania

mahmoudmania

    عضو

  • الأعضــاء
  • 16 مشاركة

تاريخ المشاركة 24 July 2008 - 06:40 PM

DECLAre
X VARCHAR2(33);
Y NUMBER(7,2);
Z DATE;
BEGIN SELECT ENAME,SAL,HIREDATE into x,y,z FROM EMP WHERE DEPTNO=10;
DBMS_OUTPUT.PUT_LINE(X,Y,Z);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUPUT.PUT_LINE('U DON''T KNOW ANY THING ABOUT ORACLE');
END;


#8 omar_s

omar_s

    مشترك

  • الأعضــاء
  • 78 مشاركة

تاريخ المشاركة 25 July 2008 - 09:45 PM

بقي ملاحظة لم تذكر في الردود وهي أن هذه الجملة في الغالب ترجع أكثر من سجل

#9 ايمن محمد على

ايمن محمد على

    عضو

  • الأعضــاء
  • 16 مشاركة

تاريخ المشاركة 29 August 2008 - 06:28 PM

برافو عليك اخ omar_s فعلا الجملة حترجع اكتر من صف وده خطأ كبير

من لا يهب السعاده فلا يستحقهاا




صورة

#10 thgovrnor

thgovrnor

    عضو

  • الأعضــاء
  • 12 مشاركة

تاريخ المشاركة 08 September 2008 - 01:10 AM

السلام عليكم ورحمه الله وبركاته يوجد فى الكود عده اخطاء
1 - لايوجد INTO فى جمله SELECT
2 - الاستعلام قد يرجه باكثر من قيمه لذا فانت فى حاجه الى متغيرات من النوع COMPOSIT وتحتاج الى جمله شرطيه وايضان تحتاج الى LOOP
ودى وجهه نظرى وربنا يوفقكم جميعا