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

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

صورة
- - - - -

ممكن افهم الخطأ فين فى هذا الكود


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

#1 a_m2

a_m2

    مشترك

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

تاريخ المشاركة 20 February 2007 - 10:12 PM

ممكن لو سمحتم اى شخص يفهمنى انا ايه خطأى فى هذا الكود فانا لا اقوم بكتابة اى procedure
الا وخرج لى هذا الخطأ وحاولت ان اعرف ما هو سببه ولكنى لم استطعفهل يستطيع احد منكم ان يخبرنى بسبب هذا الخطأ
واليكم الكود

create or replace procedure add_ahmad is
a number;
s varchar2;
d number;
begin
select salary,last_name,employee_id into a,s,d
from employees where last_name='King';
insert into ahmad
values(a,s,d);
end;
الخطأ
Warning: Procedure created with compilation errors.

#2 -=|mOOdY|=-

-=|mOOdY|=-

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 20 February 2007 - 11:37 PM

s varchar2(20);

صورة

!!! كم أنت عبقري !!!


#3 هانى سند

هانى سند

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 21 February 2007 - 01:26 AM

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

الأخ الكريم أعتقد ان الأخ moody_4uقد اوضح الخطأ لك
و هو عدم وجود حجم المتغير من نوع varchar2

و لكي تسهل الاأمور عيل نفسك يمكنك استخدام الامر
show errors
/
بعد عمل create لل procedure حتي تظهر لك الأخطاء ان كان هناك أخطاء

و أحب تذكيرك ان الdatabase objects مثل الfunctions,procedures ,packages and triggers
عند إنشاءهم ان كان هناك خطأ يتم النشاء و لكن يكونوا في حالة Invalid حتي يتم تصحيحه

بالتوفيق

#4 a_m2

a_m2

    مشترك

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

تاريخ المشاركة 21 February 2007 - 02:14 PM

s varchar2(20);



اخى احب ان اوضح لك ان حسب ما اعرف ودرست ان من شروط ال procedure
هو عدم تحديد مساحه او طول للمتغير وهذا من شروط تكوين ال procedure ومع ذلك قمت بتنفيذ كلامك وظهر نفس الخطأ رغم علمى من الاول ان ما افعله خطأ لكنى جربت
ارجوا من شخص ذو خبره اجابتى وشكرا لاخوانى الذين حاولوا وجزاهم الله خيرا

#5 a_m2

a_m2

    مشترك

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

تاريخ المشاركة 21 February 2007 - 02:34 PM

اخى hanon_OCP شكرا على معلومه اضافة كلمة show errors ولكن بعد ما كتبتها بعد ظهور الخطأ فى الكود ظهر لى الخطأ ولم افهم منه اى شئ وها هو الخطأ
undefined
create or replace procedure as_df (a number , s varchar2)
is
begin
select salary,last_name into a,s from employees
where employee_id=120;
end as_df;
وها هو الخطأ
undefined
1/37 PLS-00103: Encountered the symbol "(" when expecting one of the
following:
:= . ) , @ % default character
The symbol ":=" was substituted for "(" to continue.

4/1 PLS-00103: Encountered the symbol "BEGIN" when expecting one of
the following:
:= . ( @ % ; not null range default character
The symbol ";" was substituted for "BEGIN" to continue.
فما هو الخطأ

اخوانى بعد ان غيرت فى ال procerure لاجعله in out لم يظهر الخطأ ولكن انا اريد ان انشئ procedure عادى
undefined


1 create or replace procedure as_df (a in employees.employee_id%type ,
2 s out employees.last_name%type)
3 is
4 begin
5 select last_name into s from employees
6 where employee_id=a;
7* end as_df;
SQL> /

Procedure created.

#6 nihad_enad

nihad_enad

    عضو

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

تاريخ المشاركة 21 February 2007 - 03:01 PM

create or replace procedure add_ahmad is
a number;
s varchar2; == > here is error must be s varchar2(100);
d number;
begin
select salary,last_name,employee_id into a,s,d
from employees where last_name='King';
insert into ahmad
values(a,s,d);
end;

#7 -=|mOOdY|=-

-=|mOOdY|=-

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 21 February 2007 - 03:16 PM


s varchar2(20);



اخى احب ان اوضح لك ان حسب ما اعرف ودرست ان من شروط ال procedure
هو عدم تحديد مساحه او طول للمتغير وهذا من شروط تكوين ال procedure ومع ذلك قمت بتنفيذ كلامك وظهر نفس الخطأ رغم علمى من الاول ان ما افعله خطأ لكنى جربت
ارجوا من شخص ذو خبره اجابتى وشكرا لاخوانى الذين حاولوا وجزاهم الله خيرا


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

صورة

!!! كم أنت عبقري !!!