جديد المداخلات
-
مكتبة مؤشرات ميتاتريدر 4 للمتداولين مجانا
هل بتفتح MT4 وتحس إن الشموع بتتكلم لغة مش فاهمها؟ 🤔
تدخل صفقة... والسوق يروح عكسك؟ 😤
المشكلة مش فيك، المشكلة إنك داخل بيدين فاضيين، والمحترفين داخلين بترسانة أسلحة ذكية.
المحترف بيعتمد على مؤشر يقوله: امتى يدخل، فين يخرج، وامتى يستنى.
وعشان كده عملنالك في يلا نكسب 👇
🎁 مكتبة مؤشرات MT4 الأقوى - مجانية 100%
هتلاقي فيها:
1️⃣ مؤشرات اقتناص الفرص - نقطة الدخول بالسهم
2️⃣ دعم ومقاومة ذكية - بترسم المناطق تلقائياً
3️⃣ تنبيه لحظي - تنبيه صوتي ورسالة وانت بعيد
4️⃣ إدارة الصفقة - ستوب وتيك بروفيت منطقي
لو مبتدئ: هتبدأ بمؤشر واحد واضح "اشترِ هنا، بع هنا"
لو محترف: هتاخد الفلتر اللي يرفع نجاحك من 60% لـ 80% وأكتر
✅ مجانية تماماً - تحميل مباشر
✅ مجربة على حسابات حقيقية
✅ شرح وتركيب سهل
✅ تحديث مستمر
بطل تداول عشوائي. اتداول بذكاء وبأدوات المحترفين.
👇 ادخل المكتبة الآن:
https://yallanksab.com/بواسطة سيدة البلاد, · بتاريخ:
-
Oracle Database 12c/19c PL/SQL Student Guide كتب أوراكل
و عليكم السلام, هدا
Vol 2 for plsal 12c
أبحث عن vol2 plsql 19c لمن عنده
شكرا لكل مساهم
les_01.ppt les_02.ppt les_03.ppt les_04.ppt les_05.ppt les_06.ppt les_07.ppt les_08.ppt les_09.ppt les_10.ppt les_11.ppt les_12.ppt xpp_A.ppt xpp_B.ppt xpp_C.ppt xpp_D.ppt xpp_E.ppt xpp_F.ppt xpp_G.ppt xpp_H.ppt xpp_I.pptبواسطة جلال المهاجر, · بتاريخ:
-
إعادة إطلاق قناتي
السلام عليكم جميعاً،
لكل المهتمين بتطوير الأنظمة المؤسسية باستخدام Java وSpring Boot، أحب أن أشارككم إعادة إطلاق قناتي التقنية:
Mostafa Maged | Build Better Software
سأركز على مشاركة خبرات عملية في REST APIs وSoftware Architecture وEnterprise Applications وتحديث الأنظمة القديمة، مع أمثلة واقعية ومناقشة القرارات الهندسية.
المحتوى سيكون بالعربية، مع العمل على توفيره بالإنجليزية والفرنسية والإسبانية.
يسعدني أن تنضموا إلى القناة إذا كانت هذه الموضوعات تهمكم:
https://www.youtube.com/@MostafaMagedTech
وسؤال للمطورين هنا: ما أكثر تحدٍّ تواجهونه عند تطوير تطبيقات Spring Boot المؤسسية؟
بواسطة sd4it, · بتاريخ:
-
كتاب تشغيل أوراكل 26 ai Free مع Apex26 على لاب توب و تصميم شاشات في ابيكس لإستخدام الذكاء الإصطناعي ollama من خلالها
شكرا مهندس على الشرحبواسطة المبرمج الصاعد, · بتاريخ:
-
Oracle APEX Vibe coding
-
كتاب تشغيل أوراكل 26 ai Free مع Apex26 على لاب توب و تصميم شاشات في ابيكس لإستخدام الذكاء الإصطناعي ollama من خلالها
السلام عليكم ورحمة الله وبركاته
-
مرفق رابط تحميل / كتاب تشغيل أوراكل 21c مع 24Apex على لاب توب
-
تحميل: WINDOWS.X64_213000_db_home
تحميل: jdk-21_windows-x64_bin و jre-8u471-windows-x64
تحميل: apex_24.2
تحميل: ords-25.3.1.289.1312
تشغيل: Oracle APEX
انشاء شجرة من خلال Oracle APEX
-
https://drive.google.com/file/d/1VgkqP7zDYxjcPXvk7IDZz-6RT5P5u7YF/view?usp=sharing
-
مرفق رابط تحميل / كتاب تشغيل أوراكل 21c مع 24Apex على لاب توب – محدث 2_1_2026
-
تحميل: WINDOWS.X64_213000_db_home
تحميل: jdk-21_windows-x64_bin و jre-8u471-windows-x64
تحميل: apex_24.2
تحميل: ords-25.3.1.289.1312
تشغيل: Oracle APEX
انشاء شجرة من خلال Oracle APEX
تنزيل وتحليل برنامج: Oracle Sample Trees
-
https://drive.google.com/file/d/1aUV_099gIn7_EMl3aJkh48ZXFuFoT9DC/view?usp=sharing
-
مرفق رابط تحميل / كتاب تشغيل أوراكل 21c مع 24Apex على لاب توب – محدث 5_1_2026
-
تحميل: WINDOWS.X64_213000_db_home
تحميل: jdk-21_windows-x64_bin و jre-8u471-windows-x64
تحميل: apex_24.2
تحميل: ords-25.3.1.289.1312
تشغيل: Oracle APEX
انشاء شجرة من خلال Oracle APEX
تنزيل وتحليل برنامج: Oracle Sample Trees مع تصميم شاشة Home مماثلة
ملخصات سابقة: SQL - Help on SQL - Analytic Functions
Copy Command - User Management - Cursors
Trigger - Functions - Procedure - Sequence
Index - View - Exception - PLSQL
Oracle Form Builder - Hierarchical Tree
Key mapping in oracle forms - Reports - Graphs
-
https://drive.google.com/file/d/1FMGGeEep3gWKQ5Yhf2rUlRrHKA-UOq0P/view?usp=sharing
-
مرفق رابط تحميل / كتاب تشغيل أوراكل 21c مع 24Apex على لاب توب – محدث نهائي 24_1_2026
-
تحميل: WINDOWS.X64_213000_db_home
تحميل: jdk-21_windows-x64_bin و jre-8u471-windows-x64
تحميل: apex_24.2
تحميل: ords-25.3.1.289.1312
تشغيل: Oracle APEX
انشاء شجرة من خلال Oracle APEX
تنزيل وتحليل برنامج: Oracle Sample Trees مع تصميم شاشة Home و Graphs مماثلة
ملخصات سابقة: SQL - Help on SQL - Analytic Functions
Copy Command - User Management - Cursors
Trigger - Functions - Procedure - Sequence
Index - View - Exception - PLSQL
Oracle Form Builder - Hierarchical Tree
Key mapping in oracle forms - Reports - Graphs
-
https://drive.google.com/file/d/1k9I_k6ff6v71iRjhV7zLCrL5tnLN4Gy2/view?usp=sharing
-
مرفق رابط تحميل/
كتاب تشغيل أوراكل 21c مع Apex24 و 26ai Free مع Apex26 على لاب توب– محدث 11_6_2026
-
تحميل: WINDOWS.X64_213000_db_home
تحميل: jdk-21_windows-x64_bin و jre-8u471-windows-x64
تحميل: apex_24.2
تحميل: ords-25.3.1.289.1312
تشغيل: Oracle APEX
انشاء شجرة من خلال Oracle APEX
تنزيل وتحليل برنامج: Oracle Sample Trees مع تصميم شاشة Home مماثلة
ملخصات سابقة: SQL - Help on SQL - Analytic Functions
Copy Command - User Management - Cursors
Trigger - Functions - Procedure - Sequence
Index - View - Exception - PLSQL
Oracle Form Builder - Hierarchical Tree
Key mapping in oracle forms - Reports - Graphs
-
تحميل: oracle_ai_database_free-26ai-23.26.2_windows.x64
تحميل: apex_26.1
تحميل: ords-26.1.2.140.1916
تصدير: شاشات مصممة في apex_24.2 واستيرادها من خلال apex_26.1
-
رابط التحميل
https://drive.google.com/file/d/1HWt9_CM0rKXl5FfGOJE1QY140p6-_5Re/view?usp=sharing
-
بالتوفيق للجميع ان شاء اللهبواسطة jamal_rrkk, · بتاريخ:
-
Oracle APEX Vibe coding
السلام عليكم ورحمة الله وبركاته
هذا الموضوع سيكون دليل شامل لكيفية استخدام AI في انشاء وتعديل تطبيقات Oracle APEX من خلال Vibe coding سأعتمد في الشرح على Codex من ChatGPT
مع Oracle APEX 26.1، قدمت Oracle تقنية APEXlang لدعم تطوير تطبيقات APEX باستخدام AI Coding Agents، وهو ما يفتح المجال لتطوير التطبيقات بأسلوب Vibe Coding.
وفي Oracle APEX 26.2 تمت إضافة ميزة مهمة جدًا، وهي File-Level Import، التي تتيح تعديل صفحة أو Shared Component باستخدام VS Code ثم استيراد التعديل فقط، دون الحاجة إلى إعادة استيراد التطبيق بالكامل.
في هذا الموضوع سنشرح كيفية تجهيز بيئة العمل واستخدام Oracle Skills مع VS Code وChatGPT، ثم إنشاء تطبيقات APEX أو تعديل التطبيقات الموجودة، والتحقق من التعديلات ورفعها إلى Oracle APEX.
1. ما هو Oracle APEX Vibe Coding؟
الفكرة هي استخدام AI Coding Agent مثل Codex أو Claude Code لإنشاء وتعديل تطبيقات Oracle APEX من خلال تعليمات مكتوبة باللغة الطبيعية.
بدلًا من إنشاء كل Region أو Item أو Process يدويًا، يمكن توجيه الـ Agent لإنشاء المكونات أو تعديلها داخل ملفات APEXlang.
على سبيل المثال:
Create an Oracle APEX page that displays customer orders using an Interactive Report. Add a form to create and update orders. Use existing database tables and follow Oracle APEX 26.2 specifications.يقوم الـ Agent بتحليل الطلب واستخدام Oracle Skills لإنشاء أو تعديل ملفات .apx، ثم يتم التحقق منها واستيرادها إلى APEX.
دورة العمل تكون كالتالي:
Requirements → AI Coding Agent → Oracle Skills → APEXlang → Validation → Import → Testing
الميزة هنا أن APEXlang صيغة رسمية من Oracle، وليست طريقة غير مدعومة لإنشاء صفحات APEX.
2. المتطلبات
سنستخدم الأدوات التالية:
الأداة
الإصدار
Oracle APEX
26.2
Oracle SQLcl
26.3.0 أو أحدث
Java JDK
17 أو 21
Visual Studio Code
إصدار حديث
Oracle SQL Developer for VS Code
26.3 أو أحدث
Codex أو Claude Code
AI Coding Agent
Oracle Skills
من المستودع الرسمي
Git
اختياري لإدارة الإصدارات
ملاحظة بخصوص SQLcl:
الإصدار 26.1.2 مناسب لمتطلبات APEXlang 26.1، لكن عند العمل على Oracle APEX 26.2 يجب استخدام SQLcl 26.3.0 أو أحدث وفق متطلبات هذا الإصدار.
كذلك يجب أن تكون بيئة Oracle APEX 26.2 نفسها مجهزة بصورة صحيحة، بما في ذلك ORDS 26.3.0 أو أحدث.
سنفترض أن لدينا Oracle APEX Workspace وDatabase Schema يمكن الاتصال بهما.
3. تثبيت Java JDK
يحتاج SQLcl إلى Java.
يمكن تحميل JDK 21 من:
https://www.oracle.com/java/technologies/downloads/
بعد التثبيت، افتح Command Prompt أو Terminal ونفذ:
java -versionتأكد أن Java تعمل وأن الإصدار 17 أو 21.
على Windows، إذا كان Java مثبتًا ولكن الأمر غير معروف، راجع متغيرات البيئة JAVA_HOME وPATH وتأكد من إضافة مجلد bin الخاص بالـ JDK.
4. تثبيت Oracle SQLcl
Oracle SQLcl هو الأداة التي سنستخدمها لتنفيذ أوامر APEXlang مثل:
apex export
apex validate
apex import
skills sync
تحميل أحدث إصدار:
https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/
في وقت إعداد هذا الموضوع، الإصدار المتاح هو SQLcl 26.3.0.
بعد تنزيل ملف ZIP، فك الضغط في مسار مناسب.
على Windows مثلًا:
C:\oracle\sqlclبحيث يكون الملف التنفيذي في:
C:\oracle\sqlcl\bin\sql.exeأضف المجلد التالي إلى متغير البيئة PATH:
C:\oracle\sqlcl\binثم افتح Command Prompt جديدًا ونفذ:
sql /nologعلى Linux أو macOS، فك ضغط SQLcl وأضف مجلد sqlcl/bin إلى متغير PATH، ثم نفذ الأمر نفسه.
إذا ظهرت واجهة SQLcl ومعلومات الإصدار، فالتثبيت يعمل.
يمكن أيضًا تشغيل SQLcl باستخدام المسار الكامل للملف التنفيذي دون تعديل PATH.
ملاحظة: إضافة Oracle SQL Developer داخل VS Code تتضمن SQLcl، ويمكن استخدام النسخة المرفقة بها. لكن عند العمل باستخدام أوامر مستقلة من Terminal يجب التأكد من الإصدار الفعلي الذي يتم تشغيله.
5. تثبيت Visual Studio Code
حمّل VS Code من:
https://code.visualstudio.com/
بعد التثبيت، افتح Extensions باستخدام:
Ctrl + Shift + X
وابحث عن:
Oracle SQL Developer for VSCode
ثم اضغط Install.
هذه الإضافة مهمة لأنها توفر:
الاتصال بقواعد بيانات Oracle.
استعراض Schemas وDatabase Objects.
إنشاء وتصدير مشاريع APEXlang.
تحرير ملفات .apx.
Code Completion وValidation.
Import Application.
Import File في APEX 26.2.
يفضل تفعيل Auto Update حتى تحصل على أحدث دعم لـ APEXlang.
6. الاتصال بقاعدة بيانات Oracle من VS Code
افتح Oracle SQL Developer من القائمة الجانبية داخل VS Code.
اختر إنشاء Database Connection جديد.
أدخل بيانات الاتصال المطلوبة:
Connection Name : APEX_DEV Username : APP_SCHEMA Password : ******** Hostname : database-host Port : 1521 Service Name : database-serviceهذه قيم توضيحية ويجب استبدالها ببيانات بيئتك.
اضغط Test ثم Connect.
يجب أن يكون Schema المستخدم مخولًا للوصول إلى الـ Workspace المطلوب.
بعد الاتصال ستظهر Database Objects، ومع وجود APEX مدعوم ستتمكن من الوصول إلى التطبيقات من خلال قسم APEX داخل Oracle SQL Developer.
7. تثبيت AI Coding Agent داخل VS Code
يمكن استخدام Codex أو Claude Code.
باستخدام Codex
من Extensions ابحث عن:
Codex – OpenAI's coding agent
ثم Install.
افتح Codex وقم بتسجيل الدخول باستخدام حساب ChatGPT أو بيانات الوصول المدعومة.
المهم هنا هو استخدام Codex داخل VS Code وليس مجرد فتح محادثة عادية في المتصفح؛ لأن الـ Agent المحلي يستطيع التعامل مع ملفات المشروع وفق الصلاحيات الممنوحة له.
باستخدام Claude Code
من Extensions ابحث عن:
Claude Code
ثم Install، وأكمل تسجيل الدخول.
باقي الخطوات المتعلقة بـ Oracle APEX ستكون متشابهة إلى حد كبير.
8. تثبيت Oracle Skills
توفر Oracle مستودعًا رسميًا للمهارات:
https://github.com/oracle/skills
المستودع يحتوي على Skills خاصة بعدة تقنيات Oracle، ومنها APEX وDatabase وOCI وGraalVM.
لتثبيت مهارات APEX وDatabase، افتح SQLcl.
يمكن فتح SQLcl من Oracle SQL Developer عن طريق الضغط بزر الفأرة الأيمن على Database Connection واختيار:
Open SQLcl
ثم نفذ:
skills sync -skill-name apex,dbبعد انتهاء المزامنة، نفذ:
skills listللتحقق من المهارات المتاحة.
تقوم المزامنة بتجهيز Oracle Skills للاستخدام في بيئات AI Coding Agents المحلية المدعومة.
ويمكن تنفيذ الأمر مرة أخرى عند الحاجة إلى تحديث المهارات.
التثبيت اليدوي
يمكن أيضًا تحميل المستودع مباشرة من GitHub:
Code → Download ZIP
ثم نقل مجلدات المهارات المطلوبة إلى المسار الخاص بالـ Agent.
على سبيل المثال، يستخدم Codex عادةً:
~/.codex/skills/وعلى Windows يكون المسار تحت مجلد المستخدم داخل:
.codex\skills\من المهم الاحتفاظ بمحتويات كل Skill كاملة، بما فيها ملفات SKILL.md وreferences وscripts، وليس نسخ ملف التعريف وحده.
9. تعريف SQLcl للـ AI Agent
حتى يستطيع Codex أو Claude Code استخدام SQLcl، يجب أن يكون على علم بمسار الملف التنفيذي.
بالنسبة إلى Codex، يمكن إضافة تعليمات إلى ملف:
~/.codex/AGENTS.mdوعلى Windows:
C:\Users\<username>\.codex\AGENTS.mdمع محتوى مثل:
## Oracle APEX Development Use Oracle Skills for Oracle APEX and Oracle Database development. Target Oracle APEX version: 26.2. Use Oracle SQLcl 26.3.0 or newer. SQLcl executable: C:\oracle\sqlcl\bin\sql.exe For APEXlang development: 1. Inspect the current application files. 2. Preserve existing IDs and references. 3. Use valid APEXlang 26.2 syntax. 4. Validate the application with SQLcl. 5. Review validation errors. 6. Fix errors before importing. 7. Import only after explicit approval. 8. Never store database passwords in source files.يجب تعديل مسار SQLcl ليناسب الجهاز.
SQLcl MCP Server
هناك طريقة أخرى لتكامل SQLcl مع AI Agents، وهي تشغيله كـ MCP Server باستخدام:
sql -mcpهذا الأمر يوضح وضع تشغيل SQLcl كخادم MCP؛ ويلزم بعد ذلك تسجيل الخادم داخل إعدادات الـ Agent باستخدام المسار الكامل للملف التنفيذي ووسيط التشغيل -mcp.
هذه الطريقة توفر تكاملًا مباشرًا مع أدوات SQLcl وفق الصلاحيات وإعدادات الاتصال المسموح بها.
لكن استخدام MCP اختياري؛ يمكن تنفيذ أوامر SQLcl يدويًا مع الاستفادة من الـ Agent لتعديل ملفات APEXlang.
10. إنشاء مشروع APEXlang داخل VS Code
بعد تجهيز الأدوات، يمكن إنشاء مشروع جديد.
أنشئ مجلدًا محليًا مثل:
C:\APEX_PROJECTSوافتحه من VS Code باستخدام:
File → Open Folder
ثم من Oracle SQL Developer:
افتح Database Connection.
انتقل إلى قسم APEX.
اضغط بزر الفأرة الأيمن واختر Generate.
حدد Workspace.
أدخل Application Name.
أدخل Application Alias.
حدد Target Folder.
اضغط Apply.
مثال:
Application Name : Help Desk Application Alias : HELP_DESK Target Folder : C:\APEX_PROJECTSسيتم إنشاء مشروع APEXlang على جهازك.
الهيكل العام قد يحتوي على:
help-desk/ │ ├── application.apx │ ├── pages/ │ ├── p00001-home.apx │ └── ... │ ├── shared-components/ │ ├── supporting-objects/ │ ├── deployments/ │ └── default.json │ └── .apex/ └── apexlang.jsonالملفات والمجلدات الفعلية تعتمد على محتوى التطبيق والإصدار المستخدم.
لا تعدل قيمة mmdVersion داخل .apex/apexlang.json يدويًا؛ فهي مرتبطة بإصدار تعريفات APEXlang.
11. تطوير التطبيق باستخدام Vibe Coding
بعد فتح المشروع في VS Code، افتح Codex أو Claude Code.
يمكن الآن إعطاء الـ Agent تعليمات لتطوير التطبيق.
مثال لتطبيق Help Desk:
Use Oracle APEX 26.2 Skills. Build a Help Desk application. Requirements: - Tickets Interactive Report - Create/Edit Ticket Form - Dashboard with ticket statistics - Categories LOV - Priority LOV - Status management - PL/SQL validations - Appropriate authorization rules Use the current database schema. Generate or modify the required APEXlang files. Do not replace unrelated components. Validate generated files using SQLcl. Show me the changed files before importing.سيعمل الـ Agent على ملفات المشروع، ويقوم بإنشاء أو تعديل التعريفات المطلوبة.
يفضل تقسيم التطوير إلى مهام صغيرة، مثل إنشاء Dashboard أولًا ثم إضافة Form ثم تحديث التقارير، حتى يسهل مراجعة كل تغيير واختباره.
12. تصدير تطبيق Oracle APEX موجود إلى VS Code
ليس ضروريًا أن تبدأ بتطبيق جديد.
يمكن العمل على تطبيق موجود داخل APEX.
من Oracle SQL Developer داخل VS Code:
افتح Database Connection.
افتح قسم APEX.
حدد التطبيق المطلوب.
اضغط بزر الفأرة الأيمن.
اختر Export.
حدد المجلد المحلي.
اضغط Apply.
سيتم تصدير التطبيق بصيغة APEXlang.
ويمكن تنفيذ العملية أيضًا باستخدام SQLcl بعد الاتصال بالـ Parsing Schema المناسب:
apex export -applicationid 105 -exptype APEXLANGالرقم 105 هنا مثال، ويجب استبداله بـ Application ID الفعلي.
بعد التصدير، افتح مجلد المشروع في VS Code.
الآن يمكن تعديل صفحات التطبيق ومكوناته باستخدام الـ AI Agent مع الحفاظ على الملفات الأصلية.
يفضل الاحتفاظ بنسخة من التطبيق قبل البدء، وعدم استيراد ملفات قديمة فوق تغييرات أحدث أجراها مطورون آخرون.
13. التحقق من ملفات APEXlang قبل الاستيراد
يمكن تنفيذ Validation دون الاتصال بقاعدة البيانات.
افتح Terminal وانتقل إلى مجلد المشروع.
ثم شغّل:
sql /nologومن داخل SQLcl:
apex validate -input .أو حدد مسار المشروع:
apex validate -input C:\APEX_PROJECTS\help-deskسيقوم SQLcl بفحص ملفات APEXlang.
في حال وجود مشكلة، قد تظهر رسائل مثل:
APEXLang Compile Errors: File: pages/p00003-tickets.apx Line: 125 Type: INVALID_PROPERTYيمكن إعطاء هذه الرسائل إلى AI Agent، وطلب تعديل الملف المتسبب في الخطأ فقط.
مثال:
Review the APEXlang validation errors. Fix the invalid properties using Oracle APEX 26.2 specifications. Do not modify unrelated pages or shared components. Run validation again.تتكرر العملية حتى ينجح التحقق.
كذلك تعرض إضافة Oracle SQL Developer أخطاء APEXlang داخل Problems Panel في VS Code، وهو ما يساعد على اكتشاف المشاكل أثناء تحرير الملفات.
نجاح Validation يعني أن تعريفات APEXlang اجتازت الفحص البنيوي، لكنه لا يثبت بالضرورة صحة SQL أو قواعد العمل أو الصلاحيات وقت التشغيل.
14. استيراد التطبيق بالكامل — Application-Level Import
عند إنشاء تطبيق جديد أو إجراء تغييرات كبيرة، يمكن استيراد التطبيق بالكامل.
باستخدام VS Code
افتح ملف application.apx.
تأكد من حفظ جميع التعديلات.
اضغط Attach Connection إذا لم يكن الاتصال مرتبطًا بالمشروع.
اختر Database Connection الصحيح.
اضغط Import Application من شريط الأدوات أعلى المحرر.
راجع رسالة نجاح أو فشل العملية.
إذا كان التطبيق موجودًا بالفعل، فإن الاستيراد الكامل قد يستبدل تعريفاته الحالية. لذلك يجب مراجعة التغييرات وحفظ نسخة احتياطية قبل التنفيذ.
باستخدام SQLcl
بعد الاتصال بقاعدة البيانات:
apex import -input C:\APEX_PROJECTS\help-deskأو عند تشغيل SQLcl من داخل مجلد التطبيق:
apex import -input .بهذه الطريقة يتم التحقق من المشروع ثم استيراد التطبيق ككل.
وهذا هو المسار المناسب عند الإنشاء الأول للتطبيق، أو عندما تتطلب التغييرات إعادة نشر كاملة، أو عند تنفيذ Deployment منظم إلى بيئات الإنتاج.
15. استيراد تعديل صفحة واحدة — File-Level Import
هذه من أهم الإضافات في Oracle APEX 26.2.
في APEX 26.1 كان بالإمكان تعديل ملف صفحة واحدة في VS Code، لكن تطبيق هذا التغيير كان يتطلب استيراد التطبيق بالكامل.
أما في APEX 26.2 فأصبح بالإمكان استيراد ملف الصفحة مباشرة.
الطريقة الأولى: باستخدام VS Code
افترض أن لدينا ملف:
pages/p00003-tickets.apxوتم تعديل التقرير الموجود في الصفحة باستخدام Codex.
بعد مراجعة التعديل:
افتح الملف p00003-tickets.apx في VS Code.
احفظ التغييرات.
تأكد من الاتصال بقاعدة البيانات الصحيحة.
اضغط Import File من شريط أدوات المحرر.
انتظر نتيجة الاستيراد.
افتح الصفحة داخل APEX وتحقق من التعديل.
بهذه الطريقة يتم استيراد الملف المفتوح فقط، وليس التطبيق بالكامل.
حتى يظهر زر Import File:
يجب أن تكون قاعدة البيانات متصلة بـ Oracle APEX 26.2 أو أحدث.
يجب أن يكون مشروع APEXlang قد تم تصديره بصيغة الإصدار 26.2 أو أحدث.
يجب استخدام إصدار مناسب وحديث من Oracle SQL Developer for VS Code.
يجب أن يكون التطبيق الهدف موجودًا بالفعل في الـ Workspace.
الطريقة الثانية: باستخدام SQLcl
إذا كنت تعمل داخل مجلد المشروع، وبعد الاتصال بقاعدة البيانات، نفذ:
apex import -files pages/p00003-tickets.apxسيتم استيراد الصفحة المحددة فقط.
أما إذا كنت خارج مجلد المشروع، فيمكن تحديد مسار التطبيق والملف:
apex import -input help-desk/ -files help-desk/pages/p00003-tickets.apxالمسارات الخاصة بالخيار -files تكون بالنسبة إلى Current Working Directory.
ويمكن استخدام مسارات Windows أو Linux وفق مكان المشروع.
الفرق المهم: استيراد ملف الصفحة لا يعني بالضرورة إعادة إنشاء كل الكائنات التي تعتمد عليها الصفحة؛ يجب مراجعة التبعيات قبل الاستيراد.
16. استيراد أكثر من ملف في نفس العملية
لنفترض أننا أضفنا LOV جديدة ثم عدلنا صفحة تعتمد عليها.
لدينا مثلًا:
pages/p00003-tickets.apx shared-components/lovs/ticket-status.apxيمكن استيراد الملفين في أمر واحد من داخل مجلد التطبيق:
apex import -files pages/p00003-tickets.apx shared-components/lovs/ticket-status.apxيتولى SQLcl ترتيب التبعيات بين الملفات المحددة.
أما باستخدام VS Code، فإذا كانت الصفحة تعتمد على Shared Component جديدة غير موجودة بعد داخل التطبيق، فيجب استيراد ملف الـ Shared Component أولًا، ثم ملف الصفحة.
هذه الميزة مفيدة جدًا في التطوير اليومي؛ حيث يمكن رفع تغييرات محددة دون التأثير على بقية صفحات التطبيق.
حاليًا لا يشمل File-Level Import جميع أنواع الملفات؛ فهناك قيود على استيراد Themes وTemplates وPlugins وWorkspace Components بهذه الطريقة.
كما أن هذا الأسلوب مدعوم من SQLcl وإضافة SQL Developer في VS Code، وليس من خلال App Builder Import.
17. تعديل صفحة باستخدام AI ثم رفع التغيير فقط
مثال عملي على تعديل صفحة موجودة.
نفترض وجود صفحة Tickets Report داخل تطبيق Help Desk.
نفتح مشروع APEXlang في VS Code، ثم نطلب من Codex:
Review the existing Tickets Report page. Add the following: 1. A status filter. 2. A priority filter. 3. A button to create a new ticket. 4. A link to open the ticket details page. Reuse existing LOVs and application components. Modify only the required APEXlang files. Do not change unrelated pages. Validate the application using SQLcl. Do not import until I approve the changes.بعد انتهاء التعديل:
نراجع الملفات التي تغيرت داخل VS Code Source Control.
نتأكد أن التعديلات تخص الصفحة والمكونات المطلوبة فقط.
ننفذ apex validate -input ..
نعالج الأخطاء إن وجدت.
نستورد ملف الصفحة باستخدام Import File أو الأمر apex import -files.
نفتح التطبيق ونجرب الصفحة.
إذا أضاف الـ Agent مكونات مشتركة جديدة، يتم تضمين ملفاتها أيضًا ضمن عملية الاستيراد.
هذه هي دورة Edit → Validate → Import File → Test.
18. مقارنة التعديلات قبل رفعها
في بيئات التطوير التي يعمل عليها أكثر من مطور، قد يحدث الآتي:
مطور يعدل صفحة في App Builder.
مطور آخر يعدل الملف نفسه محليًا داخل VS Code.
عند استيراد النسخة المحلية، قد يتم استبدال تعديلات المطور الأول.
لتقليل هذه المشكلة، توفر Oracle SQL Developer for VS Code 26.3 وما بعده إمكانيات Compare وPull لمقارنة ملفات APEXlang المحلية مع النسخة الموجودة في قاعدة البيانات، وجلب التغييرات المطلوبة.
قبل الاستيراد:
قارن النسخة المحلية مع نسخة التطبيق الموجودة في APEX.
راجع الاختلافات.
اجلب التغييرات التي يجب الاحتفاظ بها.
عالج أي تعارض داخل الملفات.
أعد تنفيذ Validation.
استورد النسخة النهائية.
ويمكن أيضًا استخدام Application Working Copies في APEX لعزل تعديلات المطورين قبل دمجها في التطبيق الرئيسي.
هذه الخطوة مهمة خصوصًا مع Vibe Coding؛ لأن الـ Agent قد يعدل عدة خصائص داخل الصفحة، وليس فقط العنصر المطلوب ظاهريًا.
19. إدارة ملفات APEXlang باستخدام Git
من فوائد APEXlang أن تعريفات التطبيق أصبحت ملفات نصية يمكن إضافتها إلى Git.
بعد تصدير التطبيق أو إنشاء المشروع، افتح Terminal داخل VS Code ونفذ، إذا لم يكن المجلد مستودع Git بالفعل:
git initثم:
git add .git commit -m "Initial APEXlang application"بعد إجراء تعديل باستخدام الـ Agent، يمكن مراجعة الملفات المتغيرة من تبويب Source Control.
ثم تنفيذ:
git add .git commit -m "Update Tickets page"وإذا كان المشروع مرتبطًا بمستودع Git بعيد، يتم رفع الـ Commit باستخدام git push وفق اسم الفرع وإعدادات المستودع.
مهم: git push يرفع ملفات المصدر إلى مستودع Git، ولا ينشر التغييرات داخل Oracle APEX.
نشر التغييرات إلى APEX يتم باستخدام apex import أو أزرار Import داخل VS Code.
ويجب عدم إضافة كلمات المرور أو ملفات الاتصال الحساسة أو أي أسرار إلى Git.
20. Deployment Files في Oracle APEX 26.2
من التحسينات المهمة في APEX 26.2 دعم ملفات إعدادات Deployment منفصلة عن تعريف التطبيق.
يمكن الاحتفاظ بإعدادات مختلفة لبيئات مثل Development وTest وProduction داخل مجلد:
deployments/على سبيل المثال:
deployments/ ├── default.json ├── test-env.json └── prod-env.jsonيمكن أن تتضمن إعدادات Deployment قيمًا مثل:
Application ID
Workspace Name
Parsing Schema
Application Alias
Subscription Mapping
بعض إعدادات Theme وRuntime
وعند استخدام إعدادات غير افتراضية، يمكن تحديد ملف Deployment أثناء الاستيراد باستخدام الخيار:
apex import -input . -deployment deployments/test-env.jsonعلى أن يكون الملف صالحًا ويحتوي على قيم مناسبة لبيئة الاختبار.
لا ينبغي نسخ قيم حساسة أو Checksum Salt من أمثلة توثيقية بصورة عشوائية.
وبالنسبة إلى بيئات الإنتاج، توصي Oracle باستخدام Full Application Import ضمن دورة نشر واختبار معتمدة، بدل الاعتماد على استيراد الصفحات منفردة.
21. استخدام Oracle Skills داخل ChatGPT
بالإضافة إلى مسار VS Code، يمكن الاستفادة من Oracle Skills داخل ChatGPT باستخدام نظام Plugins.
هذه طريقة مكملة لمسار التطوير المحلي، وليست بديلًا عن SQLcl أو Oracle SQL Developer.
تنزيل Oracle Skills
افتح:
https://github.com/oracle/skills
ثم:
Code → Download ZIP
سيتم تحميل ملف قريب من:
skills-main.zip
تجهيز Plugin
المستودع الأصلي يتضمن إعدادات موجهة إلى Claude Code، لذلك لا يُفترض أن ZIP المستودع نفسه جاهز للتثبيت كـ ChatGPT Plugin دون تحويل.
يمكن رفع الملف داخل ChatGPT، واستخدام Plugin Creator لإعداد حزمة متوافقة.
مثال على التعليمات:
Create a private ChatGPT plugin named Oracle Developer Skills. Use the attached official Oracle Skills repository as the source. Preserve original skill instructions, references, scripts and templates. Include the available Oracle APEX, Database, OCI and GraalVM skills. Adapt the skill structure to ChatGPT. Preserve source attribution and license. Do not invent unsupported Oracle features. Validate the plugin package. Keep the plugin PRIVATE.إنشاء Plugin داخل ChatGPT
من ChatGPT، إذا كانت الميزات متاحة للحساب:
Plugins → Developer Tools → Add → Create plugin
يمكن استخدام Plugin Creator لإنشاء الإضافة.
أو اختيار:
Upload plugin archive
إذا كانت الحزمة المتوافقة قد تم إعدادها بالفعل.
تم إنشاء نسخة خاصة من Oracle Developer Skills بنجاح باستخدام المصدر الكامل من مستودع Oracle، وتسجيلها كإضافة خاصة بالإصدار 1.0.0.
لكن هذه النتيجة تعني نجاح إنشاء الإضافة، ولا تعني أن ChatGPT أصبح متصلًا تلقائيًا بقاعدة البيانات أو قادرًا على تشغيل SQLcl المحلي.
استخدام الإضافة
بعد تفعيلها، يمكن إرسال ملفات APEXlang أو وصف التعديلات المطلوبة إلى ChatGPT.
مثال:
Using Oracle Developer Skills, review this Oracle APEX 26.2 application. I want to add a dashboard with: - Open tickets count - Closed tickets count - Tickets by priority - Tickets by category Generate the required APEXlang changes. Preserve existing application IDs, page IDs and shared components. Do not invent unsupported properties. Explain which files need to be updated.يمكن بعد ذلك مراجعة الملفات الناتجة داخل VS Code، وتشغيل Validation، ثم استيراد التعديلات.
إذا أردت تنفيذ هذه الدورة آليًا من داخل Agent، فمن الأفضل استخدام بيئة تمنحه وصولًا مصرحًا إلى ملفات المشروع وSQLcl، بدل الاعتماد على Skills-only Plugin داخل المتصفح وحده.
22. الفرق بين الطرق المتاحة لتطبيق التعديلات
العملية
الطريقة
إنشاء مشروع جديد
Generate من VS Code
تنزيل تطبيق موجود
Export من VS Code أو SQLcl
تعديل ملفات التطبيق
VS Code مع Codex/Claude
التحقق من الملفات
apex validate
استيراد التطبيق بالكامل
Import Application
استيراد صفحة واحدة
Import File
استيراد عدة ملفات
apex import -files
مراجعة تغييرات المطورين
Compare / Pull
حفظ تاريخ التعديلات
Git
رفع ملفات المصدر إلى مستودع
Git Push
نشر نسخة إنتاجية
Full Application Deployment
23. مشاكل شائعة أثناء العمل
أمر SQLcl غير معروف
تأكد من إضافة مجلد sqlcl/bin إلى PATH، أو استخدم المسار الكامل للملف التنفيذي.
وتحقق أيضًا من وجود Java بإصدار مدعوم.
عدم ظهور Import File في VS Code
تحقق من إصدار Oracle APEX وإصدار Oracle SQL Developer Extension، وأن ملفات المشروع أُنشئت أو صُدرت بصيغة APEXlang 26.2 أو أحدث.
كذلك تأكد من إرفاق Database Connection بالتطبيق داخل المحرر.
فشل File-Level Import
تأكد من أن التطبيق الهدف موجود في الـ Workspace، وأن الملف يخص التطبيق نفسه، وأن أي Shared Components جديدة مطلوبة متاحة أو مشمولة في عملية الاستيراد.
ظهور أخطاء APEXlang
استخدم Problems Panel أو:
apex validate -input .ثم أصلح الأخطاء قبل إعادة الاستيراد.
لا تطلب من الـ Agent حذف خصائص أو مكونات لمجرد تجاوز Validation دون فهم تأثيرها.
نجاح الاستيراد وعدم ظهور النتيجة المتوقعة
تأكد من Application ID والـ Workspace والصفحة المستهدفة، ثم اختبر التطبيق في المتصفح وراجع الأخطاء وقت التشغيل.
كما ينبغي التحقق من صلاحيات المستخدم وSession State وقواعد العمل وعمليات DML.
العمل على نسخة APEXlang قديمة
عند الترقية من APEX 26.1 إلى 26.2، لا يكفي تغيير قيمة mmdVersion يدويًا.
إذا كانت ملفات APEXlang مخزنة في Git باعتبارها مصدر التطبيق الأساسي، توصي Oracle باستيراد التطبيق وإعادة تصديره بعد الترقية، حتى تتوافق بنية الملفات مع الإصدار الجديد.
يفضل تنفيذ هذه العملية داخل فرع Git منفصل ومراجعة الفروقات قبل دمجها.
الخلاصة
مع APEXlang وOracle Skills وVS Code، يمكن استخدام Vibe Coding في دورة تطوير Oracle APEX بصورة عملية، مع الاحتفاظ بالتحكم في ملفات المصدر والتحقق من صحتها ومراجعة التعديلات.
والتحسين الأهم في Oracle APEX 26.2 هو إمكانية تعديل صفحة أو Shared Component واستيرادها بصورة مستقلة خلال التطوير، دون الاضطرار إلى إعادة نشر التطبيق بالكامل بعد كل تعديل.
أما الانتقال إلى Production فيظل بحاجة إلى عملية نشر متكاملة واختبارات وإدارة إصدارات مناسبة.
وبذلك يمكن الجمع بين سرعة AI Coding Agents ومنهجية تطوير Oracle APEX المعتادة، بدل التضحية بالمراجعة والتحكم في التطبيق مقابل سرعة توليد الكود.بواسطة Ahmed Alsaied, · بتاريخ:
-
قبل أن نكتب "يدعم 46 محركاً" شغّلنا 28 محركاً بأنفسنا، والنتيجة لم تكن 28
السلام عليكم
أعمل ضمن فريق يطور أداة قواعد بيانات مفتوحة المصدر، وأكتب هنا عن شيء تعلمناه بالطريقة الصعبة، لأنه يخص أي شخص يقرأ صفحة منتج ويرى رقماً كبيراً بجانب كلمة "محركات مدعومة".
المشكلة بدأت من عندنا نحن.
عندنا ثمانية عشر مشغّلاً (driver) مكتوباً بأيدينا: PostgreSQL وMySQL وOracle وSQL Server وMongoDB وRedis وCassandra وClickHouse وغيرها. وهناك ثمانية وعشرون محركاً آخر لا تملك مشغّلاً خاصاً بها، لكنها تتكلم نفس بروتوكول الاتصال لأحد مشغّلاتنا: TiDB تتكلم بروتوكول MySQL، وCitus وTimescaleDB تتكلمان بروتوكول PostgreSQL، وValkey وDragonflyDB تتكلمان بروتوكول Redis.
فالجمع بسيط: 18 زائد 28 يساوي 46. ويمكن كتابة "يدعم 46 محركاً" على صفحة المنتج دون أن يكذب أحد.
لكن هنا الخدعة التي وقعنا فيها نحن أولاً.
عميل قاعدة البيانات لا يفتح اتصالاً فقط. هو يقرأ قائمة الجداول، وعدد الصفوف والحجم، والفهارس والمفاتيح الأجنبية، وخطة التنفيذ، وقائمة الجلسات، والإحصائيات. وهذه كلها تُقرأ من كتالوج النظام الخاص بكل محرك، وليس من البروتوكول. فالبروتوكول قد يكون واحداً بينما الكتالوج مختلف تماماً. وعندها يمر الاتصال بنجاح، ثم تفتح الشاشة فتجدها فارغة.
لذلك قبل أن نكتب الرقم شغّلنا الثمانية والعشرين محركاً المستعارة بأنفسنا عبر Docker، ومررنا عليها نفس الخطوات. خمس عشرة شاشة لكل محرك.
النتيجة: ثمانية عشر محركاً فقط استجابت فيها كل الشاشات. تسعة استجابت جزئياً. وواحد لم ينفع فيه سوى محرر الاستعلامات.
وأسوأ من ذلك: أن تستجيب الشاشة لا يعني أن الرقم الذي تعيده صحيح. StarRocks مثلاً يعيد صفراً لحجم الجدول وعدد الصفوف دائماً، حتى بعد التحقق المباشر. وDoris، وهو الأصل الذي تفرّع منه StarRocks، يعيد الأرقام الحقيقية. فإذا شغّلتهما جنباً إلى جنب يظهر الفرق فوراً.
وهناك حالة أخطر في الاتجاه المعاكس: بعض المحركات تعيد صفراً لفترة بعد إدخال البيانات، لا لأنها معطوبة بل لأن جامع الإحصائيات عندها بطيء. فتظن أن الجدول فارغ وهو ليس كذلك.
ماذا فعلنا بالرقم؟
ما زلنا نكتب 46، لأنه صحيح من ناحية الاتصال. لكننا وضعنا بجانبه نتيجة القياس لكل محرك على حدة: ثمانية عشر كاملة، وتسعة جزئية، وواحد محرر استعلامات فقط. ومكتوب لكل محرك أي شاشة تسقط ولماذا.
وأضفنا شيئاً آخر لم نكن نكتبه: خمسة من محركاتنا الثمانية عشر للقراءة فقط بحكم التصميم، وهي Druid وElasticsearch وOpenSearch وPrometheus وKafka. كنا نعدّها ضمن المدعوم دون توضيح، وهذا غير دقيق.
الخلاصة التي أردت مشاركتها: إن رأيت رقماً كبيراً بجانب "محركات مدعومة"، اسأل عن معنى كلمة مدعوم عندهم. هل جُرّب الاتصال فقط، أم جُرّبت الشاشات؟ نحن كنا سنكتب الرقم دون أن نسأل أنفسنا هذا السؤال، ولولا أننا شغّلنا المحركات بأنفسنا لما عرفنا.
من يريد الاطلاع على نتائج القياس لكل محرك، هي منشورة في مجلد docs/providers داخل المستودع:
https://github.com/libredb/libredb-studioبواسطة Yusuf Gundogdu, · بتاريخ:
-
مشروع نظام بنكي متكامل
-
اريد احد يعلمني Oracle APEX
في كورس لعلي صالح على Udemy أظن. انت عندك اي خبرة برمجية؟ تعرف sql and pl/sql؟ ده ضروري عشان الكورس.
بواسطة eslam elbyaly, · بتاريخ:
إحصائيات الأقسام
- إجمالي الموضوعات 59.1k
- إجمالي المشاركات 282.8k
إحصائيات الأعضاء
- 136,505 مجموع الأعضاء
- 1,613 أكبر تواجد في لحظة واحدة
-
سيدة البلاد أحدث عضو ·
المتواجدون الآن (عرض قائمة مفصلة)
- لا يوجد أعضاء مسجلين متواجدين الان
المتواجدون مؤخراُ
- jamal_rrkk
- سيدة البلاد
- Al-Qahtani Anas
- Blueprint Hubway
- اسامهو
- mrwan albtool
- العباس أحمد
- JasonclaFe
- أبو شريف
- ياسر عبدالله الفهداوي
- sd4it
- صبري باجبل
- Tech. Support
- Zakria Han
- جلال المهاجر
- رمسيس الدبعي
- ربيع ابراهيم
- ياسر رشيد
- mouamer
- basimka alkabodi
- المبرمج الصاعد
- hesham hafez
- sajjad Al-Razhi
- Ahmed Alsaied
- sara Mogh
- eslam elbyaly
- حسين الشريفي
- Rayan Jamal
- eng_aldeeb85
- وائل المغلس
- maged.karar
- TekeseSn
- Williamtus
- awad baik
- Ahmd Saied
- osamaanwar
- ENG_HOSSAM_WALLY
- Tawheeb Abdul
- نشوان العديني
- moziny431
- zackpro
- عبدالسلام العريقي
- 7md Moha
- Alaa mohammed ali
- Abu Abu
- Fanky
- aammrr aahhmmaadd
- aboushaheen
- asad alhalima
- thorfortune-Snush