[{"data":1,"prerenderedAt":632},["ShallowReactive",2],{"menu-featured-themes":3,"course-programmation-pl-sql-pour-bases-de-donnees-oracle":593,"highlight-SQL-CREATE OR REPLACE PR":631},[4,36,133,145,227,349,361,413,465,522,574],{"_id":5,"name":6,"slug":7,"metadata":8,"courses":10},"b00f0fff-150d-444f-aced-509768f8da96","Bases de données","bases-de-donnees",{"theme-icon-name":9},"solar:database-linear",[11,16,21,26,31],{"name":12,"slug":13,"metadata":14,"theme":15},"SQL avancé pour l’analyse de données et l’optimisation des requêtes","sql-avance-pour-l-analyse-de-donnees-et-l-optimisation-des-requetes",[],{"_id":5},{"name":17,"slug":18,"metadata":19,"theme":20},"Programmation PL/SQL pour bases de données Oracle","programmation-pl-sql-pour-bases-de-donnees-oracle",[],{"_id":5},{"name":22,"slug":23,"metadata":24,"theme":25},"Langage SQL : fondations, requêtes avancées et optimisation","langage-sql-fondations-requetes-avancees-et-optimisation",[],{"_id":5},{"name":27,"slug":28,"metadata":29,"theme":30},"MongoDB","mongodb",[],{"_id":5},{"name":32,"slug":33,"metadata":34,"theme":35},"MySQL","mysql",[],{"_id":5},{"_id":37,"name":38,"slug":39,"metadata":40,"courses":42},"08de519f-b33c-4368-84f7-564b178cc5ba","Développement logiciel","developpement-logiciel",{"theme-icon-name":41},"solar:chat-square-code-linear",[43,48,53,58,63,68,73,78,83,88,93,98,103,108,113,118,123,128],{"name":44,"slug":45,"metadata":46,"theme":47},"UML – Modélisation pour l’analyse et la conception logicielle ","uml-modelisation-pour-l-analyse-et-la-conception-logicielle",[],{"_id":37},{"name":49,"slug":50,"metadata":51,"theme":52},"Algorithmique et développement structuré ","algorithmique-et-developpement-structure",[],{"_id":37},{"name":54,"slug":55,"metadata":56,"theme":57},"Java – Initiation à la programmation ","java-initiation-a-la-programmation",[],{"_id":37},{"name":59,"slug":60,"metadata":61,"theme":62},"Java – Maîtriser les évolutions du langage (versions 8 à 22) ","java-maitriser-les-evolutions-du-langage-versions-8-a-22",[],{"_id":37},{"name":64,"slug":65,"metadata":66,"theme":67},"Java – Bonnes pratiques de code et qualité logicielle ","java-bonnes-pratiques-de-code-et-qualite-logicielle",[],{"_id":37},{"name":69,"slug":70,"metadata":71,"theme":72},"Python – Approche pratique du développement ","python-approche-pratique-du-developpement",[],{"_id":37},{"name":74,"slug":75,"metadata":76,"theme":77},"Python – Approfondissement des concepts et bonnes pratiques ","python-approfondissement-des-concepts-et-bonnes-pratiques",[],{"_id":37},{"name":79,"slug":80,"metadata":81,"theme":82},"Bases de la programmation orientée objet","bases-de-la-programmation-orientee-objet",[],{"_id":37},{"name":84,"slug":85,"metadata":86,"theme":87},"C# 13 et .NET – Techniques avancées de développement ","c-13-et-net-techniques-avancees-de-developpement",[],{"_id":37},{"name":89,"slug":90,"metadata":91,"theme":92},"ASP.NET Blazor – développement d’applications Web  ","asp-net-blazor-developpement-d-applications-web",[],{"_id":37},{"name":94,"slug":95,"metadata":96,"theme":97},"C# – Développement Web avec ASP.NET MVC ","c-developpement-web-avec-asp-net-mvc",[],{"_id":37},{"name":99,"slug":100,"metadata":101,"theme":102},"C# – Développement d’applications avec WPF","c-developpement-d-applications-avec-wpf",[],{"_id":37},{"name":104,"slug":105,"metadata":106,"theme":107},"Découverte du langage Rust : fondamentaux et premiers projets","decouverte-du-langage-rust-fondamentaux-et-premiers-projets",[],{"_id":37},{"name":109,"slug":110,"metadata":111,"theme":112},"Langage Go : bases essentielles et programmation concurrente ","langage-go-bases-essentielles-et-programmation-concurrente",[],{"_id":37},{"name":114,"slug":115,"metadata":116,"theme":117},"Initiation au langage C : fondamentaux et mise en pratique ","initiation-au-langage-c-fondamentaux-et-mise-en-pratique",[],{"_id":37},{"name":119,"slug":120,"metadata":121,"theme":122},"Programmation en langage C++ : principes et pratique ","programmation-en-langage-c-principes-et-pratique",[],{"_id":37},{"name":124,"slug":125,"metadata":126,"theme":127},"C# avancé","c-avance",[],{"_id":37},{"name":129,"slug":130,"metadata":131,"theme":132},"C#","c",[],{"_id":37},{"_id":134,"name":135,"slug":136,"metadata":137,"courses":139},"6951e3d6-ef98-4e7c-910f-cce2f408dd0e","Développement mobile","developpement-mobile",{"theme-icon-name":138},"solar:monitor-smartphone-linear",[140],{"name":141,"slug":142,"metadata":143,"theme":144},"Android","android",[],{"_id":134},{"_id":146,"name":147,"slug":148,"metadata":149,"courses":151},"448a5bc8-7a9a-4817-ab01-178c3abb1d35","Développement Web Backend","developpement-web-backend",{"theme-icon-name":150},"solar:server-minimalistic-linear",[152,157,162,167,172,177,182,187,192,197,202,207,212,217,222],{"name":153,"slug":154,"metadata":155,"theme":156},"Symfony 7 – Développement Web complet (de l’initiation à l’approfondissement) ","symfony-7-developpement-web-complet-de-l-initiation-a-l-approfondissement",[],{"_id":146},{"name":158,"slug":159,"metadata":160,"theme":161},"Ruby on Rails – Développement d’applications Web ","ruby-on-rails-developpement-d-applications-web",[],{"_id":146},{"name":163,"slug":164,"metadata":165,"theme":166},"Hibernate et JPA – Maîtriser la persistance des données en Java ","hibernate-et-jpa-maitriser-la-persistance-des-donnees-en-java",[],{"_id":146},{"name":168,"slug":169,"metadata":170,"theme":171},"Django – Développement d’applications Web avec Python ","django-developpement-d-applications-web-avec-python",[],{"_id":146},{"name":173,"slug":174,"metadata":175,"theme":176},"Spring Framework – Développement d’applications d’entreprise ","spring-framework-developpement-d-applications-d-entreprise",[],{"_id":146},{"name":178,"slug":179,"metadata":180,"theme":181},"Spring Framework – Développement avancé et architectures professionnelles ","spring-framework-developpement-avance-et-architectures-professionnelles",[],{"_id":146},{"name":183,"slug":184,"metadata":185,"theme":186},"Drupal 10/11 – Développement avancé Back‑End","drupal-10-11-developpement-avance-back-end",[],{"_id":146},{"name":188,"slug":189,"metadata":190,"theme":191},"REST API – Les fondamentaux  ","rest-api-les-fondamentaux",[],{"_id":146},{"name":193,"slug":194,"metadata":195,"theme":196},"GraphQL – Les fondamentaux  ","graphql-les-fondamentaux",[],{"_id":146},{"name":198,"slug":199,"metadata":200,"theme":201},"REST API : conception robuste, bonnes pratiques et sécurité","rest-api-conception-robuste-bonnes-pratiques-et-securite",[],{"_id":146},{"name":203,"slug":204,"metadata":205,"theme":206},"Structurer et automatiser vos projets avec Apache Maven ","structurer-et-automatiser-vos-projets-avec-apache-maven",[],{"_id":146},{"name":208,"slug":209,"metadata":210,"theme":211},"Développeur Web PHP : création d’applications dynamiques","developpeur-web-php-creation-d-applications-dynamiques",[],{"_id":146},{"name":213,"slug":214,"metadata":215,"theme":216},"Node JS","node-js",[],{"_id":146},{"name":218,"slug":219,"metadata":220,"theme":221},"Spring","spring",[],{"_id":146},{"name":223,"slug":224,"metadata":225,"theme":226},"ASP.NET Core MVC ","asp-net-core-mvc",[],{"_id":146},{"_id":228,"name":229,"slug":230,"metadata":231,"courses":233},"abd712b8-6a6c-4c9b-b382-0aea1eac47d6","Développement Web Frontend","developpement-web-frontend",{"theme-icon-name":232},"mdi:open-in-browser",[234,239,244,249,254,259,264,269,274,279,284,289,294,299,304,309,314,319,324,329,334,339,344],{"name":235,"slug":236,"metadata":237,"theme":238},"HTML, CSS et Responsive Design – Conception de pages Web","html-css-et-responsive-design-conception-de-pages-web",[],{"_id":228},{"name":240,"slug":241,"metadata":242,"theme":243},"CSS avancé et architecture de styles avec Less et Sass ","css-avance-et-architecture-de-styles-avec-less-et-sass",[],{"_id":228},{"name":245,"slug":246,"metadata":247,"theme":248},"Bootstrap 5.x – Créer des interfaces Web responsives ","bootstrap-5-x-creer-des-interfaces-web-responsives",[],{"_id":228},{"name":250,"slug":251,"metadata":252,"theme":253},"HTML et CSS avancés – API, techniques modernes et bonnes pratiques ","html-et-css-avances-api-techniques-modernes-et-bonnes-pratiques",[],{"_id":228},{"name":255,"slug":256,"metadata":257,"theme":258},"JavaScript – Approfondissement des concepts et techniques avancées ","javascript-approfondissement-des-concepts-et-techniques-avancees",[],{"_id":228},{"name":260,"slug":261,"metadata":262,"theme":263}," TypeScript – Approfondir et maîtriser le typage pour des applications robustes ","typescript-approfondir-et-maitriser-le-typage-pour-des-applications-robustes",[],{"_id":228},{"name":265,"slug":266,"metadata":267,"theme":268},"Angular – Techniques avancées pour applications Web ","angular-techniques-avancees-pour-applications-web",[],{"_id":228},{"name":270,"slug":271,"metadata":272,"theme":273},"Angular – Développement d’applications Web interactives ","angular-developpement-d-applications-web-interactives",[],{"_id":228},{"name":275,"slug":276,"metadata":277,"theme":278},"ReactJS – Développement d’applications Web ","reactjs-developpement-d-applications-web",[],{"_id":228},{"name":280,"slug":281,"metadata":282,"theme":283},"ReactJS – Développer des applications avancées ","reactjs-developper-des-applications-avancees",[],{"_id":228},{"name":285,"slug":286,"metadata":287,"theme":288},"Next.js – Développement d’applications Web React modernes ","next-js-developpement-d-applications-web-react-modernes",[],{"_id":228},{"name":290,"slug":291,"metadata":292,"theme":293},"Vue.js 3 – Développement d’applications Web ","vue-js-3-developpement-d-applications-web",[],{"_id":228},{"name":295,"slug":296,"metadata":297,"theme":298},"Vue.js 3 – Techniques avancées pour applications réactives","vue-js-3-techniques-avancees-pour-applications-reactives",[],{"_id":228},{"name":300,"slug":301,"metadata":302,"theme":303},"WordPress – Approche technique pour développeurs ","wordpress-approche-technique-pour-developpeurs",[],{"_id":228},{"name":305,"slug":306,"metadata":307,"theme":308},"Conception et développement Web accessible : fondations et pratiques essentielles","conception-et-developpement-web-accessible-fondations-et-pratiques-essentielles",[],{"_id":228},{"name":310,"slug":311,"metadata":312,"theme":313},"Programmation JavaScript : bases essentielles et manipulation web ","programmation-javascript-bases-essentielles-et-manipulation-web",[],{"_id":228},{"name":315,"slug":316,"metadata":317,"theme":318},"TypeScript","typescript",[],{"_id":228},{"name":320,"slug":321,"metadata":322,"theme":323},"Industrialisation front-end ","industrialisation-front-end",[],{"_id":228},{"name":325,"slug":326,"metadata":327,"theme":328},"React avancé","react-avance",[],{"_id":228},{"name":330,"slug":331,"metadata":332,"theme":333},"Angular avancé","angular-avance",[],{"_id":228},{"name":335,"slug":336,"metadata":337,"theme":338},"Vue JS ","vue-js",[],{"_id":228},{"name":340,"slug":341,"metadata":342,"theme":343},"React ","react",[],{"_id":228},{"name":345,"slug":346,"metadata":347,"theme":348},"Angular","angular",[],{"_id":228},{"_id":350,"name":351,"slug":352,"metadata":353,"courses":355},"69210f90-fd72-449a-876c-723ed8025ca2","Développement Web responsable","developpement-web-responsable",{"theme-icon-name":354},"mdi:search-web",[356],{"name":357,"slug":358,"metadata":359,"theme":360},"Développement web éco-responsable & Backend basse consommation","developpement-web-eco-responsable-backend-basse-consommation",[],{"_id":350},{"_id":362,"name":363,"slug":364,"metadata":365,"courses":367},"81cc5878-3028-4c38-809e-d689f9d814a8","DevOps","devops",{"theme-icon-name":366},"mdi:microsoft-azure-devops",[368,373,378,383,388,393,398,403,408],{"name":369,"slug":370,"metadata":371,"theme":372},"AWS Certified Cloud Practitioner - Fondamentaux","aws-certified-cloud-practitioner-fondamentaux",[],{"_id":362},{"name":374,"slug":375,"metadata":376,"theme":377},"AWS – Principes d’architecture Cloud ","aws-principes-d-architecture-cloud",[],{"_id":362},{"name":379,"slug":380,"metadata":381,"theme":382},"Kibana – Exploration, visualisation et exploration de données ","kibana-exploration-visualisation-et-exploration-de-donnees",[],{"_id":362},{"name":384,"slug":385,"metadata":386,"theme":387},"DevOps – Concepts, pratiques et mise en place ","devops-concepts-pratiques-et-mise-en-place",[],{"_id":362},{"name":389,"slug":390,"metadata":391,"theme":392},"GitLab : gestion de code, collaboration et intégration continue","gitlab-gestion-de-code-collaboration-et-integration-continue",[],{"_id":362},{"name":394,"slug":395,"metadata":396,"theme":397},"Microsoft 365 – Administrer la suite complète ","microsoft-365-administrer-la-suite-complete",[],{"_id":362},{"name":399,"slug":400,"metadata":401,"theme":402},"Terraform","terraform",[],{"_id":362},{"name":404,"slug":405,"metadata":406,"theme":407},"Kubernetes","kubernetes",[],{"_id":362},{"name":409,"slug":410,"metadata":411,"theme":412},"AWS","aws",[],{"_id":362},{"_id":414,"name":415,"slug":416,"metadata":417,"courses":419},"6ed0fa01-28f8-41af-9a81-27a12556e38f","Gestion de projet","gestion-de-projet",{"theme-icon-name":418},"solar:bill-list-linear",[420,425,430,435,440,445,450,455,460],{"name":421,"slug":422,"metadata":423,"theme":424},"Maîtriser Jira pour la gestion de projets agile et collaborative","maitriser-jira-pour-la-gestion-de-projets-agile-et-collaborative",[],{"_id":414},{"name":426,"slug":427,"metadata":428,"theme":429},"Devenir Product Owner et réussir la certification PSPO","devenir-product-owner-et-reussir-la-certification-pspo",[],{"_id":414},{"name":431,"slug":432,"metadata":433,"theme":434},"De chef de projets à manager Agile – Certification Scrum Master (PSM1)","de-chef-de-projets-a-manager-agile-certification-scrum-master-psm1",[],{"_id":414},{"name":436,"slug":437,"metadata":438,"theme":439},"Management et gestion de projets opérationnels","management-et-gestion-de-projets-operationnels",[],{"_id":414},{"name":441,"slug":442,"metadata":443,"theme":444},"Devenir Coach Agile ","devenir-coach-agile",[],{"_id":414},{"name":446,"slug":447,"metadata":448,"theme":449},"Comprendre et appliquer Kanban ","comprendre-et-appliquer-kanban",[],{"_id":414},{"name":451,"slug":452,"metadata":453,"theme":454},"Comprendre la démarche Agile ","comprendre-la-demarche-agile",[],{"_id":414},{"name":456,"slug":457,"metadata":458,"theme":459},"GITLAB : de la gestion de projet aux pipelines avancés","gitlab-de-la-gestion-de-projet-aux-pipelines-avances",[],{"_id":414},{"name":461,"slug":462,"metadata":463,"theme":464},"Méthodes agiles","methodes-agiles",[],{"_id":414},{"_id":466,"name":467,"slug":468,"metadata":469,"courses":471},"1bfd6e41-c2b0-4813-a29b-c9e1c486b5d0","Intelligence Artificielle","intelligence-artificielle",{"theme-icon-name":470},"solar:cpu-bold-duotone",[472,477,482,487,492,497,502,507,512,517],{"name":473,"slug":474,"metadata":475,"theme":476},"L'Intelligence Artificielle appliquée aux tests logiciels : initiation et bonnes pratiques ","l-intelligence-artificielle-appliquee-aux-tests-logiciels-initiation-et-bonnes-pratiques",[],{"_id":466},{"name":478,"slug":479,"metadata":480,"theme":481},"Intelligence artificielle appliquée au développement logiciel et à l’analyse de code","intelligence-artificielle-appliquee-au-developpement-logiciel-et-a-l-analyse-de-code",[],{"_id":466},{"name":483,"slug":484,"metadata":485,"theme":486},"Machine Learning avec Microsoft Azure et Python : de la conception au déploiement de modèles","machine-learning-avec-microsoft-azure-et-python-de-la-conception-au-deploiement-de-modeles",[],{"_id":466},{"name":488,"slug":489,"metadata":490,"theme":491},"MCP (Model Context Protocol) : intégrer des LLM avec des applications et des sources de données","mcp-model-context-protocol-integrer-des-llm-avec-des-applications-et-des-sources-de-donnees",[],{"_id":466},{"name":493,"slug":494,"metadata":495,"theme":496},"Déployer et exploiter une intelligence artificielle open source sur infrastructure locale ","deployer-et-exploiter-une-intelligence-artificielle-open-source-sur-infrastructure-locale",[],{"_id":466},{"name":498,"slug":499,"metadata":500,"theme":501},"Architecture microservices intelligentes : conception, développement et déploiement avec intégration d’Intelligence Artificielle","architecture-microservices-intelligentes-conception-developpement-et-deploiement-avec-integration-d-intelligence-artificielle",[],{"_id":466},{"name":503,"slug":504,"metadata":505,"theme":506},"Ingénierie de solutions d’intelligence artificielle - conception, construction et mise en production","ingenierie-de-solutions-d-intelligence-artificielle-conception-construction-et-mise-en-production",[],{"_id":466},{"name":508,"slug":509,"metadata":510,"theme":511},"Data Science – Concepts de base et mise en pratique ","data-science-concepts-de-base-et-mise-en-pratique",[],{"_id":466},{"name":513,"slug":514,"metadata":515,"theme":516},"Python appliqué aux calculs scientifiques et à l’analyse de données ","python-applique-aux-calculs-scientifiques-et-a-l-analyse-de-donnees",[],{"_id":466},{"name":518,"slug":519,"metadata":520,"theme":521},"Initiation à l’intelligence artificielle et aux principaux outils de Deep Learning ","initiation-a-l-intelligence-artificielle-et-aux-principaux-outils-de-deep-learning",[],{"_id":466},{"_id":523,"name":524,"slug":525,"metadata":526,"courses":528},"174b8e60-d342-450b-a484-35bc04a711fd","Microsoft Azure","microsoft-azure",{"theme-icon-name":527},"mdi:microsoft-azure",[529,534,539,544,549,554,559,564,569],{"name":530,"slug":531,"metadata":532,"theme":533},"Microsoft Azure - Sécurité et réseaux (AZ-700)","microsoft-azure-securite-et-reseaux-az-700",[],{"_id":523},{"name":535,"slug":536,"metadata":537,"theme":538},"Microsoft Azure - Conception de solutions d'infrastructure (AZ305)","microsoft-azure-conception-de-solutions-d-infrastructure-az305",[],{"_id":523},{"name":540,"slug":541,"metadata":542,"theme":543}," Microsoft Azure IA – Concevoir et développer des solutions intelligentes (AI102) ","microsoft-azure-ia-concevoir-et-developper-des-solutions-intelligentes-ai102",[],{"_id":523},{"name":545,"slug":546,"metadata":547,"theme":548},"Microsoft Azure - Conception de solutions d'infrastructure (AZ-305)","microsoft-azure-conception-de-solutions-d-infrastructure-az-305",[],{"_id":523},{"name":550,"slug":551,"metadata":552,"theme":553},"Microsoft Azure AI - Les fondamentaux","microsoft-azure-ai-les-fondamentaux",[],{"_id":523},{"name":555,"slug":556,"metadata":557,"theme":558},"Microsoft Azure - Administrateur (AZ-104) ","microsoft-azure-administrateur-az-104",[],{"_id":523},{"name":560,"slug":561,"metadata":562,"theme":563},"Microsoft Azure - Fondamentaux (AZ-900) ","microsoft-azure-fondamentaux-az-900",[],{"_id":523},{"name":565,"slug":566,"metadata":567,"theme":568},"Microsoft Azure - Développement de solutions (AZ-204) ","microsoft-azure-developpement-de-solutions-az-204",[],{"_id":523},{"name":570,"slug":571,"metadata":572,"theme":573},"Conception et mise en oeuvre de solutions Microsoft DevOps (AZ-400)  ","conception-et-mise-en-oeuvre-de-solutions-microsoft-devops-az-400",[],{"_id":523},{"_id":575,"name":576,"slug":577,"metadata":578,"courses":580,"collectiveGroups":581},"collective-actions-theme","Formations actions collectives","formations-actions-collectives",{"theme-icon-name":579},"mdi:account-group",[],[582],{"themeId":414,"themeName":415,"themeIcon":418,"courses":583},[584,587,590],{"name":441,"slug":442,"metadata":585,"theme":586},[],{"_id":414},{"name":446,"slug":447,"metadata":588,"theme":589},[],{"_id":414},{"name":451,"slug":452,"metadata":591,"theme":592},[],{"_id":414},{"id":594,"name":17,"slug":18,"location":595,"targetAudienceFormatMarkdown":596,"prerequisitesFormatMarkdown":597,"objectivesFormatMarkdown":598,"descriptionFormatMarkdown":599,"teachingMethodsFormatMarkdown":600,"teachingResourcesFormatMarkdown":601,"evaluationMethodsFormatMarkdown":602,"accessibilityFormatMarkdown":603,"accessMethodsFormatMarkdown":604,"minimumParticipants":605,"maximumParticipants":605,"duration":606,"reference":607,"trainerType":595,"updated_at":608,"created_at":609,"price":610,"organizationMode":595,"theme":611,"code":613,"tags":618,"metadata":622},"/api/courses/601239b3-5265-4cff-bd40-68562d211ab7",null,"Développeurs et intégrateurs souhaitant automatiser des traitements dans une base Oracle. \n\nAdministrateurs de bases de données désirant étendre et optimiser des scripts SQL avec des blocs PL/SQL. \n\nAnalystes et techniciens en informatique impliqués dans des projets d’évolution ou de maintenance de bases Oracle. \n\nToute personne devant écrire ou maintenir des programmes PL/SQL dans un contexte professionnel.","-   Connaissance de base du langage SQL (sélection, jointures, fonctions simples). \n-   Notions générales sur les systèmes de gestion de bases de données relationnelles. \n-   Utilisation d’un outil de requête Oracle (SQL*Plus, SQL Developer ou équivalent). \n-   Aucun prérequis spécifique en programmation structurée n’est indispensable, mais une première expérience d’un langage (Python, Java, C…) est un plus. ","-   Comprendre l’architecture PL/SQL et son intégration dans l’environnement Oracle Database. \n-   Écrire des blocs PL/SQL structurés, stockés ou anonymes, pour automatiser des traitements. \n-   Utiliser les structures de contrôle (conditions, boucles), les exceptions et les curseurs pour gérer le flux des programmes. \n-   Concevoir et déployer des procédures, fonctions, packages et triggers pour des besoins applicatifs robustes. \n-   Optimiser et tester des programmes PL/SQL en tenant compte des bonnes pratiques de performance et de sécurité. ","--day1--\n\n## Introduction à PL/SQL et blocs de base \n\n-   Présentation de l’environnement Oracle et contexte d’utilisation de PL/SQL. \n-   Concepts fondamentaux : architecture du moteur PL/SQL, avantages par rapport au SQL simple. \n-   Syntaxe d’un bloc PL/SQL : sections déclaration, exécution et exception. \n-   Types de données PL/SQL et conversions simples. \n\nAtelier pratique : exécution de blocs PL/SQL anonymes et contrôle des résultats. \n\n--break--\n\n## Structures de contrôle et logique conditionnelle \n\n-   Instructions conditionnelles (IF, CASE) pour diriger le flux d’exécution. \n-   Boucles et itérations (LOOP, WHILE, FOR). \n-   Gestion des variables, des constantes et des scopes. \n\nAtelier pratique : utilisation des structures de contrôle pour résoudre des cas réels (calculs, mises à jour conditionnelles). \n\n--day2--\n\n## Curseurs et traitement des ensembles de données \n\n-   Concepts des curseurs explicites et implicites. \n-   Ouverture, lecture et fermeture de curseurs. \n-   Opérations sur plusieurs lignes avec BULK COLLECT / FORALL. \n\nAtelier pratique : lecture et traitement de jeux de données avec curseurs adaptés. \n\n--break--\n\n## Gestion des erreurs et des exceptions \n\n-   Types d’exceptions standards et personnalisées. \n-   Détection et traitement des erreurs dans les blocs PL/SQL. \n-   Affichage, journalisation ou renvoi des erreurs pour diagnostic. \n\nAtelier pratique : implémentation d’une gestion robuste des erreurs dans des programmes PL/SQL. \n\n--day3--\n\n## Procédures et fonctions stockés \n\n-   Différencier procédures et fonctions, choix d’usage. \n-   Paramètres d’entrée/sortie et modes d’appel. \n-   Déploiement et modification de programmes stockés. \n\nAtelier pratique : développement de procédures et fonctions pour automatiser des processus métier. \n\n--break--\n\n## Packages et triggers \n\n-   Introduction aux packages : spécification et corps. \n-   Groupement logique de sous-programmes et variables globales. \n-   Conception et déploiement de triggers pour automatiser des actions en réponse à des événements de table. \n\nAtelier pratique : création de packages modulaires et triggers applicatifs.","Nos formations, équilibrées entre théorie (50%) et pratique (50%), offrent un apprentissage interactif grâce à des méthodes variées comme les travaux pratiques, les mises en situation et les démonstrations. Des QCM réguliers assurent le suivi des acquis.\n\nVariables suivant les formations, les moyens techniques mis en oeuvre sont :\n\nOrdinateurs Mac ou PC, connexion internet fibre, tableau blanc ou écran (pour le distanciel).\n\nEn cas de formation intra sur site externe à Le Code, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires\n\n(équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\n  \n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\n  \n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\n  \n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l'ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h\n\nouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la\n\nformation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.",0,"21.00","PL SQL","2026-04-29T13:02:20+00:00","2026-04-29T12:58:30+00:00","2250.00",{"id":612,"name":6,"slug":7},"/api/themes/b00f0fff-150d-444f-aced-509768f8da96",{"id":614,"label":615,"domain":616},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":617},"32 - Communication et information",[619],{"id":620,"name":621},"7732139d-6025-4fde-b145-39298ced3408","MENUFEATURED",{"desc-accroche":623,"Description":624,"icon-color":625,"icon-name":626,"code-langage":627,"code-snippet":628,"courte-description":629,"titre-accroche":630},"Maîtrisez la programmation côté serveur avec PL/SQL : apprenez à écrire des procédures stockées, des fonctions, des triggers et des packages robustes pour optimiser les performances et la sécurité de vos bases de données Oracle.","Le langage PL/SQL est l'extension procédurale indispensable pour tout développeur travaillant sur l'écosystème Oracle. Cette formation vous enseigne comment structurer votre logique métier directement au sein de la base de données pour minimiser les échanges réseau et maximiser l'efficacité des traitements. Vous aborderez la gestion des curseurs, le traitement des exceptions, ainsi que les techniques avancées de manipulation de collections. À l'issue de ce cursus, vous serez capable de concevoir des architectures de données cohérentes, capables de gérer des volumes massifs d'informations avec une intégrité irréprochable.","#F44336","mdi:database-edit","SQL","CREATE OR REPLACE PROCEDURE update_inventory (\n\tp_prod_id IN NUMBER,\n\tp_quantity IN NUMBER\n) AS\nBEGIN\n\tUPDATE products\n\tSET stock = stock - p_quantity\n\tWHERE id = p_prod_id;\n\n\tIF SQL%NOTFOUND THEN\n\t\tRAISE_APPLICATION_ERROR(-20001, 'Produit introuvable');\n\tEND IF;\nEND;","Apprenez à développer des solutions performantes avec PL/SQL : maîtrisez les blocs anonymes, les procédures stockées et les triggers sous Oracle.","Exploitez toute la puissance du moteur Oracle en développant des traitements de données complexes, performants et sécurisés.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-sql\">\u003Cspan class=\"hljs-keyword\">CREATE\u003C/span> \u003Cspan class=\"hljs-keyword\">OR\u003C/span> REPLACE \u003Cspan class=\"hljs-keyword\">PROCEDURE\u003C/span> update_inventory (\n\tp_prod_id \u003Cspan class=\"hljs-keyword\">IN\u003C/span> NUMBER,\n\tp_quantity \u003Cspan class=\"hljs-keyword\">IN\u003C/span> NUMBER\n) \u003Cspan class=\"hljs-keyword\">AS\u003C/span>\n\u003Cspan class=\"hljs-keyword\">BEGIN\u003C/span>\n\t\u003Cspan class=\"hljs-keyword\">UPDATE\u003C/span> products\n\t\u003Cspan class=\"hljs-keyword\">SET\u003C/span> stock \u003Cspan class=\"hljs-operator\">=\u003C/span> stock \u003Cspan class=\"hljs-operator\">-\u003C/span> p_quantity\n\t\u003Cspan class=\"hljs-keyword\">WHERE\u003C/span> id \u003Cspan class=\"hljs-operator\">=\u003C/span> p_prod_id;\n\n\tIF \u003Cspan class=\"hljs-keyword\">SQL\u003C/span>\u003Cspan class=\"hljs-operator\">%\u003C/span>NOTFOUND \u003Cspan class=\"hljs-keyword\">THEN\u003C/span>\n\t\tRAISE_APPLICATION_ERROR(\u003Cspan class=\"hljs-number\">-20001\u003C/span>, \u003Cspan class=\"hljs-string\">&#x27;Produit introuvable&#x27;\u003C/span>);\n\t\u003Cspan class=\"hljs-keyword\">END\u003C/span> IF;\n\u003Cspan class=\"hljs-keyword\">END\u003C/span>;\u003C/code>\u003C/pre>",1777564966585]