بطاقات مرجعية

مرجع سريع لـ Oracle وAPEX

تفاصيل الاتصال والروابط والأوامر التي تحتاجها يوميًا.

اتصال البيئة المحلية

المضيف / المنفذ
localhost / 1521
الخدمة (PDB)
FREEPDB1
المسؤول
SYSTEM
رابط APEX
http://localhost:8080/ords/apex
EM Express
https://localhost:5500/em

دورة حياة Docker

تشغيل
docker compose start
إيقاف (حفظ البيانات)
docker compose stop
إزالة
docker compose down
إعادة ضبط
docker compose down -v
الحالة
docker ps

APEXlang / SQLcl

تصدير التطبيق
apex export -applicationid 100 -exptype APEXLANG -dir ./app100
استيراد التطبيق
apex import -input ./app100/my-app
اتصال
sql user/pwd@//host:1521/FREEPDB1

SQL / PL-SQL سريع

أعلى N
FETCH FIRST 5 ROWS ONLY
إدراج/تحديث
MERGE INTO t USING s ON (…) WHEN MATCHED THEN UPDATE … WHEN NOT MATCHED THEN INSERT …
معرّف تلقائي
id NUMBER GENERATED ALWAYS AS IDENTITY
دفعات
FORALL i IN ind.FIRST..ind.LAST INSERT …

مقتطفات ذكاء القاعدة

تفعيل الملف
EXEC DBMS_CLOUD_AI.set_profile('HR_AI')
اسأل
SELECT AI how many orders this month
راجع SQL
SELECT AI showsql …
أقرب 5 متجهات
ORDER BY VECTOR_DISTANCE(embedding, :q, COSINE) FETCH FIRST 5 ROWS ONLY

مراجع ذكاء APEX

التفعيل
Workspace Utilities → Generative AI
تطبيق توليدي
Create → Create App using Generative AI
المساعد
Page Designer → AI Assistant

Claude Code لمطوّري أوراكل

شغّل وكيل برمجة ذكيًا على مشروع أوراكل حقيقي دون أن يقترب مما لا يجب لمسه، ودون إهدار الرموز.

إعداد آمن للوكيل

منع الأوامر المدمّرة
.claude/settings.json → "permissions": { "deny": ["Bash(git push --force:*)", "Bash(rm -rf:*)"] }
إبقاء الأسرار غير مقروءة
"deny": ["Read(./.env)", "Read(./**/wallet/**)"]
حماية ملف الإعدادات نفسه
"deny": ["Edit(.claude/settings.json)"]
تطبيق مُتحقَّق من بصمته
sha256sum -c apply.sql.sha256 && sql -S $DB_CONN @apply.sql
مستخدم القاعدة للوكيل
مستخدم بأقل صلاحيات؛ لا DBA ولا SYS ولا محفظة الإنتاج

سير عمل متعدد الوكلاء

القائد
يملك الخطة والعقود؛ يدمج ولا يعدّل بالجملة
مسارات العمل
مسار لكل مجموعة ملفات، فلا يكتب وكيلان في الملف نفسه
المراجع
خصم متعمَّد: قبل تثبيت العقد، وعند فشل اختبار مرتين، وقبل الإنهاء
مراقب الحركة
ينظّم الدمج ويفرض حدود المسارات ويمنع التداخل
معنى «انتهى»
اختبارات تمر على تثبيت نظيف، لا «تمت الترجمة»

قواعد توفير الرموز

النموذج المناسب للمهمة
نموذج كبير للتخطيط والمراجعة؛ وأصغر للتعديلات الآلية والبحث
الفحص المركّز أولًا
شغّل الاختبار الذي لمسته قبل المجموعة الكاملة
حدود إعادة المحاولة في الكود
MAX_RETRIES = 2 في السكربت، لا «حاول حتى ينجح» في الموجّه
سياق صغير
أشِر إلى الملفات وأرقام الأسطر؛ لا تلصق تصديرات كاملة
قاعدة التوقف
الفشل نفسه مرتين ← توقّف واستدعِ المراجع

SQLcl + Liquibase

التقاط المخطط
lb generate-schema -split
معاينة SQL
lb update-sql -changelog-file controller.xml
النشر
lb update -changelog-file controller.xml
الحالة
lb status -changelog-file controller.xml
وسم إصدار
lb tag -tag v1.2.0
التراجع عن آخر تغيير
lb rollback-count -count 1 -changelog-file controller.xml
التراجع إلى وسم
lb rollback -tag v1.2.0 -changelog-file controller.xml

مشاريع SQLcl

بدء مشروع (مستودع git)
project init -name myapp -schemas APP -makeroot
تصدير الكائنات إلى src/
project export
تجهيز التغييرات من فرق git
project stage
إصدار النسخة
project release -version 1.2.0
بناء الحزمة
project gen-artifact -version 1.2.0
نشر الحزمة
project deploy -file artifact/myapp-1.2.0.zip
اختبار التثبيت النظيف
انشر كل إصدار في مخطط فارغ قبل الشحن