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

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

صورة
- - - - -

مشكلة في Immediate


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

#1 MMA

MMA

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

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 07 March 2008 - 08:19 AM

بسم الله الرحمن الرحيم



والصلاة والسلام علي أشرف المرسلين ، سيدنا محمد عبد الله ورسولة ،

أما بعد ،

إخواني الكرام ، تحية طيبة وبعد ،

عند كتابة جملة DML لتعديل حقل نصي بجدول الموظف الموظف يتم كتابتها كما يلي :

-- تعديل إسم الموظف --
Update Emp Set Emp_Name = 'Ahmed' Where Emp_ID = 2;

صراحتاً الكود يعمل معي جيداً سواء من داخل Procedure أو غيرة ، ولكن مشكلتي الحقيقية مع الأمر Immediate حيث أنني عندما أنشأ كود تعديل مثل الراتب ينفذ جيداً كما يلي :

Execute Immediate 'Update Emp Set Emp_Salary = 1500 Where Emp_ID = 2'

ينفذ الأمر طبيعي جداً وبنجاح ، ولكن عندما أحاول أن أعدل قيمة حقل نصي يجب علي إضافة القيمة النصية ما بين علامات تنصيص ( 'القيمة النصية' ) ، ولكن جملة الـ SQL يتم إدراجها بين علامات تنصيص فيحدث الخطأ ، أنظر :

Execute Immediate 'Update Emp Set Emp_Name = 'Ahmed' Where Emp_ID = 2';

حاولت أستخدم علامات ( "" ) ولكنها لم تنجح ، أنظروا :

Execute Immediate 'Update Emp Set Emp_Name = "Ahmed" Where Emp_ID = 2';

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

إخواني ياريت أجد حل لهذه المشكلة !!!

شكراً

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#2 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 07 March 2008 - 09:34 AM

و انت فى وضع الكتابة للغة الانجليزية و عند عمل علامة التنصيص ل Ahmad فقط كل ما عليك ان تضغط على حرف ال ط مرتان و ليس ان تقوم بضغط ال shift مع حرف ال ط ....... الكود التالى فيه ما تريد .... ادخل على اسكيمة ال scott اولاً ثم نفذه :-

begin
execute immediate 'Update Emp Set EName = ''Ahmed'' Where EMPNO =7369';
end;
/

PL/SQL procedure successfully completed.

و مع تمنياتى لك بالتوفيق

تم التعديل بواسطة hanyfreedom, 07 March 2008 - 09:36 AM.


#3 MMA

MMA

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

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 07 March 2008 - 05:21 PM

شكراً أخي وجزاك الله كل خير

وفعلاً ، الكود إشتغل معي بنجاح

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )