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

مشكله فى هذا Function


mostfa_future

Recommended Posts

السلام على من اتبع الهدى



CREATE OR REPLACE function GET_JOB (V_JOB_ID VARCHAR2,R OUT VARCHAR2 )RETURN VARCHAR2  IS
begin SELECT JOB_TITLE  INTO R from JOBS WHERE JOB_ID = V_JOB_ID;
EXCEPTION
 WHEN NO_DATA_FOUND THEN
 DBMS_OUTPUT.PUT_LINE ('IN VELD JOB_ID  ');
END;
/
DECLARE
NN            VARCHAR2(30);
BEGIN GET_JOB ( 'AD_PRES' ,  NN ) ;
END ;
طلع معى
GET_JOB ( 'AD_PRES' ,  NN ) ;
     *

ERROR at line 4:
ORA-06550: line 4, column 7:
PLS-00103: Encountered the symbol "GET_JOB" when expecting one of the following:
:= . ( @ % ;
The symbol ":=" was substituted for "GET_JOB" to continue.

لما كتبته بهذى الطريقه اشتغل

CREATE OR REPLACE function GET_JOB (V_JOB_ID VARCHAR2) RETURN VARCHAR2  IS
N   VARCHAR2(30);
begin SELECT JOB_TITLE  INTO N from JOBS WHERE JOB_ID = V_JOB_ID;
RETURN N;
EXCEPTION
 WHEN NO_DATA_FOUND THEN
 DBMS_OUTPUT.PUT_LINE ('IN VELD JOB_ID  ');
END GET_JOB; 

BEGIN :A := JOB_PKG.GET_JOB('AD_PRES' ) ;
END ;

/
PRINT A
هل فى function لازم اعمل الجمله دى فى اخر الكود RETURN N;
لان عمالتو PROCEDURE
بالطريقه الاولى اشتغل
ارجو التوضيح

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

ايوة لازم تكتب return statement ف الفانكشن ولازم تكون القيمة ال هترجع من نفس نوع ال حضرتك عرفته ف ال ديكليريشن

لان ال بيفرق بين ال function , procedure

ان ال function لازم ترجع قييييييييييييييييييمة

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

السلام على من اتبع الهدى


معنى كده ان اى function
فى جملتين return

جمله فى ديكليريشن و
جمله النتيجه
دب لو عايز اجيب اكتر من قيمه
متال لتوضيح لو عابز هذا
PROCEDURE
على هيئه function

cREATE OR REPLACE PROCEDURE GET_EMPLOYEE  (v_id  number,v_JOB_ID out  VARCHAR2, v_SALARY out number )IS

begin SELECT   JOB_ID, salary INTO v_JOB_ID,v_SALARY FROM    employees
  WHERE employee_id = V_id;

end;

و شكر اا يا خى على اهتمامك

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

  • بعد 3 شهور...

السلام عليكم اخ mostfa_future


CREATE OR REPLACE FUNCTION GET_JOB (v_job_id  VARCHAR2) RETURN VARCHAR2
IS 
A  VARCHAR2(35) ;
begin select  JOB_TITLE into A from hr.jobs  E where E.job_id= v_job_id;
return A;
END GET_JOB ;
DECLARE
A  VARCHAR2(35) ;

BEGIN A:= GET_JOB ('SA_REP') ;
end;
PRINT A;
/




انا حليت السوال نفسو اللي انت حاطو هنا بالطريقة دي ، واتريها نفس حلك

بس في مشكلة سواء الفينكشين تبعك او تبعي ،

when I do excute , I have this error message:

function created whith compilation error

and the result does not print in the screen


هو انت لما اشتغلت معك الفينكشين، غيرت فيها؟

ميش فاهمة المشكلة فين

thanks for you

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

وعليك السلام يا خى واشكرك انك فكرتنى pl المشكله انى مكنتش RETURN N; الفنكشن لازم ترجع بقيمه لو لحظتى انا مكنتش حطط الحته RETURN N فى المتال الاول
لو فى امشكله اكتب كودك واحنا فى خدمتك
بالتوفيق

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

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

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

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

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

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

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

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