الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

المساعدة لتحويل جدول

Featured Replies

بتاريخ:

أرجو المساعدة لتحويل جدول ضخم في قاعدة البيانات لدي من الشكل التالي:
StoreCode StoreName Jun-07 Jul-07 Aug-07
1014 hh 318013.59 335452.46 285439.48
1015 fd 183226.87 190851.25 228375.3
1016 re 691919.78 764955.06 744312.58
الى الشكل التالي:
StoreCode StoreName month budget
1014 hh Jun-07 318013.59
1014 hh Jul-07 335452.46
1014 hh Aug-07 285439.48
1014 hh Sep-07 285411.43
1014 hh Oct-07 385805.6
1014 hh Nov-07 400865.46
مرفق لكم في اكسل شيت
وشكرا

table.rar

بتاريخ:

السلام عليكم ورحمة الله وبركاته
----------------------------------------
اخى
شوف كده الكود ده واتبع الخطوات الموجوده فيه حيث انها شبيه للجدول اللى ارسلته . طبعا حتعدل فى الكود على حسب بيانات الجدول اللى عندك وطبعا حتعمل جدول جديد
ملاحظه :- فى الجدول الجديد مش حينفع يكون PRIMARY KEY هو STORCODE لانه حيتكرر
الكود

-- FIRST TABLE ---------------------
CREATE TABLE TMP_X( T_ID NUMBER , T_DESC VARCHAR2(10), COL1 VARCHAR2(10),COL2 VARCHAR2(10),COL3 VARCHAR2(10));

---- NEW TABLE ----------------------------
CREATE TABLE TMP_Y (T_ID NUMBER , T_DESC VARCHAR2(10) , COL VARCHAR2(10)  ,COL_VALUE NUMBER(10));

---  SAMPLE DATA FOR THE FIRST TABLE 
INSERT INTO TMP_X ( T_ID, T_DESC, COL1, COL2, COL3 ) VALUES ( 
1, 'AA', '10', '20', '30'); 
INSERT INTO TMP_X ( T_ID, T_DESC, COL1, COL2, COL3 ) VALUES ( 
2, 'BB', '40', '50', '60'); 
INSERT INTO TMP_X ( T_ID, T_DESC, COL1, COL2, COL3 ) VALUES ( 
3, 'CC', '70', '80', '90'); 
INSERT INTO TMP_X ( T_ID, T_DESC, COL1, COL2, COL3 ) VALUES ( 
4, 'DD', '55', '66', '34'); 
INSERT INTO TMP_X ( T_ID, T_DESC, COL1, COL2, COL3 ) VALUES ( 
34, 'RR', '45', '76', '87'); 
commit;

--   CURSOR TO INSERT DATA TO THE NEW TABLE ---------------------


BEGIN FOR REC IN ( SELECT * FROM TMP_X  )
LOOP
FOR REC1 IN (
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TMP_X' AND COLUMN_NAME  NOT IN ('T_ID','T_DESC')
              ) 
 LOOP
INSERT INTO TMP_Y (T_ID,T_DESC,COL) VALUES (REC.T_ID,REC.T_DESC ,REC1.COLUMN_NAME) ;
END LOOP;
END LOOP;
END;

--  UPDATE STAMENTS TO GET DATA 

UPDATE TMP_Y TT
SET COL_VALUE =(  SELECT  COL1 FROM TMP_X T WHERE T_ID=TT.T_ID AND 'COL1' = 
             (SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TMP_X' AND COLUMN_NAME ='COL1')
              )
 WHERE COL='COL1'  ;

UPDATE TMP_Y TT
SET COL_VALUE =(  SELECT  COL2 FROM TMP_X T WHERE T_ID=TT.T_ID AND 'COL2' = 
              (SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TMP_X' AND COLUMN_NAME ='COL2')
               )
 WHERE COL='COL2' ;

    
UPDATE TMP_Y TT
SET COL_VALUE =(  SELECT  COL3 FROM TMP_X T WHERE T_ID=TT.T_ID AND 'COL3' = 
(SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TMP_X' AND COLUMN_NAME ='COL3')
                           )
 WHERE COL='COL3' ;
 
 COMMIT;

بتاريخ:
  • كاتب الموضوع

الأخ الكريم أبو عمار
أشكرك شكرا جزيلا على مساعدتك
جزاك الله خيرا

بتاريخ:

وجزاك الله خيرا

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.