1. Home
  2. /
  3. Plsql
  4. /
  5. PL/SQL Counter and Theme Toggle

PL/SQL Counter and Theme Toggle - Plsql Typing CST Test

Loading…

PL/SQL Counter and Theme Toggle — Plsql Code

Demonstrates a simple counter with theme toggling using PL/SQL variables and DBMS_OUTPUT for output.

DECLARE
	count NUMBER := 0;
	isDark BOOLEAN := FALSE;
BEGIN
	-- Display initial state
	DBMS_OUTPUT.PUT_LINE('Counter: ' || count);
	DBMS_OUTPUT.PUT_LINE('Theme: ' || CASE WHEN isDark THEN 'Dark' ELSE 'Light' END);

	-- Increment counter
	count := count + 1;
	DBMS_OUTPUT.PUT_LINE('Counter: ' || count);

	-- Toggle theme
	isDark := NOT isDark;
	DBMS_OUTPUT.PUT_LINE('Theme: ' || CASE WHEN isDark THEN 'Dark' ELSE 'Light' END);

	-- Decrement counter
	count := count - 1;
	DBMS_OUTPUT.PUT_LINE('Counter: ' || count);

	-- Reset counter
	count := 0;
	DBMS_OUTPUT.PUT_LINE('Counter: ' || count);
END;

Plsql Language Guide

PL/SQL (Procedural Language/Structured Query Language) is Oracle Corporation's procedural extension to SQL. It combines SQL's data manipulation capabilities with procedural constructs like loops, conditions, and exceptions, enabling complex business logic execution directly within the database.

Primary Use Cases

  • ▸Writing stored procedures and functions
  • ▸Creating database triggers
  • ▸Automating batch jobs
  • ▸Data validation and business rule enforcement
  • ▸Complex reporting and ETL tasks

Notable Features

  • ▸Seamless SQL integration
  • ▸Support for cursors and collections
  • ▸Exception handling and error propagation
  • ▸Procedural constructs: loops, conditions, variables
  • ▸Package-based modular development

Origin & Creator

Developed by Oracle Corporation in the late 1980s to extend SQL with procedural capabilities.

Industrial Note

PL/SQL is the backbone of Oracle database applications, supporting triggers, stored procedures, and batch processing in enterprise environments.

Quick Explain

  • ▸PL/SQL allows writing procedural code inside the database using SQL statements.
  • ▸Supports variables, loops, conditions, and exception handling.
  • ▸Optimized for Oracle databases, enhancing performance and maintainability.

Core Features

  • ▸Blocks: anonymous, procedures, functions, triggers
  • ▸Variables and constants with strong typing
  • ▸Control structures: IF, CASE, LOOP, WHILE
  • ▸Explicit and implicit cursors for query handling
  • ▸Exception blocks for error management

Learning Path

  • ▸Start with basic SQL and anonymous blocks
  • ▸Learn loops, conditions, and cursors
  • ▸Build stored procedures and functions
  • ▸Implement triggers and packages
  • ▸Move to dynamic SQL and bulk processing

Practical Examples

  • ▸Insert audit logs via triggers
  • ▸Automate monthly report generation
  • ▸Validate input data using procedures
  • ▸Bulk update using FORALL with collections
  • ▸Implement sequence-based ID generation

Comparisons

  • ▸Stronger procedural capabilities than standard SQL
  • ▸Oracle-specific; differs from T-SQL (SQL Server)
  • ▸Better integration with Oracle features than PL/pgSQL
  • ▸Not portable to non-Oracle DBs without modification
  • ▸Ideal for server-side business logic in Oracle ecosystem

Strengths

  • ▸Tightly integrated with Oracle SQL
  • ▸Enables complex business logic within the database
  • ▸Reduces network traffic by executing logic server-side
  • ▸Supports modular and reusable code via packages
  • ▸Robust error handling and security features

Limitations

  • ▸Mostly Oracle-specific; not portable
  • ▸Slower for very large data sets compared to external processing
  • ▸Limited GUI or external integration capabilities
  • ▸Debugging can be harder without proper tools
  • ▸Not ideal for non-database-centric applications

When NOT to Use

  • ▸When targeting non-Oracle databases
  • ▸For large-scale data transformations better suited for ETL tools
  • ▸For GUI-heavy applications
  • ▸When real-time performance is critical outside DB
  • ▸For cross-platform database applications

Cheat Sheet

  • ▸DECLARE ... BEGIN ... END;
  • ▸CREATE OR REPLACE PROCEDURE proc_name IS ... END;
  • ▸CREATE OR REPLACE FUNCTION func_name RETURN datatype IS ... END;
  • ▸FOR rec IN cursor LOOP ... END LOOP;
  • ▸EXCEPTION WHEN NO_DATA_FOUND THEN ... END;

FAQ

  • ▸Is PL/SQL still relevant?
  • ▸Yes - widely used in enterprise Oracle applications.
  • ▸Can PL/SQL run outside Oracle?
  • ▸Mostly no - it's Oracle-specific, though some features exist in compatible DBs.
  • ▸Does PL/SQL support object-oriented programming?
  • ▸Yes - via object types and methods.
  • ▸Should I learn PL/SQL before SQL?
  • ▸Learn SQL basics first; PL/SQL builds on SQL.

30-Day Skill Plan

  • ▸Week 1: SQL + anonymous blocks
  • ▸Week 2: Control structures and cursors
  • ▸Week 3: Procedures, functions, and packages
  • ▸Week 4: Triggers and bulk processing

Final Summary

  • ▸PL/SQL enables procedural programming inside Oracle databases.
  • ▸Ideal for complex business logic, automation, and batch processing.
  • ▸Supports robust error handling, modular packages, and triggers.
  • ▸Core skill for Oracle database developers and DBAs.

Project Structure

  • ▸Packages/ - modular reusable PL/SQL code
  • ▸Procedures/ - stored procedures
  • ▸Functions/ - stored functions
  • ▸Triggers/ - automated event handlers
  • ▸Views/ - read-only query interfaces

Monetization

  • ▸Enterprise database consulting
  • ▸Oracle DBA and developer roles
  • ▸Automated reporting and ETL solutions
  • ▸Database optimization services
  • ▸Oracle application development

Productivity Tips

  • ▸Use templates for procedures/functions
  • ▸Leverage packages for reusable logic
  • ▸Enable SERVEROUTPUT for debugging
  • ▸Use bulk processing to enhance performance
  • ▸Keep exception handling consistent

Basic Concepts

  • ▸Anonymous PL/SQL blocks
  • ▸Variables and constants
  • ▸Control structures (IF, LOOP, CASE)
  • ▸Cursors for query results
  • ▸Exception handling

Official Docs

  • ▸Oracle PL/SQL Language Reference
  • ▸Oracle Database PL/SQL Packages and Types Guide
  • ▸Oracle Database SQL Reference

More Plsql Typing Exercises

PL/SQL Simple AdditionPL/SQL FactorialPL/SQL Fibonacci SequencePL/SQL Max of Two NumbersPL/SQL Array SumPL/SQL Even Numbers FilterPL/SQL Conditional Counter IncrementPL/SQL Resettable CounterPL/SQL Theme Toggle Only

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher