Orcale Tutorial Content

Loading...

Getting Started - البدء مع إدارة قواعد البيانات
  • أنواع مستخدمي قواعد البيانات:
  • مهام مسؤول قاعدة البيانات:
  • SQL Statements:
  • Identifying Your Oracle Database Software Release - تحديد إصدار اوركل
  • About Database Administrator Security and Privileges- أمان وامتيازات مسؤول قاعدة البيانات
  • Database Administrator Authentication - مصادقة مسؤول قاعدة البيانات
  • Creating and Maintaining a Database Password File - إنشاء ملف كلمة المرور
  • Oracle Architectural Components - مكونات قاعدة البيانات أوركل
  • ﻤﻜﻭﻨﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Oracle Instance
  • Oracle Database
  • Installing Oracle Database - تثبيت الأوركل
  • Installing oracle database 10g in windows
  • Creating and Configuring Database - إنشاء قاعدة البيانات
  • ﺍﻟﺘﺨﻁﻴﻁ ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • ﺇﻨﺸﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟﻴﺩﻭﻴﺔ علي Windows:
  • ﺇﻨﺸﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍل(DBCA)
  • About Creating an Oracle Database
  • About Selecting a Character Set
  • Prerequisites for Database Creation
  • Creating a Database with the CREATE DATABASE Statement
  • Specifying CREATE DATABASE Statement Clauses
  • Specifying Initialization Parameters
  • Controlling The Database -التحكم في قاعدة البيانات
  • التحكم في قاعدة البيانات - Controlling The Database
  • ﺘﺸﻐﻴل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • ﺇﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Opening a Database in Read-Only Mode
  • Opening a Database in Restricted Mode
  • Managing Tablespaces and Data files
  • ﻤﻔﺎﻫﻴﻡ ﻋﺎﻤﺔ ﻋﻥ ﺍل: Tablespaces
  • عملي
  • Control File & Redo Log Files
  • Control File
  • ﺘﻐﻴﻴﺭ ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Redo Log Files
  • Administrating Users - إدارة المستخدمين
  • ﺇﻨﺸﺎﺀ ﻭﺇﺩﺍﺭﺓ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ
  • Quota
  • ﻭﺴﻴﻠﺔ ﺍﻟﺘﺤﻘﻴﻕ
  • ﺍﻟﺼﻼﺤﻴﺎﺕ - Privileges
  • ROLES
  • PROFILES
  • Database Security & Monitoring - تأمين ومراقبة قاعدة البيانات
  • Database Security
  • ﻤﺭﺍﻗﺒﺔ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ - AUDITING
  • Oracle Net Services & Database Link & Metrlized Viewِ
  • Oracle Net Services
  • ﺍﻟﺘﺤﻜﻡ ﻓﻲ ﺍﻟﻭﺼﻭل ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • External Procedures
  • Clients Side
  • Database Link
  • Materialized Views
  • Undo Management & Flashback Technology
  • UNDO MANAGEMENT
  • Flashback Query
  • Flashback Table
  • Flashback Versions Query
  • Flashback Transaction
  • Flashback Drop
  • Flashback Database
  • Managing Shared Servers
  • Why Shared Server
  • Dedicated Server
  • Shared Server Architecture
  • ﻤﺘﻰ ﻨﺴﺘﺨﺩﻡ ﺍل Shared Server ؟
  • Using Globalization Support
  • Globalization
  • ﺍﺨﺘﻴﺎﺭ وتغيير ﺍل Character Set
  • ﻤﺴﺘﻭﻴﺎﺕ ﺍل Globalization
  • ﺍﺴﺘﺨﺩﺍﻡ ﺍل Zones Time
  • Logical Backup & Recovery
  • Use Export Utilities to Export Data
  • TABLES EXPORT Using Export Utilities
  • SCHEMAS EXPORT Using Export Utilities
  • TABLESPACE EXPORT Using Export Utilities
  • DATABASE EXPORT Using Export Utilities
  • Use Import Utilities to Import Data
  • TABLES IMPORT Using Import Utilities
  • SCHEMAS IMPORT Using Import Utilities
  • DATABASE IMPORT Using Import Utilities
  • DATA PUMP
  • TABLES EXPORT Using Data Pump
  • SCHEMAS EXPORT Using Data Pump
  • DATABASE EXPORT Using Data Pump
  • TABLES IMPORT Using Data Pump
  • SCHEMAS IMPORT Using Data Pump
  • DATABASE IMPORT Using Data Pump
  • SQL*Loader
  • Physical Backup & Recovery
  • Physical Backup
  • ﻜﻴﻑ ﻨﻬﻴﺊ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﺘﻌﻤل ﻓﻲ ﺍﻟﻨﻤﻁ ARCHIVELOG؟
  • Cold Backup
  • Full Database Recovery
  • Loss of a Non-SYSTEM Data File
  • Loss of a SYSTEM Data File
  • Loss of an Un-archived Online Log Files
  • Loss of Control Files
  • Loss Unbackup Datafile
  • Damage Tempfile
  • Damage Temporary Tablespace
  • Damage Online Logfile Member
  • Point in Time Recovery
  • Backup and Recovery Options
  • Hot Backup
  • Recovery Manager (RMAN)
  • مقدمة
  • مكونات ال Recovery Manager (RMAN)
  • ﺃﻨﻭﺍﻉ ﺍﻻﺘﺼﺎل ﺒﺎل RMAN
  • ﺨﻴﺎﺭﺍﺕ وأنماط ﺍﻟﻨﺴﺦ ﺍﻹﺤﺘﻴﺎﻁﻰ
  • RMAN Configuration Setting
  • Recovery Catalog
  • RMAN Backups
  • Data Files Backup
  • Tablespaces Backup
  • Archived Redo Log Files Backup
  • Control File Backup
  • Database Backup
  • Incremental Backups
  • RMAN Commands
  • Complete Recovery
  • Incomplete Recovery
  • Restore ControlFile and spfile
  • Managing Resources
  • Consumer Groups
  • Resource Manager Plans
  • Resource Manager Configuration
  • Create Consumer Group
  • Update Consumer Group
  • Delete Consumer Group
  • Privileges & Resource Manager
  • Join To Consumer Group
  • Move Active User To Other Consumer Group
  • Create Resource Manager Plans & Directive
  • Update Resource Manager Plans
  • Update Resource Manager Plan Directives
  • Delete Resource Manager Plan Directives
  • Delete Resource Manager Plans
  • Create Simple Plan
  • Consumer Group Mapping
  • Automating Tasks with the Scheduler
  • The Scheduler Architecture
  • Jobs
  • Programs
  • Schedules
  • Using Programs and Schedules
  • Job Classes
  • Windows
  • (Privileges) ﺍﻟﺼﻼﺤﻴﺎﺕ
  • Job Logs
  • Dealing with Locking
  • Shared & Exclusive Locks
  • Manual Lock Table
  • The Enqueue Mechanism
  • Lock Contention
  • Deadlocks
  • Diagnostic Sources
  • Alert Log
  • Background Trace Files
  • Server-Generated Alerts
  • Editing Thresholds
  • User Trace Files
  • Instance-Level SQL Tracing
  • Session-Level SQL Tracing
  • Dealing With Database Corruption
  • Block Corruption
  • ﺍﻜﺘﺸﺎﻑ ﺍﻟﻜﺘل ﺍﻟﻔﺎﺴﺩﺓ (Detecting Block Corruptions)
  • The DBVERIFY Utility
  • The ANALYZE Command
  • DBMS_REPAIR Backage
  • ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﻜﺘل ﺍﻟﻔﺎﺴﺩﺓ ﺒﻭﺍﺴﻁﺔ ﺍل:RMAN
  • Managing & Monitoring Memory
  • The System Global Area
  • The Shared Pool
  • The Database Buffer Cache
  • The Default, Keep, and Recycle Pools
  • The Nonstandard Block Size Pools
  • Sizing the Database Buffer Cache
  • The Log Buffer
  • The Large Pool
  • The Java Buffer
  • The Steams Buffer
  • Automatic Shared Memory Management
  • Enable Automatic Shared Memory Management
  • The Program Global Area (PGA)
  • Performance Tunning
  • Invalid Objects
  • Unusable Indexes
  • Rebuild Invalid Inexes
  • Optimizer Statistics
  • Gathering Statistics
  • The Automatic Workload Repository (AWR)
  • The Automatic Database Diagnostic Monitor (ADDM)
  • The SQL Tuning Advisor
  • The SQL Access Advisor
  • The Mean Time to Recover Advisor
  • The Segment Advisor
  • The Undo Advisor
  • Performance Tunning

    Invalid Objects

    ﻤﻥ ﺃﻫﻡ ﺍﻷﺸﻴﺎﺀ ﺍﻟﺘﻲ ﺘﺅﺜﺭ ﻋﻠﻲ ﺍﻷﺩﺍﺀ ﻫﻲ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻐﻴﺭ ﺼﺎﻟﺤﺔ، ﻤﺜل (Procedures & Indexes& Views Materialized & Views & Triggers & Packages & Functions)

    ﻭﺍﻟﺤﻘﻴﻘﺔ ﺃﻥ ﻫﺫﻩ ﺍﻟﻜﺎﺌﻨﺎﺕ ﻴﻤﻜﻥ ﺃﻥ ﺘﻜﻭﻥ ﻏﻴﺭ ﺼﺎﻟﺤﺔ ﻟﺤﻅﺔ ﺇﻨﺸﺎﺌﻬﺎ ﺃﻭ ﺒﻌﺩ ﺇﻨﺸﺎﺌﻬﺎ؛ ﻭﺫﻟﻙ ﻟﻌﺩﺓ ﺃﺴﺒﺎﺏ ﻤﻨﻬﺎ ﺍﻷﺨﻁﺎﺀ ﺍﻟﺒﺭﻤﺠﻴﺔ ﻋﻨﺩ ﻜﺘﺎﺒﺔ ﻫﺫﻩ Procedural Objects ﻓﻔﻲ ﻤﺜل

    ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﻴﺘﻡ ﺇﻨﺸﺎﺀ ﺍﻟﻜﺎﺌﻥ ﻭﻟﻜﻥ ﻴﻜﻭﻥ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ (INVALID) ﻭﺴﻴﻜﻭﻥ ﻏﻴﺭ ﺼﺎﻟﺢ ﻟﻼﺴﺘﺨﺩﺍﻡ، ﺃﻭ ﻋﻨﺩﻤﺎ ﻴﺘﻡ ﺘﻐﻴﻴﺭ ﻓﻲ ﺍلData Objects ﺍﻟﻤﺭﺘﺒﻁﺔ ﺒﻬﺫﺍ ﺍﻟﻜﺎﺌﻥ، ﻓﺎﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﻜﺎﺌﻨﺎﺕ

    ﺍﻟﺘﻲ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻫﺎ ﻤﺭﺘﺒﻁﺔ ﺒﺒﻌﺽ ﺍلData Objects ﻤﺜل ﺍﻟﺠﺩﺍﻭل، ﻓﻠﺤﻅﺔ ﻋﻤل Compile ﻟلProcedural Objects ﻴﺘﻡ ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﺍﻟﺠﺩﺍﻭل ﺃﻭ ﺍل Data Objects ﺍﻟﻤﺭﺘﺒﻁﺔ ﺒﻬﺫﻩ ﺍﻟﻜﺎﺌﻥ

    ﻟﻠﺘﺄﻜﺩ ﻤﻥ ﺼﺤﺘﻬﻡ ﻭﻤﻥ ﺃﻥ ﺍﻻﻤﺘﻴﺎﺯﺍﺕ ﻤﻼﺌﻤﺔ، ﻓﻌل ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻟﻭ ﺃﺸﺎﺭ ﺍﻟﻜﻭﺩ ﻟﻌﻤﻭﺩ ﻤﻌﻴﻥ ﻓﻲ ﺠﺩﻭل ﻓﻬﺫﺍ ﺍﻟﻌﻤﻭﺩ ﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ ﻤﻭﺠﻭﺩﺍﹰ ﺃﻭ ﺴﻨﻔﺸل ﻓﻲ ﻋﻤل Compile ﻟﻬﺫﺍ ﺍﻟﻜﻭﺩ،

    ﻓﻠﻭ ﺘﻡ ﺘﻐﻴﻴﺭ ﺃﻱ Data Objects ﻤﺭﺘﺒﻁﺔ ﺏProcedural Object ﺴﺘﺘﻡ ﺍﻹﺸﺎﺭﺓ ﻟﻬﺫﺍ ﺍلObject Procedural ﻋﻠﻲ ﺍﻨﻪ (INVALID).

    ﻨﻔﺱ ﻫﺫﻩ ﺍﻟﺴﻴﻨﺎﺭﻴﻭﻫﺎﺕ ﻴﻤﻜﻥ ﺃﻥ ﺘﺤﺩﺙ ﻟلViews، ﻓﻘﺩ ﻴﺘﻡ ﺇﻨﺸﺎﺀ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍلViews ﺩﻭﻥ ﻤﺸﺎﻜل ﻭﻟﻜﻥ ﻋﻨﺩﻤﺎ ﻴﺘﻡ ﺘﻐﻴﻴﺭ ﺍﻟﺠﺩﺍﻭل ﺍﻟﻤﺭﺘﺒﻁﺔ ﺒﻬﺫﻩ ﺍلViews ﺘﺼﺒﺢ ﻫﺫﻩ ﺍلViews ﻏﻴﺭ

    ﺼﺎﻟﺤﺔ (INVALID).

    ﻴﺴﺘﻁﻴﻊ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻤﻴﻴﺯ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻐﻴﺭ ﺼﺎﻟﺤﺔ (INVALID) ﻋﻥ ﻁﺭﻴﻕ DBA_OBJECTS View ﺤﻴﺙ ﻴﺤﺘﻭﻱ ﻫﺫﺍ ﺍلView ﻋﻠﻲ ﻋﻤﻭﺩ ﻴﺴﻤﻲ STATUS ﻴﻭﻀﺢ ﻫل ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ

    ﺼﺎﻟﺤ ﺃﻡ ﻏﻴﺭ ﺼﺎﻟﺢ (VALID or INVALID).

     

    select object_name from dba_objects where status='INVALID' and object_type='PROCEDURE'

     

    ﻓﻲ ﺍﻻﺴﺘﻌﻼﻡ ﺃﻋﻼﻩ ﻗﻤﻨﺎ ﺒﺎﺴﺘﻌﺭﺍﺽ ﺠﻤﻴﻊ ﺍلProcedures ﺍﻟﻐﻴﺭ ﺼﺎﻟﺤﺔ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ. ﺍﻟﺴﺅﺍل ﺍﻵﻥ ﺍﻟﺫﻱ ﻴﺠﺏ ﺃﻥ ﻴﻁﺭﺤﻪ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻤﺎﺫﺍ ﻫﺫﻩ ﺍلProcedures ﻏﻴﺭ

    ﺼﺎﻟﺤﺔ، ﻋﻤﻭﻤﺎﹰ ﺇﺫﺍ ﻜﺎﻨﺕ ﻫﻨﺎﻙ ﺒﻌﺽ ﺍلProcedural Objects ﻻ ﻨﺤﺘﺎﺠﻬﺎ ﻴﻤﻜﻥ ﺃﻥ ﻨﺤﺫﻓﻬﺎ ﺍﻵﻥ، ﻭﻟﻜﻥ ﻜﺨﻁﻭﺓ ﺃﻭﻟﻲ ﻴﺴﺘﻁﻴﻊ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻘﻴﺎﻡ ﺒﻌﻤل Compile

    ﻟلInvalid Object ﺭﺒﻤﺎ ﺘﺘﻡ ﺍﻟﻌﻤﻠﻴﺔ ﺒﻨﺠﺎﺡ ﻭﺭﺒﻤﺎ ﺘﻔﺸل ﻭﺤﻴﻨﻬﺎ ﺴﻭﻑ ﻴﺘﻡ ﺍﺴﺘﻘﺒﺎل ﺭﺴﺎﺌل ﺍﻟﺨﻁﺄ ﻟﻜﻥ ﻋﻤﻭﻤﹰﺎ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ الجيد ﻴﻘﻭﻡ ﺒﻌﻼﺝ ﻤﺸﻜﻠﺔ ﺍلInvalid Objects ﻗﺒل

    ﺃﻥ ﻴﻼﺤﻅﻪ ﺍﻟﻤﺴﺘﺨﺩﻤﻭﻥ.

    ﺘﺼﻠﻴﺢ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻐﻴﺭ ﺼﺎﻟﺤﺔ:

    ﻟﻌﻤل Compile ﻟلObjects Procedural ﻨﻘﻭﻡ ﺒﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ:

    ALTER PROCEDURAL_TYPE PROCEDURAL_NMAE COMPILE

     

    alter trigger repcatlogtrig compile;

     

    ﻭﻫﻜﺫﺍ ﺠﻤﻴﻊ ﺃﻨﻭﺍﻉ ﺍلProcedural Objects.

    ﻭﺃﻴﻀﺎﹰ ﻴﺴﺘﻁﻴﻊ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻤل Compile ﻟلViews.

     

    alter view tuser compile;

     

    ﻟﻘﺩ ﻨﺠﺤﺕ ﻋﻤﻠﻴﺔ ﺍلCompile ﺇﺫﺍﹰ ﻟﻴﺴﺕ ﻫﻨﺎﻙ ﻤﺸﻜﻠﺔ ﺍﻵﻥ، ﺃﻤﺎ ﺇﺫﺍ ﻓﺸﻠﺕ ﺍﻟﻌﻤﻠﻴﺔ ﻓﻴﺠﺏ ﺍﻟﺒﺤﺙ ﻋﻥ ﺍﻟﺴﺒﺏ ﻓﻠﻭ ﻓﺸﻠﺕ ﻋﻤﻠﻴﺔ ﺍلCompile ﻹﺠﺭﺍﺀ ﻤﻌﻴﻥ ﻨﺴﺘﻁﻴﻊ

    ﺍﻟﺒﺤﺙ ﻓﻲ ﺴﺒﺏ ﺍﻟﻤﺸﻜﻠﺔ ﻋﻥ ﻁﺭﻴﻕ ﻜﺘﺎﺒﺔ ﺍﻵﻤﺭ SHOW ERRORS، ﻟﻜﻥ ﻴﺠﺏ ﺍﻟﺘﻨﺒﻴﻪ ﺇﻟﻲ ﺃﻥ ﺍﻷﻤﺭ SHOW ERROR ﻻ ﻴﻌﻤل ﻤﻊ ﺍلViews.

    ﻟﻜﻥ ﻤﺎﺫﺍ ﻟﻭ ﻜﺎﻥ ﻟﺩﻴﻙ ﺍﻟﻤﺌﺎﺕ ﺃﻭ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻐﻴﺭ ﺍﻟﺼﺎﻟﺤﺔ ﻭﺍﻟﺘﻲ ﺘﺤﺘﺎﺝ ﻟﻌﻤل Compile ﻫل ﻴﻘﻭﻡ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻌﻤل Compile ﻟﻬﺫﺍ ﺍﻟﻌﺩﻴﺩ ﺍﻟﻜﺒﻴﺭ ﻤﻥ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺒﺼﻭﺭﺓ

    ﻓﺭﺩﻴﺔ ﻻ ﺸﻙ ﺃﻥ ﺍﻷﻤﺭ ﺴﻴﻜﻭﻥ ﺸﺎﻕ ﺠﺩﺍﹰ، ﻓﻔﻲ ﻤﺜل ﻫﺫﺍ ﺍﻟﺴﻴﻨﺎﺭﻴﻭ ﺍﻷﻓﻀل ﻟﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﺴﺘﺨﺩﺍﻡ Script ﺠﺎﻫﺯﺓ ﺘﻘﻭﻡ ﺒﻌﻤل Compile ﻟﺠﻤﻴﻊ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻐﻴﺭ ﺼﺎﻟﺤﺔ،

    ﻟﻜﻥ ﻴﺠﺏ ﺃﻥ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍلScript ﺒﻌﺩ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ AS SYSDBA.

    ﺘﻭﺠﺩ ﺍلScript ﻓﻲ ﺍﻟﻤﺴﺎﺭ ﺍﻟﺘﺎﻟﻲ:

    %oracle_home%\rdbms\admin\utlrp$

    ﺒﺎﻟﻁﺒﻊ ﻗﺩ ﺘﻨﺠﺢ ﺃﻭ ﻗﺩ ﺘﻔﺸل ﻫﺫﻩ ﺍلScript ﻓﻲ ﻋﻤل Compile ﻟلInvalid Objects، ﻋﻤﻭﻤﹰﺎ ﻟﻭ ﻓﺸﻠﺕ ﺍﻟﻌﻤﻠﻴﺔ ﻓﻴﺠﺏ ﺍﻟﺒﺤﺙ ﻋﻥ ﺍﻷﺴﺒﺎﺏ ﻭﻟﻜﻥ ﺒﺸﻜل ﻤﻨﻔﺭﺩ ﻟﻬﺫﻩ ﺍلObjects.

     

    -------------------------------------------------------------------