بتاريخ: 7 مايو 200916 سنة comment_156079 ودة انا عايزة عشان فى تقررير البار كود وال هيحدد فية اليوزر عدد البار كود ال عايز يطبعها لنفس الصنف تقديم بلاغ
بتاريخ: 10 مايو 200916 سنة comment_156390 أبسط الأمور أنك تعمل جدول Temp ومن ثم تدرج به مجموعة من السجلات حسب عدد السجلات التي ترغب في عرضه ، ومن ثم تصنع جملة Select علي هذا الجدول !!!!أو فية طريقة أخري ، تستخدم الجدول DUAL في هذه العملية ، بمعني أنك تعمل Parameter من نوع نصي زات حجم كبيرة ، ومن ثم تصنع Group في التقرير ومن ثم تكتب بداخلة الكود التالي : Select DUMMY From DUAL Where RowNum = 0 & بحيث أنه ميرتجعش أي سجلات ، بعد كدة في الفورم تعمل Loop علي أساس العدد المعين وتبني الجملة التالي : DECLARE ID_SQL VARCHAR2(8000); BEGIN FOR I IN 1 .. :TXT1 LOOP ID_SQL := ID_SQL || ' UNION SELECT DUMMY FROM DUAL'; END LOOP; -- بعد كدة ترسل جملة السيكوال الي الباراميتر المدرج بالتقرير -- END; بس في رأيي إستخدام جدول الـ TEMP ، لأن المتغير ID_SQL مش هيشيل مساحة كبيرة أكثر من 32767 حرفالمهم بكدة صنعنا عدد سجلات علي أساس عدد تكراري محدد ، ممكن بعد كدة الربط مع هذه الجملة كما يلي :مثالتكرار الموظف "Youser" : SELECT EMP_NAME FROM EMP, (SELECT DUMMY FROM DUAL WHERE ROWNUM = 1 &IN_SQL) WHERE EMP_ID = 111 بالتوفيق تقديم بلاغ
بتاريخ: 12 مايو 200916 سنة كاتب الموضوع comment_156555 جزاكم الله خيراً ياخ مصطفى على مشاركتك وطرح الحل باكثر من طريقة واسمحلى ان اضيف ال الحلول السابقىة هذا الحلوجزاكم الله خيراً مرة اخرى select * from emp , (SELECT 1 FROM DUAL CONNECT BY ROWNUM <=3) order by empno تقديم بلاغ
بتاريخ: 14 مايو 200916 سنة comment_156790 الأخ حسام ، معلش ممكن سؤال ؟؟؟؟أنا بستخدم CONNECT BY لتصميم Tree ، ولما جربت الجملة بتاعتك فوجأت بأنها لا تعمل وتعرض ليا الرسالة التالية : select * from emp , (SELECT 1 FROM DUAL CONNECT BY ROWNUM <=3) T order by empno * يوجد خطأ عند سطر 1: ORA-01436: توجد حلقة CONNECT BY في بيانات المستخدم مع العلم أنني أتعامل مع Oracle 9i الإصدار 9.0.1.0.0 !!!!طيب هفترض أنك عايز تعمل التالي : SELECT * FROM EMP ,(SELECT 1 FROM DUAL WHERE ROWNUM <=3) T WHERE EMPNO = 7369 ORDER BY EMPNO; كدة كدة سيتم إرتجاع سجل واحد ، لأن الجدول DUAL لا يحتوي سوي علي حقل واحد أسمة DUMMY ونوعة VARCHAR2 وطولة حرف واحد ، وكمان قيمتة NULL .... فإزاي تستخدم الجملة RowNum <= 3 وكدة كدة مفيش غير سجل واحد ؟؟؟؟؟من الواضح أن فية تغيرات كثيرة بين أوراكل 9 و 10 ، وإظاهر أنك بتتعامل مع 10 ، فهل تفكيري صحيح ؟؟؟يا إما الكود فية حاجة غلط ؟؟؟ممكن توضيح أكثر ؟؟شكراً تقديم بلاغ
بتاريخ: 14 مايو 200916 سنة comment_156801 أعتقد إن أخي حسام استفاد من ال cartesian product باستخدام SELECT 1 FROM DUAL CONNECT BY ROWNUM <=3; واعتبارها كجدول أخر connect by بالفعل شغالة ومستحدثة في ال 10جي أخي مصطفى connect_by_root connect_by_root is a new operator that comes with Oracle 10g and enhances the ability to perform hierarchical queries. I have yet to dig into this subject and will write about it when things become clearer. وهذا هو مصدر المعلومة مع الشرح الكامل لهاhttp://www.adp-gmbh.ch/ora/sql/connect_by.html تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.