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

مشكلة في كود للتعديل على قيمة عمود حسب طوله


new_world

Recommended Posts

السلام عليكم
عندي عمود للصنف في جدول المخازن هذا العمود المفروض يتكون من 9 أرقام
فأنا أعمل كود يفحص الحقل إذا وجده 8 أرقام يضع صفر على اليسار
لكن هذا الكود لم يظبط معي مع أن التنفيذ تم بدون أخطاء
أرجو المساعدة من الإخوة

DECLARE 
V_ITEM INVENTORIES.INV_ITEM%TYPE;
BEGIN FOR ITEM_CUR IN (SELECT * FROM INVENTORIES) LOOP
IF length(V_ITEM) = 8 then
UPDATE INVENTORIES SET INV_ITEM =0||V_ITEM;
END IF;
END LOOP;
END;

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

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

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

أخي الكريم
اضبط حلك على هذا المثال مع تعديل في كودك
فرضا عندي جدول اسمه ee على سبيل المثال


create table ee
(id   varchar2(10),
name   varchar2(50));


قم بعمل هذا الكود كالتالي


DECLARE

BEGIN FOR i IN (SELECT id FROM ee) LOOP
IF length(i.id) = 8 then
UPDATE ee SET id =0||i.id;
END IF;
END LOOP;
END;


جرب وادعيلي

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

جزاك الله خيراً أخي مصطفى
الكود الخاص بك كان ينقصه فقط شرط WHERE لكي يتم التعديل على كل حقل وهذا هو الكود النهائي وهو يعمل تمام ولله الحمد

DECLARE
V_ITEM INVENTORIES.INV_ITEM%TYPE;
BEGIN FOR ITEM_CUR IN (SELECT * FROM INVENTORIES) LOOP
IF length(ITEM_CUR.INV_ITEM) = 8 then
UPDATE INVENTORIES SET INV_ITEM =0||ITEM_CUR.INV_ITEM
where INV_ITEM=ITEM_CUR.INV_ITEM;
END IF;
END LOOP;
END;

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

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

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

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

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

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

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

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