├── README.md └── src ├── 06_Triggers ├── 01_SampleLogonTrigger.sql ├── 02_ServerErrorTrigger.sql ├── 03_StatementTrigger.sql ├── 04_RowTriggers ├── 07_Exceptions.sql ├── 08_Errors.sql └── 09_DynamicSql.sql ├── Apps └── dotnet │ └── SimpleApp │ ├── .gitignore │ ├── Infrastructure │ └── AppDbContext.cs │ ├── Migrations │ ├── 20230126190711_InitsDb.Designer.cs │ ├── 20230126190711_InitsDb.cs │ └── AppDbContextModelSnapshot.cs │ ├── Models │ └── Person.cs │ ├── Program.cs │ └── SimpleApp.csproj ├── Oracle-SQL ├── 01 │ ├── TablespaceManagement.ipynb │ └── UserManagement.ipynb ├── 02 │ ├── CRUDOperations.ipynb │ └── TableManagement.ipynb ├── 03 │ └── Transactions.ipynb └── 04 │ ├── AggregateFunctions.ipynb │ └── AnalyticFunction.ipynb ├── PL-SQL ├── 01 │ └── Loops.ipynb ├── 02 │ └── StoredProcedures.ipynb ├── 03 │ ├── Functions.ipynb │ └── Packages.ipynb └── 04 │ └── Triggers.ipynb └── SQLPlus └── Commands.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # 05-DB-ORCL 2 | # Installing Oracle database Free on docker and connecting to Azure Data Studio 3 | 4 | pull image from docker hub 5 | > docker pull container-registry.oracle.com/database/free:latest 6 | 7 | run the image with configurations 8 | > docker run -d --name -p 1521:1521 -e ORACLE_PWD= container-registry.oracle.com/database/free:latest 9 | 10 | connect with azure data studio 11 | Data Source: localhost 12 | User Id: system 13 | Password: 14 | -------------------------------------------------------------------------------- /src/06_Triggers/01_SampleLogonTrigger.sql: -------------------------------------------------------------------------------- 1 | -- Create a table 2 | CREATE TABLE LogInInfo 3 | ( 4 | LogOn NVARCHAR2(100) 5 | ); 6 | 7 | -- Execute Trigger 8 | 9 | CREATE OR REPLACE TRIGGER On_Logon 10 | AFTER LOGON 11 | ON SYSTEM.Schema 12 | BEGIN 13 | INSERT INTO LogInInfo VALUES ('User logged in'); 14 | END; -------------------------------------------------------------------------------- /src/06_Triggers/02_ServerErrorTrigger.sql: -------------------------------------------------------------------------------- 1 | -- Create a table 2 | CREATE TABLE ServerErrors 3 | ( 4 | ErrorInfo NVARCHAR2(100) 5 | ); 6 | 7 | -- Execute Trigger 8 | 9 | CREATE OR REPLACE TRIGGER log_errors AFTER SERVERERROR ON DATABASE 10 | BEGIN 11 | INSERT INTO ServerErrors VALUES ('Error occured on server'); 12 | END; -------------------------------------------------------------------------------- /src/06_Triggers/03_StatementTrigger.sql: -------------------------------------------------------------------------------- 1 | -- Create a table 2 | CREATE TABLE Products 3 | ( 4 | ProductName NVARCHAR2(100), 5 | ProductCompany NVARCHAR2(100) 6 | ); 7 | 8 | -- Create a table for logs 9 | CREATE TABLE ProductLogs 10 | ( 11 | EventName NVARCHAR2(100) 12 | ); 13 | 14 | -- Trigger 15 | CREATE OR REPLACE TRIGGER trg_1 16 | BEFORE DELETE OR INSERT OR UPDATE ON Products 17 | BEGIN 18 | IF INSERTING THEN 19 | INSERT INTO ProductLogs VALUES 20 | ('INSERTED'); 21 | ELSIF DELETING THEN 22 | INSERT INTO ProductLogs VALUES 23 | ('DELETED'); 24 | ELSE 25 | INSERT INTO ProductLogs VALUES 26 | ('UPDATED'); 27 | END IF; 28 | END; 29 | -------------------------------------------------------------------------------- /src/06_Triggers/04_RowTriggers: -------------------------------------------------------------------------------- 1 | -- Create a table 2 | CREATE TABLE Salary 3 | ( 4 | TeacherName NVARCHAR2(100), 5 | TeacherSalary DECIMAL 6 | ); 7 | 8 | CREATE TABLE CalculatedSalary 9 | ( 10 | TeacherName NVARCHAR2(100), 11 | TeacherSalary DECIMAL 12 | ); 13 | 14 | -- Trigger 15 | CREATE OR REPLACE TRIGGER order_insert BEFORE INSERT ON Salary FOR EACH ROW 16 | BEGIN 17 | INSERT INTO CalculatedSalary(TeacherName, TeacherSalary) 18 | VALUES (:new.TeacherName, (:new.TeacherSalary - :new.TeacherSalary * 0.1)); 19 | END; 20 | -------------------------------------------------------------------------------- /src/06_Triggers/07_Exceptions.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE Persons ( 2 | FullName VARCHAR2(200), 3 | Gender VARCHAR2(10) 4 | ); 5 | 6 | DECLARE 7 | myError EXCEPTION; 8 | v_gender varchar2 (10); 9 | BEGIN 10 | SELECT gender INTO v_gender from Persons WHERE FullName = ''; 11 | IF v_gender = 'M' THEN 12 | RAISE myError; 13 | END IF; 14 | EXCEPTION 15 | WHEN myError THEN 16 | ROLLBACK; 17 | RAISE; 18 | END; 19 | -------------------------------------------------------------------------------- /src/06_Triggers/08_Errors.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE Persons ( 2 | FullName VARCHAR2(200), 3 | Gender VARCHAR2(10) 4 | ); 5 | 6 | DECLARE 7 | v_gender varchar2 (10); 8 | message varchar2 (250); 9 | BEGIN 10 | SELECT gender INTO v_gender from Persons WHERE FullName = ''; 11 | IF v_gender = 'M' THEN 12 | message := 'MALE'; 13 | ELSE 14 | RAISE_APPLICATION_ERROR(-20101, 'Gender is missing'); 15 | END IF; 16 | DBMS_OUTPUT.PUT_LINE('Message: ' || message); 17 | END; -------------------------------------------------------------------------------- /src/06_Triggers/09_DynamicSql.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE PROCEDURE create_table 2 | (p_table_name VARCHAR2, p_col_specs VARCHAR2) IS 3 | BEGIN 4 | EXECUTE IMMEDIATE 'CREATE TABLE ' || p_table_name 5 | || ' (' || p_col_specs|| ' )'; 6 | END; 7 | 8 | BEGIN 9 | create_table ('EMPLOYEES_NAMES', 'id NUMBER (4) 10 | PRIMARY KEY, name VARCHAR2 (40)'); 11 | END; -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Ww][Ii][Nn]32/ 27 | [Aa][Rr][Mm]/ 28 | [Aa][Rr][Mm]64/ 29 | bld/ 30 | [Bb]in/ 31 | [Oo]bj/ 32 | [Ll]og/ 33 | [Ll]ogs/ 34 | 35 | # Visual Studio 2015/2017 cache/options directory 36 | .vs/ 37 | # Uncomment if you have tasks that create the project's static files in wwwroot 38 | #wwwroot/ 39 | 40 | # Visual Studio 2017 auto generated files 41 | Generated\ Files/ 42 | 43 | # MSTest test Results 44 | [Tt]est[Rr]esult*/ 45 | [Bb]uild[Ll]og.* 46 | 47 | # NUnit 48 | *.VisualState.xml 49 | TestResult.xml 50 | nunit-*.xml 51 | 52 | # Build Results of an ATL Project 53 | [Dd]ebugPS/ 54 | [Rr]eleasePS/ 55 | dlldata.c 56 | 57 | # Benchmark Results 58 | BenchmarkDotNet.Artifacts/ 59 | 60 | # .NET 61 | project.lock.json 62 | project.fragment.lock.json 63 | artifacts/ 64 | 65 | # Tye 66 | .tye/ 67 | 68 | # ASP.NET Scaffolding 69 | ScaffoldingReadMe.txt 70 | 71 | # StyleCop 72 | StyleCopReport.xml 73 | 74 | # Files built by Visual Studio 75 | *_i.c 76 | *_p.c 77 | *_h.h 78 | *.ilk 79 | *.meta 80 | *.obj 81 | *.iobj 82 | *.pch 83 | *.pdb 84 | *.ipdb 85 | *.pgc 86 | *.pgd 87 | *.rsp 88 | *.sbr 89 | *.tlb 90 | *.tli 91 | *.tlh 92 | *.tmp 93 | *.tmp_proj 94 | *_wpftmp.csproj 95 | *.log 96 | *.tlog 97 | *.vspscc 98 | *.vssscc 99 | .builds 100 | *.pidb 101 | *.svclog 102 | *.scc 103 | 104 | # Chutzpah Test files 105 | _Chutzpah* 106 | 107 | # Visual C++ cache files 108 | ipch/ 109 | *.aps 110 | *.ncb 111 | *.opendb 112 | *.opensdf 113 | *.sdf 114 | *.cachefile 115 | *.VC.db 116 | *.VC.VC.opendb 117 | 118 | # Visual Studio profiler 119 | *.psess 120 | *.vsp 121 | *.vspx 122 | *.sap 123 | 124 | # Visual Studio Trace Files 125 | *.e2e 126 | 127 | # TFS 2012 Local Workspace 128 | $tf/ 129 | 130 | # Guidance Automation Toolkit 131 | *.gpState 132 | 133 | # ReSharper is a .NET coding add-in 134 | _ReSharper*/ 135 | *.[Rr]e[Ss]harper 136 | *.DotSettings.user 137 | 138 | # TeamCity is a build add-in 139 | _TeamCity* 140 | 141 | # DotCover is a Code Coverage Tool 142 | *.dotCover 143 | 144 | # AxoCover is a Code Coverage Tool 145 | .axoCover/* 146 | !.axoCover/settings.json 147 | 148 | # Coverlet is a free, cross platform Code Coverage Tool 149 | coverage*.json 150 | coverage*.xml 151 | coverage*.info 152 | 153 | # Visual Studio code coverage results 154 | *.coverage 155 | *.coveragexml 156 | 157 | # NCrunch 158 | _NCrunch_* 159 | .*crunch*.local.xml 160 | nCrunchTemp_* 161 | 162 | # MightyMoose 163 | *.mm.* 164 | AutoTest.Net/ 165 | 166 | # Web workbench (sass) 167 | .sass-cache/ 168 | 169 | # Installshield output folder 170 | [Ee]xpress/ 171 | 172 | # DocProject is a documentation generator add-in 173 | DocProject/buildhelp/ 174 | DocProject/Help/*.HxT 175 | DocProject/Help/*.HxC 176 | DocProject/Help/*.hhc 177 | DocProject/Help/*.hhk 178 | DocProject/Help/*.hhp 179 | DocProject/Help/Html2 180 | DocProject/Help/html 181 | 182 | # Click-Once directory 183 | publish/ 184 | 185 | # Publish Web Output 186 | *.[Pp]ublish.xml 187 | *.azurePubxml 188 | # Note: Comment the next line if you want to checkin your web deploy settings, 189 | # but database connection strings (with potential passwords) will be unencrypted 190 | *.pubxml 191 | *.publishproj 192 | 193 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 194 | # checkin your Azure Web App publish settings, but sensitive information contained 195 | # in these scripts will be unencrypted 196 | PublishScripts/ 197 | 198 | # NuGet Packages 199 | *.nupkg 200 | # NuGet Symbol Packages 201 | *.snupkg 202 | # The packages folder can be ignored because of Package Restore 203 | **/[Pp]ackages/* 204 | # except build/, which is used as an MSBuild target. 205 | !**/[Pp]ackages/build/ 206 | # Uncomment if necessary however generally it will be regenerated when needed 207 | #!**/[Pp]ackages/repositories.config 208 | # NuGet v3's project.json files produces more ignorable files 209 | *.nuget.props 210 | *.nuget.targets 211 | 212 | # Microsoft Azure Build Output 213 | csx/ 214 | *.build.csdef 215 | 216 | # Microsoft Azure Emulator 217 | ecf/ 218 | rcf/ 219 | 220 | # Windows Store app package directories and files 221 | AppPackages/ 222 | BundleArtifacts/ 223 | Package.StoreAssociation.xml 224 | _pkginfo.txt 225 | *.appx 226 | *.appxbundle 227 | *.appxupload 228 | 229 | # Visual Studio cache files 230 | # files ending in .cache can be ignored 231 | *.[Cc]ache 232 | # but keep track of directories ending in .cache 233 | !?*.[Cc]ache/ 234 | 235 | # Others 236 | ClientBin/ 237 | ~$* 238 | *~ 239 | *.dbmdl 240 | *.dbproj.schemaview 241 | *.jfm 242 | *.pfx 243 | *.publishsettings 244 | orleans.codegen.cs 245 | 246 | # Including strong name files can present a security risk 247 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 248 | #*.snk 249 | 250 | # Since there are multiple workflows, uncomment next line to ignore bower_components 251 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 252 | #bower_components/ 253 | 254 | # RIA/Silverlight projects 255 | Generated_Code/ 256 | 257 | # Backup & report files from converting an old project file 258 | # to a newer Visual Studio version. Backup files are not needed, 259 | # because we have git ;-) 260 | _UpgradeReport_Files/ 261 | Backup*/ 262 | UpgradeLog*.XML 263 | UpgradeLog*.htm 264 | ServiceFabricBackup/ 265 | *.rptproj.bak 266 | 267 | # SQL Server files 268 | *.mdf 269 | *.ldf 270 | *.ndf 271 | 272 | # Business Intelligence projects 273 | *.rdl.data 274 | *.bim.layout 275 | *.bim_*.settings 276 | *.rptproj.rsuser 277 | *- [Bb]ackup.rdl 278 | *- [Bb]ackup ([0-9]).rdl 279 | *- [Bb]ackup ([0-9][0-9]).rdl 280 | 281 | # Microsoft Fakes 282 | FakesAssemblies/ 283 | 284 | # GhostDoc plugin setting file 285 | *.GhostDoc.xml 286 | 287 | # Node.js Tools for Visual Studio 288 | .ntvs_analysis.dat 289 | node_modules/ 290 | 291 | # Visual Studio 6 build log 292 | *.plg 293 | 294 | # Visual Studio 6 workspace options file 295 | *.opt 296 | 297 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 298 | *.vbw 299 | 300 | # Visual Studio 6 auto-generated project file (contains which files were open etc.) 301 | *.vbp 302 | 303 | # Visual Studio 6 workspace and project file (working project files containing files to include in project) 304 | *.dsw 305 | *.dsp 306 | 307 | # Visual Studio 6 technical files 308 | *.ncb 309 | *.aps 310 | 311 | # Visual Studio LightSwitch build output 312 | **/*.HTMLClient/GeneratedArtifacts 313 | **/*.DesktopClient/GeneratedArtifacts 314 | **/*.DesktopClient/ModelManifest.xml 315 | **/*.Server/GeneratedArtifacts 316 | **/*.Server/ModelManifest.xml 317 | _Pvt_Extensions 318 | 319 | # Paket dependency manager 320 | .paket/paket.exe 321 | paket-files/ 322 | 323 | # FAKE - F# Make 324 | .fake/ 325 | 326 | # CodeRush personal settings 327 | .cr/personal 328 | 329 | # Python Tools for Visual Studio (PTVS) 330 | __pycache__/ 331 | *.pyc 332 | 333 | # Cake - Uncomment if you are using it 334 | # tools/** 335 | # !tools/packages.config 336 | 337 | # Tabs Studio 338 | *.tss 339 | 340 | # Telerik's JustMock configuration file 341 | *.jmconfig 342 | 343 | # BizTalk build output 344 | *.btp.cs 345 | *.btm.cs 346 | *.odx.cs 347 | *.xsd.cs 348 | 349 | # OpenCover UI analysis results 350 | OpenCover/ 351 | 352 | # Azure Stream Analytics local run output 353 | ASALocalRun/ 354 | 355 | # MSBuild Binary and Structured Log 356 | *.binlog 357 | 358 | # NVidia Nsight GPU debugger configuration file 359 | *.nvuser 360 | 361 | # MFractors (Xamarin productivity tool) working folder 362 | .mfractor/ 363 | 364 | # Local History for Visual Studio 365 | .localhistory/ 366 | 367 | # Visual Studio History (VSHistory) files 368 | .vshistory/ 369 | 370 | # BeatPulse healthcheck temp database 371 | healthchecksdb 372 | 373 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 374 | MigrationBackup/ 375 | 376 | # Ionide (cross platform F# VS Code tools) working folder 377 | .ionide/ 378 | 379 | # Fody - auto-generated XML schema 380 | FodyWeavers.xsd 381 | 382 | # VS Code files for those working on multiple tools 383 | .vscode/* 384 | !.vscode/settings.json 385 | !.vscode/tasks.json 386 | !.vscode/launch.json 387 | !.vscode/extensions.json 388 | *.code-workspace 389 | 390 | # Local History for Visual Studio Code 391 | .history/ 392 | 393 | # Windows Installer files from build outputs 394 | *.cab 395 | *.msi 396 | *.msix 397 | *.msm 398 | *.msp 399 | 400 | # JetBrains Rider 401 | *.sln.iml 402 | 403 | ## 404 | ## Visual studio for Mac 405 | ## 406 | 407 | 408 | # globs 409 | Makefile.in 410 | *.userprefs 411 | *.usertasks 412 | config.make 413 | config.status 414 | aclocal.m4 415 | install-sh 416 | autom4te.cache/ 417 | *.tar.gz 418 | tarballs/ 419 | test-results/ 420 | 421 | # Mac bundle stuff 422 | *.dmg 423 | *.app 424 | 425 | # content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore 426 | # General 427 | .DS_Store 428 | .AppleDouble 429 | .LSOverride 430 | 431 | # Icon must end with two \r 432 | Icon 433 | 434 | 435 | # Thumbnails 436 | ._* 437 | 438 | # Files that might appear in the root of a volume 439 | .DocumentRevisions-V100 440 | .fseventsd 441 | .Spotlight-V100 442 | .TemporaryItems 443 | .Trashes 444 | .VolumeIcon.icns 445 | .com.apple.timemachine.donotpresent 446 | 447 | # Directories potentially created on remote AFP share 448 | .AppleDB 449 | .AppleDesktop 450 | Network Trash Folder 451 | Temporary Items 452 | .apdisk 453 | 454 | # content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore 455 | # Windows thumbnail cache files 456 | Thumbs.db 457 | ehthumbs.db 458 | ehthumbs_vista.db 459 | 460 | # Dump file 461 | *.stackdump 462 | 463 | # Folder config file 464 | [Dd]esktop.ini 465 | 466 | # Recycle Bin used on file shares 467 | $RECYCLE.BIN/ 468 | 469 | # Windows Installer files 470 | *.cab 471 | *.msi 472 | *.msix 473 | *.msm 474 | *.msp 475 | 476 | # Windows shortcuts 477 | *.lnk 478 | -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Infrastructure/AppDbContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | using SimpleApp.Models; 3 | 4 | namespace SimpleApp.Infrastructure; 5 | 6 | public class AppDbContext : DbContext 7 | { 8 | public DbSet? Persons { get; set; } 9 | 10 | protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 11 | { 12 | optionsBuilder.UseOracle(@"User Id=;Password=;Data Source="); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Migrations/20230126190711_InitsDb.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | using Microsoft.EntityFrameworkCore; 3 | using Microsoft.EntityFrameworkCore.Infrastructure; 4 | using Microsoft.EntityFrameworkCore.Migrations; 5 | using Microsoft.EntityFrameworkCore.Storage.ValueConversion; 6 | using Oracle.EntityFrameworkCore.Metadata; 7 | using SimpleApp.Infrastructure; 8 | 9 | #nullable disable 10 | 11 | namespace SimpleApp.Migrations 12 | { 13 | [DbContext(typeof(AppDbContext))] 14 | [Migration("20230126190711_InitsDb")] 15 | partial class InitsDb 16 | { 17 | /// 18 | protected override void BuildTargetModel(ModelBuilder modelBuilder) 19 | { 20 | #pragma warning disable 612, 618 21 | modelBuilder 22 | .HasAnnotation("ProductVersion", "7.0.2") 23 | .HasAnnotation("Relational:MaxIdentifierLength", 128); 24 | 25 | OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder); 26 | 27 | modelBuilder.Entity("SimpleApp.Models.Person", b => 28 | { 29 | b.Property("Id") 30 | .ValueGeneratedOnAdd() 31 | .HasColumnType("NUMBER(10)"); 32 | 33 | OraclePropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); 34 | 35 | b.Property("Email") 36 | .HasColumnType("NVARCHAR2(2000)"); 37 | 38 | b.Property("FirstName") 39 | .HasColumnType("NVARCHAR2(2000)"); 40 | 41 | b.Property("LastName") 42 | .HasColumnType("NVARCHAR2(2000)"); 43 | 44 | b.HasKey("Id"); 45 | 46 | b.ToTable("Persons"); 47 | }); 48 | #pragma warning restore 612, 618 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Migrations/20230126190711_InitsDb.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | #nullable disable 4 | 5 | namespace SimpleApp.Migrations 6 | { 7 | /// 8 | public partial class InitsDb : Migration 9 | { 10 | /// 11 | protected override void Up(MigrationBuilder migrationBuilder) 12 | { 13 | migrationBuilder.CreateTable( 14 | name: "Persons", 15 | columns: table => new 16 | { 17 | Id = table.Column(type: "NUMBER(10)", nullable: false) 18 | .Annotation("Oracle:Identity", "START WITH 1 INCREMENT BY 1"), 19 | FirstName = table.Column(type: "NVARCHAR2(2000)", nullable: true), 20 | LastName = table.Column(type: "NVARCHAR2(2000)", nullable: true), 21 | Email = table.Column(type: "NVARCHAR2(2000)", nullable: true) 22 | }, 23 | constraints: table => 24 | { 25 | table.PrimaryKey("PK_Persons", x => x.Id); 26 | }); 27 | } 28 | 29 | /// 30 | protected override void Down(MigrationBuilder migrationBuilder) 31 | { 32 | migrationBuilder.DropTable( 33 | name: "Persons"); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Migrations/AppDbContextModelSnapshot.cs: -------------------------------------------------------------------------------- 1 | // 2 | using Microsoft.EntityFrameworkCore; 3 | using Microsoft.EntityFrameworkCore.Infrastructure; 4 | using Microsoft.EntityFrameworkCore.Storage.ValueConversion; 5 | using Oracle.EntityFrameworkCore.Metadata; 6 | using SimpleApp.Infrastructure; 7 | 8 | #nullable disable 9 | 10 | namespace SimpleApp.Migrations 11 | { 12 | [DbContext(typeof(AppDbContext))] 13 | partial class AppDbContextModelSnapshot : ModelSnapshot 14 | { 15 | protected override void BuildModel(ModelBuilder modelBuilder) 16 | { 17 | #pragma warning disable 612, 618 18 | modelBuilder 19 | .HasAnnotation("ProductVersion", "7.0.2") 20 | .HasAnnotation("Relational:MaxIdentifierLength", 128); 21 | 22 | OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder); 23 | 24 | modelBuilder.Entity("SimpleApp.Models.Person", b => 25 | { 26 | b.Property("Id") 27 | .ValueGeneratedOnAdd() 28 | .HasColumnType("NUMBER(10)"); 29 | 30 | OraclePropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); 31 | 32 | b.Property("Email") 33 | .HasColumnType("NVARCHAR2(2000)"); 34 | 35 | b.Property("FirstName") 36 | .HasColumnType("NVARCHAR2(2000)"); 37 | 38 | b.Property("LastName") 39 | .HasColumnType("NVARCHAR2(2000)"); 40 | 41 | b.HasKey("Id"); 42 | 43 | b.ToTable("Persons"); 44 | }); 45 | #pragma warning restore 612, 618 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Models/Person.cs: -------------------------------------------------------------------------------- 1 | namespace SimpleApp.Models; 2 | 3 | public class Person 4 | { 5 | public int Id { get; set; } 6 | public string? FirstName { get; set; } 7 | public string? LastName { get; set; } 8 | public string? Email { get; set; } 9 | } -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/Program.cs: -------------------------------------------------------------------------------- 1 | using SimpleApp.Infrastructure; 2 | using SimpleApp.Models; 3 | 4 | using (var db = new AppDbContext()) 5 | { 6 | var person = new Person { FirstName = "Naveed Ahmad", LastName = "Hematmal", Email = "Hematmal2022@gmail.com" }; 7 | 8 | db.Persons!.Add(person); 9 | db.SaveChanges(); 10 | } 11 | 12 | Console.ReadLine(); -------------------------------------------------------------------------------- /src/Apps/dotnet/SimpleApp/SimpleApp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net7.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Oracle-SQL/01/TablespaceManagement.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "List tablespaces" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "0d5904f2-5243-4105-b74e-7c4d72c5cc23", 23 | "language": "" 24 | }, 25 | "attachments": {} 26 | }, 27 | { 28 | "cell_type": "code", 29 | "source": [ 30 | "SELECT *\r\n", 31 | "FROM DBA_TABLESPACES;" 32 | ], 33 | "metadata": { 34 | "language": "sql", 35 | "azdata_cell_guid": "882dc993-4001-40d5-9e56-4950f912678f" 36 | }, 37 | "outputs": [], 38 | "execution_count": null 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "source": [ 43 | "Create a tablespace" 44 | ], 45 | "metadata": { 46 | "language": "sql", 47 | "azdata_cell_guid": "5a6ff32e-7926-40ba-9ebf-3dd281648398" 48 | }, 49 | "attachments": {} 50 | }, 51 | { 52 | "cell_type": "code", 53 | "source": [ 54 | "CREATE TABLESPACE \r\n", 55 | "DATAFILE '[tablespace].dat' \r\n", 56 | "SIZE 20M;" 57 | ], 58 | "metadata": { 59 | "language": "sql", 60 | "azdata_cell_guid": "3ac54b2e-6070-49f1-bdd4-1374f5244c0f" 61 | }, 62 | "outputs": [], 63 | "execution_count": null 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "source": [ 68 | "Drop a tablespace" 69 | ], 70 | "metadata": { 71 | "language": "sql", 72 | "azdata_cell_guid": "2f624974-36a1-404d-a1eb-899bbb452756" 73 | }, 74 | "attachments": {} 75 | }, 76 | { 77 | "cell_type": "code", 78 | "source": [ 79 | "DROP TABLESPACE [tablespace];" 80 | ], 81 | "metadata": { 82 | "language": "sql", 83 | "azdata_cell_guid": "7ce01f26-ee8d-4659-873c-4afd5426fcab" 84 | }, 85 | "outputs": [], 86 | "execution_count": null 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "source": [ 91 | "Add unlimited space on a tablespace to a user" 92 | ], 93 | "metadata": { 94 | "language": "", 95 | "azdata_cell_guid": "ea11dc11-9353-4092-961b-af7a8f0402e0" 96 | }, 97 | "attachments": {} 98 | }, 99 | { 100 | "cell_type": "code", 101 | "source": [ 102 | "ALTER USER [username] QUOTA UNLIMITED ON [tablespace];" 103 | ], 104 | "metadata": { 105 | "azdata_cell_guid": "782384b5-f843-40e1-a46a-3034196f9272", 106 | "language": "sql" 107 | }, 108 | "outputs": [], 109 | "execution_count": null 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "source": [ 114 | "OR 10 MB" 115 | ], 116 | "metadata": { 117 | "language": "sql", 118 | "azdata_cell_guid": "2a411fd1-b690-4d30-81e6-9ad826043c24" 119 | }, 120 | "attachments": {} 121 | }, 122 | { 123 | "cell_type": "code", 124 | "source": [ 125 | "ALTER USER [username] QUOTA 10MB ON [tablespace];" 126 | ], 127 | "metadata": { 128 | "language": "sql", 129 | "azdata_cell_guid": "1ebe5829-9d2f-4ea6-b55b-1a0f2207a85d" 130 | }, 131 | "outputs": [], 132 | "execution_count": null 133 | }, 134 | { 135 | "cell_type": "markdown", 136 | "source": [ 137 | "Grant tablespace to a user" 138 | ], 139 | "metadata": { 140 | "language": "sql", 141 | "azdata_cell_guid": "eefcb2a4-00e6-411a-8eb1-4f9f4d21f382" 142 | }, 143 | "attachments": {} 144 | }, 145 | { 146 | "cell_type": "code", 147 | "source": [ 148 | "GRANT UNLIMITED TABLESPACE TO [Username];" 149 | ], 150 | "metadata": { 151 | "language": "sql", 152 | "azdata_cell_guid": "a6c348ea-a87f-442f-ac1d-b539104be1cf" 153 | }, 154 | "outputs": [], 155 | "execution_count": null 156 | } 157 | ] 158 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/01/UserManagement.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | }, 12 | "orig_nbformat": 4 13 | }, 14 | "nbformat_minor": 2, 15 | "nbformat": 4, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "List all users which are visible to current (login) user" 21 | ], 22 | "metadata": { 23 | "azdata_cell_guid": "c2f7b33f-f5d5-4f30-bd05-c450c3d5d39a", 24 | "language": "" 25 | }, 26 | "attachments": {} 27 | }, 28 | { 29 | "cell_type": "code", 30 | "source": [ 31 | "SELECT * FROM all_users;" 32 | ], 33 | "metadata": { 34 | "language": "sql", 35 | "azdata_cell_guid": "546ff514-9861-4e6a-8cae-f90564102190" 36 | }, 37 | "outputs": [], 38 | "execution_count": null 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "source": [ 43 | "List all users in the oracle database. This query can be executed on user with high priviledges" 44 | ], 45 | "metadata": { 46 | "language": "", 47 | "azdata_cell_guid": "6e43ce75-4b98-4281-b9c2-e4ba6fb016d1" 48 | }, 49 | "attachments": {} 50 | }, 51 | { 52 | "cell_type": "code", 53 | "source": [ 54 | "SELECT * FROM dba_users;" 55 | ], 56 | "metadata": { 57 | "azdata_cell_guid": "e6616f40-cbf0-4c4c-bc7a-14e7ef5d7746", 58 | "language": "sql" 59 | }, 60 | "outputs": [], 61 | "execution_count": null 62 | }, 63 | { 64 | "cell_type": "markdown", 65 | "source": [ 66 | "Shows information about the login user" 67 | ], 68 | "metadata": { 69 | "language": "", 70 | "azdata_cell_guid": "aa311a87-0670-44f0-8d81-241b54221c1b" 71 | }, 72 | "attachments": {} 73 | }, 74 | { 75 | "cell_type": "code", 76 | "source": [ 77 | "SELECT * FROM user_users;" 78 | ], 79 | "metadata": { 80 | "azdata_cell_guid": "0fcc1e6a-5706-4b87-9b07-19a80eabe8e0", 81 | "language": "sql" 82 | }, 83 | "outputs": [], 84 | "execution_count": null 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "source": [ 89 | "Creating a new user\n", 90 | "\n", 91 | "1. Set \\_ORACLE\\_SCRIPT = true\n", 92 | " \n", 93 | "2. Create user \n", 94 | " \n", 95 | "3. Grant connect permission" 96 | ], 97 | "metadata": { 98 | "language": "sql", 99 | "azdata_cell_guid": "8b5f8a4b-956f-4bf3-9da4-586f83b65d30" 100 | }, 101 | "attachments": {} 102 | }, 103 | { 104 | "cell_type": "code", 105 | "source": [ 106 | "ALTER SESSION SET \"_ORACLE_SCRIPT\" = TRUE;\r\n", 107 | "CREATE USER [Username] IDENTIFIED BY [Password];\r\n", 108 | "" 109 | ], 110 | "metadata": { 111 | "language": "sql", 112 | "azdata_cell_guid": "a52e59a4-e034-4da2-a125-940d5238e440" 113 | }, 114 | "outputs": [], 115 | "execution_count": null 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "source": [ 120 | "Adding permissions to a user \n", 121 | "\n", 122 | "1. 'Connect' Permission is given to a user to be able to login\n", 123 | "2. 'CREATE TABLE' permission is given to a user to be able to create tables" 124 | ], 125 | "metadata": { 126 | "language": "sql", 127 | "azdata_cell_guid": "508035f4-0cda-46e7-83da-a9b4a19e1fb5" 128 | }, 129 | "attachments": {} 130 | }, 131 | { 132 | "cell_type": "code", 133 | "source": [ 134 | "GRANT CONNECT, CREATE TABLE TO [Username];" 135 | ], 136 | "metadata": { 137 | "language": "sql", 138 | "azdata_cell_guid": "8c413bcf-73d7-4fbb-8e11-ad41dc23df67" 139 | }, 140 | "outputs": [], 141 | "execution_count": null 142 | }, 143 | { 144 | "cell_type": "markdown", 145 | "source": [ 146 | "Drop user" 147 | ], 148 | "metadata": { 149 | "language": "sql", 150 | "azdata_cell_guid": "bd57a6f1-fd4c-43da-8114-ab42c4989d45" 151 | }, 152 | "attachments": {} 153 | }, 154 | { 155 | "cell_type": "code", 156 | "source": [ 157 | "DROP USER sem;" 158 | ], 159 | "metadata": { 160 | "language": "sql", 161 | "azdata_cell_guid": "de62daa1-5d0f-47e0-9abc-698a9c8659d2" 162 | }, 163 | "outputs": [], 164 | "execution_count": null 165 | }, 166 | { 167 | "cell_type": "markdown", 168 | "source": [ 169 | "Change password of a user" 170 | ], 171 | "metadata": { 172 | "language": "sql", 173 | "azdata_cell_guid": "0dd02fb2-ccde-4cba-948b-27eb3476c80a" 174 | }, 175 | "attachments": {} 176 | }, 177 | { 178 | "cell_type": "code", 179 | "source": [ 180 | "ALTER USER [Username] IDENTIFIED BY [Password];" 181 | ], 182 | "metadata": { 183 | "language": "sql", 184 | "azdata_cell_guid": "60f5ff5d-bbdd-4e76-a7bf-19e3089bbc16" 185 | }, 186 | "outputs": [], 187 | "execution_count": null 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "source": [ 192 | "Select all information of a user" 193 | ], 194 | "metadata": { 195 | "language": "", 196 | "azdata_cell_guid": "a958a5fb-b972-4ebf-8bb4-455107348983" 197 | }, 198 | "attachments": {} 199 | }, 200 | { 201 | "cell_type": "code", 202 | "source": [ 203 | "SELECT * FROM all_users\r\n", 204 | "WHERE username ='[USERNAME]';" 205 | ], 206 | "metadata": { 207 | "azdata_cell_guid": "c1dae2f5-30d1-4a20-acf7-d98a122d9660", 208 | "language": "sql" 209 | }, 210 | "outputs": [], 211 | "execution_count": null 212 | }, 213 | { 214 | "cell_type": "markdown", 215 | "source": [ 216 | "Update some information of a user" 217 | ], 218 | "metadata": { 219 | "language": "", 220 | "azdata_cell_guid": "6f90bfac-1957-4ab2-b3bd-b04d5c1d0c9a" 221 | }, 222 | "attachments": {} 223 | }, 224 | { 225 | "cell_type": "code", 226 | "source": [ 227 | "UPDATE all_users\r\n", 228 | "SET username = '[username]'\r\n", 229 | "WHERE username ='[username]';" 230 | ], 231 | "metadata": { 232 | "azdata_cell_guid": "0b334bcd-999f-4e70-9bf9-6bf2412c6451", 233 | "language": "sql" 234 | }, 235 | "outputs": [], 236 | "execution_count": null 237 | } 238 | ] 239 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/02/CRUDOperations.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "insert date to a table" 20 | ], 21 | "metadata": { 22 | "language": "sql", 23 | "azdata_cell_guid": "ad304925-5025-4393-b06e-f7f583355356" 24 | }, 25 | "attachments": {} 26 | }, 27 | { 28 | "cell_type": "code", 29 | "source": [ 30 | "INSERT INTO Country VALUES ('Afghanistan', 'Kabul');" 31 | ], 32 | "metadata": { 33 | "language": "sql", 34 | "azdata_cell_guid": "ab092189-20dc-4517-a157-204573024d97" 35 | }, 36 | "outputs": [], 37 | "execution_count": null 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "source": [ 42 | "Select data from a table" 43 | ], 44 | "metadata": { 45 | "language": "", 46 | "azdata_cell_guid": "800e5ede-9dab-4442-8682-5659a55e2627" 47 | }, 48 | "attachments": {} 49 | }, 50 | { 51 | "cell_type": "code", 52 | "source": [ 53 | "SELECT * FROM Country;" 54 | ], 55 | "metadata": { 56 | "azdata_cell_guid": "19c9a9d8-0add-4701-9856-ed7dd32df1da", 57 | "language": "sql" 58 | }, 59 | "outputs": [], 60 | "execution_count": null 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "source": [ 65 | "Update data" 66 | ], 67 | "metadata": { 68 | "language": "sql", 69 | "azdata_cell_guid": "ab661ad5-f5c0-4301-a503-3233bb8a9ba9" 70 | }, 71 | "attachments": {} 72 | }, 73 | { 74 | "cell_type": "code", 75 | "source": [ 76 | "UPDATE Country\r\n", 77 | "SET City = 'Qabul'\r\n", 78 | "WHERE City = 'Kabul'" 79 | ], 80 | "metadata": { 81 | "language": "sql", 82 | "azdata_cell_guid": "e6449a6b-96bd-4427-9fd3-7fd61b7d3261" 83 | }, 84 | "outputs": [], 85 | "execution_count": null 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "source": [ 90 | "Delete a table data" 91 | ], 92 | "metadata": { 93 | "language": "", 94 | "azdata_cell_guid": "65c24b20-b5c5-468b-86d6-51859c4ddda3" 95 | }, 96 | "attachments": {} 97 | }, 98 | { 99 | "cell_type": "code", 100 | "source": [ 101 | "DELETE FROM Country;" 102 | ], 103 | "metadata": { 104 | "azdata_cell_guid": "2a720a99-de21-40f1-beda-6c23218ea796", 105 | "language": "sql" 106 | }, 107 | "outputs": [], 108 | "execution_count": null 109 | } 110 | ] 111 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/02/TableManagement.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Create table" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "27267f85-4f61-4db8-a7a6-b894cca956c2" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "code", 28 | "source": [ 29 | "CREATE TABLE Country\r\n", 30 | "( \r\n", 31 | " Name VARCHAR(30) NOT NULL,\r\n", 32 | " Province VARCHAR(30) NOT NULL\r\n", 33 | ");" 34 | ], 35 | "metadata": { 36 | "azdata_cell_guid": "2c9bc6bc-efab-4040-a68f-5940d25a8a03", 37 | "language": "sql" 38 | }, 39 | "outputs": [], 40 | "execution_count": null 41 | }, 42 | { 43 | "cell_type": "markdown", 44 | "source": [ 45 | "Primary Key" 46 | ], 47 | "metadata": { 48 | "language": "sql", 49 | "azdata_cell_guid": "591166d1-970f-4d27-ac9f-52e554add854" 50 | }, 51 | "attachments": {} 52 | }, 53 | { 54 | "cell_type": "code", 55 | "source": [ 56 | "CREATE TABLE Employee\r\n", 57 | "(\r\n", 58 | " Id NUMBER PRIMARY KEY,\r\n", 59 | " Name VARCHAR2(50),\r\n", 60 | " Email VARCHAR2(70),\r\n", 61 | " Salary NUMBER(10,2),\r\n", 62 | " RegisteredAt TIMESTAMP WITH TIME ZONE\r\n", 63 | ");" 64 | ], 65 | "metadata": { 66 | "language": "sql", 67 | "azdata_cell_guid": "d260b396-f876-473d-bbaf-85c26d028bc4" 68 | }, 69 | "outputs": [], 70 | "execution_count": null 71 | }, 72 | { 73 | "cell_type": "markdown", 74 | "source": [ 75 | "Insert value" 76 | ], 77 | "metadata": { 78 | "language": "sql", 79 | "azdata_cell_guid": "baf12280-f3a9-457e-bc51-f11e295c2c21" 80 | }, 81 | "attachments": {} 82 | }, 83 | { 84 | "cell_type": "code", 85 | "source": [ 86 | "INSERT INTO Employee VALUES (1, 'Ahmad', 'ahmad@example.com', 1200, CURRENT_TIMESTAMP);" 87 | ], 88 | "metadata": { 89 | "language": "sql", 90 | "azdata_cell_guid": "a68a4af8-39ca-4395-ae3b-c2078e7c9d85" 91 | }, 92 | "outputs": [], 93 | "execution_count": null 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "source": [ 98 | "Primary key with Auto increment" 99 | ], 100 | "metadata": { 101 | "language": "sql", 102 | "azdata_cell_guid": "6fc826ba-88ee-4c8a-b665-b4f911eec873" 103 | }, 104 | "attachments": {} 105 | }, 106 | { 107 | "cell_type": "code", 108 | "source": [ 109 | "CREATE TABLE Employee\r\n", 110 | "(\r\n", 111 | " Id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY(START WITH 1 INCREMENT BY 1) PRIMARY KEY,\r\n", 112 | " Name VARCHAR2(50),\r\n", 113 | " Email VARCHAR2(70),\r\n", 114 | " Salary NUMBER(10,2),\r\n", 115 | " RegisteredAt TIMESTAMP WITH TIME ZONE\r\n", 116 | ");" 117 | ], 118 | "metadata": { 119 | "language": "sql", 120 | "azdata_cell_guid": "f10524b7-1cd8-41e1-a5be-0c25016f7af7" 121 | }, 122 | "outputs": [], 123 | "execution_count": null 124 | }, 125 | { 126 | "cell_type": "markdown", 127 | "source": [ 128 | "Insert value" 129 | ], 130 | "metadata": { 131 | "language": "sql", 132 | "azdata_cell_guid": "07d8bd88-71ab-41b5-a92f-6873b30be45f" 133 | }, 134 | "attachments": {} 135 | }, 136 | { 137 | "cell_type": "code", 138 | "source": [ 139 | "INSERT INTO Employee VALUES (null, 'Ahmad', 'ahmad@example.com', 1200, CURRENT_TIMESTAMP);" 140 | ], 141 | "metadata": { 142 | "language": "sql", 143 | "azdata_cell_guid": "fb35cb4e-d134-4136-a425-1e64c1d39133" 144 | }, 145 | "outputs": [], 146 | "execution_count": null 147 | } 148 | ] 149 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/03/Transactions.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Transactions" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "13a694ae-20b4-43e2-86c0-ab50b25a2d11" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "source": [ 29 | "Select active transactions" 30 | ], 31 | "metadata": { 32 | "azdata_cell_guid": "8b3b5e60-2574-43ec-bda3-ac96b9126752" 33 | }, 34 | "attachments": {} 35 | }, 36 | { 37 | "cell_type": "code", 38 | "source": [ 39 | "SELECT XID, STATUS FROM V$TRANSACTION;" 40 | ], 41 | "metadata": { 42 | "azdata_cell_guid": "0381cf52-6caa-45b7-a15e-5b08a2c58152", 43 | "language": "sql" 44 | }, 45 | "outputs": [], 46 | "execution_count": null 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "source": [ 51 | "Save a savepoint for transaction" 52 | ], 53 | "metadata": { 54 | "language": "sql", 55 | "azdata_cell_guid": "a9c8b5d1-1075-4f1b-871b-ba20c424f71f" 56 | }, 57 | "attachments": {} 58 | }, 59 | { 60 | "cell_type": "code", 61 | "source": [ 62 | "SAVEPOINT [name];" 63 | ], 64 | "metadata": { 65 | "language": "sql", 66 | "azdata_cell_guid": "43601536-1a4f-44db-a29b-a7ce8666a49d" 67 | }, 68 | "outputs": [], 69 | "execution_count": null 70 | }, 71 | { 72 | "cell_type": "markdown", 73 | "source": [ 74 | "Rollback to a save point" 75 | ], 76 | "metadata": { 77 | "language": "sql", 78 | "azdata_cell_guid": "fffdaaaa-2a1c-4a31-aeb2-4b9af610efb0" 79 | }, 80 | "attachments": {} 81 | }, 82 | { 83 | "cell_type": "code", 84 | "source": [ 85 | "ROLLBACK WORK TO [name];" 86 | ], 87 | "metadata": { 88 | "language": "sql", 89 | "azdata_cell_guid": "09c92aad-7e53-4fbf-9f8e-92871c060317" 90 | }, 91 | "outputs": [], 92 | "execution_count": null 93 | }, 94 | { 95 | "cell_type": "markdown", 96 | "source": [ 97 | "Rollback all" 98 | ], 99 | "metadata": { 100 | "language": "sql", 101 | "azdata_cell_guid": "ae10900f-22e5-446e-a5c9-f14c5088a3cc" 102 | }, 103 | "attachments": {} 104 | }, 105 | { 106 | "cell_type": "code", 107 | "source": [ 108 | "ROLLBACK;" 109 | ], 110 | "metadata": { 111 | "language": "sql", 112 | "azdata_cell_guid": "f79f014a-8003-4f44-94e2-a0c243d7e4f8" 113 | }, 114 | "outputs": [], 115 | "execution_count": null 116 | } 117 | ] 118 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/04/AggregateFunctions.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Aggregate Functions" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "054fcdc3-1280-4e48-b18f-9fe61dc53b7b" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "source": [ 29 | "Count function: Counts and returns number of selected rows" 30 | ], 31 | "metadata": { 32 | "azdata_cell_guid": "a0f0a80e-1df1-417c-8784-0a99435a6eac" 33 | }, 34 | "attachments": {} 35 | }, 36 | { 37 | "cell_type": "code", 38 | "source": [ 39 | "SELECT COUNT(*) FROM Mobile" 40 | ], 41 | "metadata": { 42 | "azdata_cell_guid": "660bc47b-53bf-4d3f-bf93-861bc8bc2337", 43 | "language": "sql" 44 | }, 45 | "outputs": [], 46 | "execution_count": null 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "source": [ 51 | "Average functions" 52 | ], 53 | "metadata": { 54 | "language": "", 55 | "azdata_cell_guid": "cb8aed65-b91e-4bcf-9b4c-96125231e7e2" 56 | }, 57 | "attachments": {} 58 | }, 59 | { 60 | "cell_type": "code", 61 | "source": [ 62 | "SELECT AVG(PRICE) FROM Mobile" 63 | ], 64 | "metadata": { 65 | "azdata_cell_guid": "626fa262-3b66-40ae-9b46-bf9ee15da145", 66 | "language": "sql" 67 | }, 68 | "outputs": [], 69 | "execution_count": null 70 | }, 71 | { 72 | "cell_type": "markdown", 73 | "source": [ 74 | "Sum function" 75 | ], 76 | "metadata": { 77 | "language": "sql", 78 | "azdata_cell_guid": "f837db8e-ec23-46b5-8be3-1156a8388c1a" 79 | }, 80 | "attachments": {} 81 | }, 82 | { 83 | "cell_type": "code", 84 | "source": [ 85 | "SELECT SUM(PRICE) FROM Mobile" 86 | ], 87 | "metadata": { 88 | "language": "sql", 89 | "azdata_cell_guid": "9d258f78-a9ed-449a-8be7-a1dd12972e34" 90 | }, 91 | "outputs": [], 92 | "execution_count": null 93 | }, 94 | { 95 | "cell_type": "markdown", 96 | "source": [ 97 | "Distinct and all keywords" 98 | ], 99 | "metadata": { 100 | "language": "sql", 101 | "azdata_cell_guid": "b69cef07-2a74-4506-8a98-b48a34700c6c" 102 | }, 103 | "attachments": {} 104 | }, 105 | { 106 | "cell_type": "code", 107 | "source": [ 108 | "SELECT SUM(PRICE), SUM(ALL PRICE), SUM(DISTINCT PRICE) FROM Mobile" 109 | ], 110 | "metadata": { 111 | "language": "sql", 112 | "azdata_cell_guid": "ec0ecee2-d12c-41e7-a46e-99716954903d" 113 | }, 114 | "outputs": [], 115 | "execution_count": null 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "source": [ 120 | "Max and Min functions" 121 | ], 122 | "metadata": { 123 | "language": "sql", 124 | "azdata_cell_guid": "0d33c9fb-1dd7-4c2d-9fa2-7dd4cd0df737" 125 | }, 126 | "attachments": {} 127 | }, 128 | { 129 | "cell_type": "code", 130 | "source": [ 131 | "SELECT MAX(PRICE), MIN(ALL PRICE) FROM Mobile" 132 | ], 133 | "metadata": { 134 | "language": "sql", 135 | "azdata_cell_guid": "cfe06f99-d8d6-4b34-8790-e9f84d733ff6" 136 | }, 137 | "outputs": [], 138 | "execution_count": null 139 | }, 140 | { 141 | "cell_type": "markdown", 142 | "source": [ 143 | "Group by" 144 | ], 145 | "metadata": { 146 | "language": "sql", 147 | "azdata_cell_guid": "083c51e6-eedd-4fb4-9769-a108b1591c7c" 148 | }, 149 | "attachments": {} 150 | }, 151 | { 152 | "cell_type": "code", 153 | "source": [ 154 | "SELECT Company, MAX (Price) FROM Mobile GROUP BY Company;" 155 | ], 156 | "metadata": { 157 | "language": "sql", 158 | "azdata_cell_guid": "20bb64cc-4934-458f-b175-4fd2d0e92c94" 159 | }, 160 | "outputs": [], 161 | "execution_count": null 162 | } 163 | ] 164 | } -------------------------------------------------------------------------------- /src/Oracle-SQL/04/AnalyticFunction.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Analytic Functions" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "4a99db4e-c5d0-43e2-a320-be9467a7e5be" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "source": [ 29 | "First value analytic function" 30 | ], 31 | "metadata": { 32 | "azdata_cell_guid": "4960bebb-b907-4702-b298-ab1c4e4b7afe" 33 | }, 34 | "attachments": {} 35 | }, 36 | { 37 | "cell_type": "code", 38 | "source": [ 39 | "SELECT Emp_Name, FIRST_VALUE(Salary) \r\n", 40 | "OVER ()\r\n", 41 | "FROM Employee;" 42 | ], 43 | "metadata": { 44 | "azdata_cell_guid": "9d285ca2-291a-4956-a7a0-85d702536796", 45 | "language": "sql" 46 | }, 47 | "outputs": [], 48 | "execution_count": null 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "source": [ 53 | "Last value" 54 | ], 55 | "metadata": { 56 | "language": "", 57 | "azdata_cell_guid": "1ad8373a-fdc3-4d15-b497-390655b04d44" 58 | }, 59 | "attachments": {} 60 | }, 61 | { 62 | "cell_type": "code", 63 | "source": [ 64 | "SELECT Emp_Name, LAST_VALUE(Salary) \r\n", 65 | "OVER ()\r\n", 66 | "FROM Employee;" 67 | ], 68 | "metadata": { 69 | "azdata_cell_guid": "0e2f1a21-a7a6-49b9-9534-f7d154e98bc9", 70 | "language": "sql" 71 | }, 72 | "outputs": [], 73 | "execution_count": null 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "source": [ 78 | "Nth value" 79 | ], 80 | "metadata": { 81 | "language": "sql", 82 | "azdata_cell_guid": "45fe25b4-3fcf-4815-af5c-fa85bf82559a" 83 | }, 84 | "attachments": {} 85 | }, 86 | { 87 | "cell_type": "code", 88 | "source": [ 89 | "SELECT Emp_Name, NTH_VALUE(Salary) \r\n", 90 | "OVER ()\r\n", 91 | "FROM Employee;" 92 | ], 93 | "metadata": { 94 | "language": "sql", 95 | "azdata_cell_guid": "31b4dcd5-4e59-4f0e-b05e-1ffa109ae306" 96 | }, 97 | "outputs": [], 98 | "execution_count": null 99 | }, 100 | { 101 | "cell_type": "markdown", 102 | "source": [ 103 | "NTILE" 104 | ], 105 | "metadata": { 106 | "language": "sql", 107 | "azdata_cell_guid": "8df6f436-4219-46a5-9259-959d361f4ecd" 108 | }, 109 | "attachments": {} 110 | }, 111 | { 112 | "cell_type": "code", 113 | "source": [ 114 | "SELECT Emp_Name, Salary, NTILE(5) \r\n", 115 | "OVER (ORDER BY Salary)\r\n", 116 | "FROM Employee;" 117 | ], 118 | "metadata": { 119 | "language": "sql", 120 | "azdata_cell_guid": "5d82ae8a-e387-4490-abb7-001a43bb36f4" 121 | }, 122 | "outputs": [], 123 | "execution_count": null 124 | }, 125 | { 126 | "cell_type": "markdown", 127 | "source": [ 128 | "Row number function" 129 | ], 130 | "metadata": { 131 | "language": "sql", 132 | "azdata_cell_guid": "ea6a0149-b62b-443f-8aa9-2ac9a2f21fdd" 133 | }, 134 | "attachments": {} 135 | }, 136 | { 137 | "cell_type": "code", 138 | "source": [ 139 | "SELECT Emp_Name, City, ROW_NUMBER()\r\n", 140 | "OVER (PARTITION BY City ORDER BY City)\r\n", 141 | "FROM Employee;" 142 | ], 143 | "metadata": { 144 | "language": "sql", 145 | "azdata_cell_guid": "c0c75e1c-60f7-4b1e-892e-e108ed803d07" 146 | }, 147 | "outputs": [], 148 | "execution_count": null 149 | }, 150 | { 151 | "cell_type": "markdown", 152 | "source": [ 153 | "Rank" 154 | ], 155 | "metadata": { 156 | "language": "sql", 157 | "azdata_cell_guid": "74edc718-ea7b-49fd-9383-fac09d02d17e" 158 | }, 159 | "attachments": {} 160 | }, 161 | { 162 | "cell_type": "code", 163 | "source": [ 164 | "SELECT Name, Marks, RANK()\r\n", 165 | "OVER (ORDER BY Marks DESC)\r\n", 166 | "FROM StudentMarks;" 167 | ], 168 | "metadata": { 169 | "language": "sql", 170 | "azdata_cell_guid": "f93c4338-ebf8-4179-963e-260c8c583cac" 171 | }, 172 | "outputs": [], 173 | "execution_count": null 174 | }, 175 | { 176 | "cell_type": "markdown", 177 | "source": [ 178 | "Dense Rank" 179 | ], 180 | "metadata": { 181 | "language": "sql", 182 | "azdata_cell_guid": "c6d01964-7325-4860-936e-d34380b5df3f" 183 | }, 184 | "attachments": {} 185 | }, 186 | { 187 | "cell_type": "code", 188 | "source": [ 189 | "SELECT Name, Marks, DENSE_RANK()\r\n", 190 | "OVER (ORDER BY Marks DESC)\r\n", 191 | "FROM StudentMarks;" 192 | ], 193 | "metadata": { 194 | "language": "sql", 195 | "azdata_cell_guid": "56fc8f5c-417c-4079-93ad-5e8e429356de" 196 | }, 197 | "outputs": [], 198 | "execution_count": null 199 | }, 200 | { 201 | "cell_type": "markdown", 202 | "source": [ 203 | "Percent rank" 204 | ], 205 | "metadata": { 206 | "language": "sql", 207 | "azdata_cell_guid": "b77a5ade-00c3-4655-a3dd-4c40e8a6f1dd" 208 | }, 209 | "attachments": {} 210 | }, 211 | { 212 | "cell_type": "code", 213 | "source": [ 214 | "SELECT Name, Marks, PERCENT_RANK()\r\n", 215 | "OVER (ORDER BY Marks ASC)\r\n", 216 | "FROM StudentMarks;" 217 | ], 218 | "metadata": { 219 | "language": "sql", 220 | "azdata_cell_guid": "e71c5ced-e2e8-42be-bd4a-9f173450dc11" 221 | }, 222 | "outputs": [], 223 | "execution_count": null 224 | }, 225 | { 226 | "cell_type": "markdown", 227 | "source": [ 228 | "Make above function readable using Round function" 229 | ], 230 | "metadata": { 231 | "language": "sql", 232 | "azdata_cell_guid": "6fc41276-1e89-4406-9bce-9d5c85e0b6f5" 233 | }, 234 | "attachments": {} 235 | }, 236 | { 237 | "cell_type": "code", 238 | "source": [ 239 | "SELECT Name, Marks, ROUND(PERCENT_RANK()\r\n", 240 | "OVER (ORDER BY Marks ASC) * 100, 2)\r\n", 241 | "FROM StudentMarks;" 242 | ], 243 | "metadata": { 244 | "language": "sql", 245 | "azdata_cell_guid": "f9acf4a8-c090-4410-b1d3-41705167ac99" 246 | }, 247 | "outputs": [], 248 | "execution_count": null 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "source": [ 253 | "We can concat \"%\" to the percent rank column" 254 | ], 255 | "metadata": { 256 | "language": "sql", 257 | "azdata_cell_guid": "0784da49-5f61-4def-bb2e-56f228ba980c" 258 | }, 259 | "attachments": {} 260 | }, 261 | { 262 | "cell_type": "code", 263 | "source": [ 264 | "SELECT Name, Marks, ROUND(PERCENT_RANK()\r\n", 265 | "OVER (ORDER BY Marks ASC) * 100, 2) || '%'\r\n", 266 | "FROM StudentMarks;" 267 | ], 268 | "metadata": { 269 | "language": "sql", 270 | "azdata_cell_guid": "3fe11457-a8cd-43e7-840e-c801e251bbdb" 271 | }, 272 | "outputs": [], 273 | "execution_count": null 274 | }, 275 | { 276 | "cell_type": "markdown", 277 | "source": [ 278 | "Lag function" 279 | ], 280 | "metadata": { 281 | "language": "sql", 282 | "azdata_cell_guid": "e48e4333-225a-4230-ab9f-9e15a3af0214" 283 | }, 284 | "attachments": {} 285 | }, 286 | { 287 | "cell_type": "code", 288 | "source": [ 289 | "SELECT Name, Marks, LAG(Marks, 1, 0)\r\n", 290 | "OVER (ORDER BY Marks ASC)\r\n", 291 | "FROM StudentMarks;" 292 | ], 293 | "metadata": { 294 | "language": "sql", 295 | "azdata_cell_guid": "ec659c7a-6495-4c63-93af-0dc46f99e18a" 296 | }, 297 | "outputs": [], 298 | "execution_count": null 299 | }, 300 | { 301 | "cell_type": "markdown", 302 | "source": [ 303 | "Lead function" 304 | ], 305 | "metadata": { 306 | "language": "", 307 | "azdata_cell_guid": "bbe26891-4fe9-4f8f-8dd3-28948a9f074e" 308 | }, 309 | "attachments": {} 310 | }, 311 | { 312 | "cell_type": "code", 313 | "source": [ 314 | "SELECT Name, Marks, LEAD(Marks, 1, 0)\r\n", 315 | "OVER (ORDER BY Marks ASC)\r\n", 316 | "FROM StudentMarks;" 317 | ], 318 | "metadata": { 319 | "azdata_cell_guid": "823b3d1e-a272-424c-9af2-bdf4b1aae6e4", 320 | "language": "sql" 321 | }, 322 | "outputs": [], 323 | "execution_count": null 324 | } 325 | ] 326 | } -------------------------------------------------------------------------------- /src/PL-SQL/01/Loops.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Printing a sentence" 20 | ], 21 | "metadata": { 22 | "language": "sql", 23 | "azdata_cell_guid": "ee04a5c3-937e-4007-bf73-e650a34f0540" 24 | }, 25 | "attachments": {} 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "source": [ 30 | "If you are on SqlDeveloper, you need to set SERVEROUTPUT variable on. and then you can print" 31 | ], 32 | "metadata": { 33 | "language": "sql", 34 | "azdata_cell_guid": "6d8a2528-3952-4c09-8052-843a87484914" 35 | }, 36 | "attachments": {} 37 | }, 38 | { 39 | "cell_type": "code", 40 | "source": [ 41 | "SET SERVEROUTPUT ON" 42 | ], 43 | "metadata": { 44 | "language": "sql", 45 | "azdata_cell_guid": "422b1d70-2325-40ca-a27a-e3f5404432fb" 46 | }, 47 | "outputs": [], 48 | "execution_count": null 49 | }, 50 | { 51 | "cell_type": "code", 52 | "source": [ 53 | "DBMS_OUTPUT.PUT_LINE('Assalamu Alaikum');" 54 | ], 55 | "metadata": { 56 | "language": "sql", 57 | "azdata_cell_guid": "8a8b895a-e7a4-42aa-b926-29fe31b34838" 58 | }, 59 | "outputs": [], 60 | "execution_count": null 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "source": [ 65 | "For loop" 66 | ], 67 | "metadata": { 68 | "azdata_cell_guid": "8a19ce2b-cd7f-45aa-8f1b-67b4296d4dcf" 69 | }, 70 | "attachments": {} 71 | }, 72 | { 73 | "cell_type": "code", 74 | "source": [ 75 | "BEGIN\r\n", 76 | "FOR a in 10 .. 2000 LOOP \r\n", 77 | " INSERT INTO Sales VALUES ('abc' || a, a);\r\n", 78 | "END LOOP;\r\n", 79 | "END;" 80 | ], 81 | "metadata": { 82 | "azdata_cell_guid": "5d1af851-3281-43bd-a308-d32fb4ebd4a3", 83 | "language": "sql" 84 | }, 85 | "outputs": [], 86 | "execution_count": null 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "source": [ 91 | "Reverse loop" 92 | ], 93 | "metadata": { 94 | "language": "sql", 95 | "azdata_cell_guid": "1aee01fc-4d2d-40e6-b02b-e37db5a0dc4c" 96 | }, 97 | "attachments": {} 98 | }, 99 | { 100 | "cell_type": "code", 101 | "source": [ 102 | "BEGIN \r\n", 103 | " FOR a IN REVERSE 10 .. 20 LOOP \r\n", 104 | " DBMS_OUTPUT.PUT_LINE('value of a: ' || a); \r\n", 105 | " END LOOP; \r\n", 106 | "END; " 107 | ], 108 | "metadata": { 109 | "language": "sql", 110 | "azdata_cell_guid": "b8ab7f19-262f-441c-9476-fd5fa077c689" 111 | }, 112 | "outputs": [], 113 | "execution_count": null 114 | } 115 | ] 116 | } -------------------------------------------------------------------------------- /src/PL-SQL/02/StoredProcedures.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Stored Procedures" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "d4f75ff9-0144-44e2-a637-9a7a65bf6cb9" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "source": [ 29 | "List all stored procedures" 30 | ], 31 | "metadata": { 32 | "azdata_cell_guid": "6c680c6b-2029-4b12-991c-c26f37ab8871", 33 | "language": "" 34 | }, 35 | "attachments": {} 36 | }, 37 | { 38 | "cell_type": "code", 39 | "source": [ 40 | "SELECT * FROM All_SOURCE\r\n", 41 | "WHERE TYPE = 'PROCEDURE'" 42 | ], 43 | "metadata": { 44 | "azdata_cell_guid": "4e81b1cf-c798-4c05-b7b4-92268e6b0205", 45 | "language": "sql" 46 | }, 47 | "outputs": [], 48 | "execution_count": null 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "source": [ 53 | "The print line Stored procedures in oracle" 54 | ], 55 | "metadata": { 56 | "language": "sql", 57 | "azdata_cell_guid": "96c503e2-f3db-4678-8e79-3a5fc26ebc25" 58 | }, 59 | "attachments": {} 60 | }, 61 | { 62 | "cell_type": "code", 63 | "source": [ 64 | "SELECT * FROM All_SOURCE\r\n", 65 | "WHERE TYPE = 'PROCEDURE' AND\r\n", 66 | "TEXT LIKE '%dbms%'" 67 | ], 68 | "metadata": { 69 | "language": "sql", 70 | "azdata_cell_guid": "265f2e7f-5b7e-4c7a-a5a4-2e3a287b6051" 71 | }, 72 | "outputs": [], 73 | "execution_count": null 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "source": [ 78 | "First test procedure" 79 | ], 80 | "metadata": { 81 | "language": "sql", 82 | "azdata_cell_guid": "df703529-5ac0-4a2d-a672-5e762052dc0f" 83 | }, 84 | "attachments": {} 85 | }, 86 | { 87 | "cell_type": "code", 88 | "source": [ 89 | "CREATE OR REPLACE PROCEDURE TEST\r\n", 90 | "IS\r\n", 91 | "BEGIN\r\n", 92 | " DBMS_OUTPUT.PUT_LINE('Assalamu Alaikum!');\r\n", 93 | "END;" 94 | ], 95 | "metadata": { 96 | "language": "sql", 97 | "azdata_cell_guid": "9a4d1a37-1ebb-48a8-a7dc-19a57c1ae3f5" 98 | }, 99 | "outputs": [], 100 | "execution_count": null 101 | }, 102 | { 103 | "cell_type": "markdown", 104 | "source": [ 105 | "Execute a stored procedure" 106 | ], 107 | "metadata": { 108 | "language": "sql", 109 | "azdata_cell_guid": "bdba626a-a6a1-4d75-a488-85850deb7138" 110 | }, 111 | "attachments": {} 112 | }, 113 | { 114 | "cell_type": "code", 115 | "source": [ 116 | "EXECUTE TEST;" 117 | ], 118 | "metadata": { 119 | "language": "sql", 120 | "azdata_cell_guid": "72972712-39ad-4e16-abc5-045c6b0981ff" 121 | }, 122 | "outputs": [], 123 | "execution_count": null 124 | }, 125 | { 126 | "cell_type": "markdown", 127 | "source": [ 128 | "Passing Parameters (IN)" 129 | ], 130 | "metadata": { 131 | "language": "sql", 132 | "azdata_cell_guid": "2e5ce0f7-48ad-498d-9527-7550948729b0" 133 | }, 134 | "attachments": {} 135 | }, 136 | { 137 | "cell_type": "code", 138 | "source": [ 139 | "CREATE OR REPLACE PROCEDURE TEST\r\n", 140 | "(\r\n", 141 | " FirstParam IN VARCHAR\r\n", 142 | ")\r\n", 143 | "IS\r\n", 144 | "BEGIN\r\n", 145 | " DBMS_OUTPUT.PUT_LINE('Assalamu Alaikum!, Welcome to the ' || FirstParam);\r\n", 146 | "END;" 147 | ], 148 | "metadata": { 149 | "language": "sql", 150 | "azdata_cell_guid": "84c39af6-9e1f-4526-9985-552a656b8e0a" 151 | }, 152 | "outputs": [], 153 | "execution_count": null 154 | }, 155 | { 156 | "cell_type": "markdown", 157 | "source": [ 158 | "Execute procedure and pass parameteres" 159 | ], 160 | "metadata": { 161 | "language": "sql", 162 | "azdata_cell_guid": "35fb3017-d51d-42d9-81d8-0b9e4246b1eb" 163 | }, 164 | "attachments": {} 165 | }, 166 | { 167 | "cell_type": "code", 168 | "source": [ 169 | "EXECUTE TEST('Oracle Course');" 170 | ], 171 | "metadata": { 172 | "language": "sql", 173 | "azdata_cell_guid": "19754389-8d94-490a-be97-4de25706af4e" 174 | }, 175 | "outputs": [], 176 | "execution_count": null 177 | }, 178 | { 179 | "cell_type": "markdown", 180 | "source": [ 181 | "Getting parameter (OUT)" 182 | ], 183 | "metadata": { 184 | "language": "sql", 185 | "azdata_cell_guid": "253dbe13-3431-4b34-ac69-6dbe11b72885" 186 | }, 187 | "attachments": {} 188 | }, 189 | { 190 | "cell_type": "code", 191 | "source": [ 192 | "CREATE OR REPLACE PROCEDURE TEST\r\n", 193 | "(\r\n", 194 | " FirstParam OUT VARCHAR\r\n", 195 | ")\r\n", 196 | "IS\r\n", 197 | "BEGIN\r\n", 198 | " FirstParam := 'Assalamu Alaikum!';\r\n", 199 | "END;" 200 | ], 201 | "metadata": { 202 | "language": "sql", 203 | "azdata_cell_guid": "afb3a6ac-ff57-4f72-ace0-d853af7a684f" 204 | }, 205 | "outputs": [], 206 | "execution_count": null 207 | }, 208 | { 209 | "cell_type": "markdown", 210 | "source": [ 211 | "Executing above procedure" 212 | ], 213 | "metadata": { 214 | "language": "sql", 215 | "azdata_cell_guid": "c85a93ae-f386-45cb-a386-5532904bfb5f" 216 | }, 217 | "attachments": {} 218 | }, 219 | { 220 | "cell_type": "code", 221 | "source": [ 222 | "DECLARE \r\n", 223 | " First VARCHAR(50);\r\n", 224 | "BEGIN\r\n", 225 | " TEST(First);\r\n", 226 | " DBMS_OUTPUT.PUT_LINE(First);\r\n", 227 | "END;" 228 | ], 229 | "metadata": { 230 | "language": "sql", 231 | "azdata_cell_guid": "1b6b706d-f6ec-4f28-a064-d198a50cbdb9" 232 | }, 233 | "outputs": [], 234 | "execution_count": null 235 | }, 236 | { 237 | "cell_type": "markdown", 238 | "source": [ 239 | "Passing and Getting one parameter (IN OUT)" 240 | ], 241 | "metadata": { 242 | "language": "", 243 | "azdata_cell_guid": "47d7b515-b743-4822-a58d-b7cae8171ad8" 244 | }, 245 | "attachments": {} 246 | }, 247 | { 248 | "cell_type": "code", 249 | "source": [ 250 | "CREATE OR REPLACE PROCEDURE TEST\r\n", 251 | "(\r\n", 252 | " FirstParam IN OUT VARCHAR\r\n", 253 | ")\r\n", 254 | "IS\r\n", 255 | "BEGIN\r\n", 256 | " FirstParam := FirstParam || ', Welcome!';\r\n", 257 | "END;" 258 | ], 259 | "metadata": { 260 | "azdata_cell_guid": "efda4c4a-208c-4ef9-b378-b10efcabef41", 261 | "language": "sql" 262 | }, 263 | "outputs": [], 264 | "execution_count": null 265 | }, 266 | { 267 | "cell_type": "markdown", 268 | "source": [ 269 | "Executing above procedure" 270 | ], 271 | "metadata": { 272 | "language": "sql", 273 | "azdata_cell_guid": "7db1bd84-b7a4-4382-b24c-9af1f30ab873" 274 | }, 275 | "attachments": {} 276 | }, 277 | { 278 | "cell_type": "code", 279 | "source": [ 280 | "DECLARE \r\n", 281 | " First VARCHAR(50) := 'Assalamu Alaikum!';\r\n", 282 | "BEGIN\r\n", 283 | " TEST(First);\r\n", 284 | " DBMS_OUTPUT.PUT_LINE(First);\r\n", 285 | "END;" 286 | ], 287 | "metadata": { 288 | "language": "sql", 289 | "azdata_cell_guid": "98797389-ad6d-42ed-9dee-967a2101f6f4" 290 | }, 291 | "outputs": [], 292 | "execution_count": null 293 | } 294 | ] 295 | } -------------------------------------------------------------------------------- /src/PL-SQL/03/Functions.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Oracle Functions" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "b6a33ec6-8e85-4f86-ab0a-cce683910ff1", 23 | "language": "" 24 | }, 25 | "attachments": {} 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "source": [ 30 | "Creating salary function" 31 | ], 32 | "metadata": { 33 | "azdata_cell_guid": "04440c3d-4985-47f8-a1a1-7ca4ff8af0b1" 34 | }, 35 | "attachments": {} 36 | }, 37 | { 38 | "cell_type": "code", 39 | "source": [ 40 | "CREATE OR REPLACE FUNCTION GET_SALARY(salary number, tax number) RETURN NUMBER IS\r\n", 41 | "BEGIN\r\n", 42 | " RETURN (salary - ((salary * tax) / 100));\r\n", 43 | "END;" 44 | ], 45 | "metadata": { 46 | "azdata_cell_guid": "6a733311-afce-47bb-864d-a5c6b326a35b", 47 | "language": "sql" 48 | }, 49 | "outputs": [], 50 | "execution_count": null 51 | }, 52 | { 53 | "cell_type": "markdown", 54 | "source": [ 55 | "Use function with Select Query" 56 | ], 57 | "metadata": { 58 | "language": "sql", 59 | "azdata_cell_guid": "91692878-7969-4453-b614-1c6bb8960352" 60 | }, 61 | "attachments": {} 62 | }, 63 | { 64 | "cell_type": "code", 65 | "source": [ 66 | "SELECT Name, Email, Salary, Tax, GET_SALARY(Salary,Tax) AS SalaryWithoutTax\r\n", 67 | "FROM Employee;" 68 | ], 69 | "metadata": { 70 | "language": "sql", 71 | "azdata_cell_guid": "4bc4d489-7f45-4bf3-a2a6-7eeded1a3525" 72 | }, 73 | "outputs": [], 74 | "execution_count": null 75 | }, 76 | { 77 | "cell_type": "markdown", 78 | "source": [ 79 | "Get function" 80 | ], 81 | "metadata": { 82 | "language": "sql", 83 | "azdata_cell_guid": "3f630df1-729f-461d-be82-9d0f17007f88" 84 | }, 85 | "attachments": {} 86 | }, 87 | { 88 | "cell_type": "code", 89 | "source": [ 90 | "SELECT * FROM ALL_SOURCE\r\n", 91 | "WHERE Type = 'FUNCTION' AND Name = 'GET_SALARY';" 92 | ], 93 | "metadata": { 94 | "language": "sql", 95 | "azdata_cell_guid": "6b7373d8-0dde-4597-a130-89da4b4d8c66" 96 | }, 97 | "outputs": [], 98 | "execution_count": null 99 | }, 100 | { 101 | "cell_type": "markdown", 102 | "source": [ 103 | "Drop function" 104 | ], 105 | "metadata": { 106 | "language": "sql", 107 | "azdata_cell_guid": "0eddf328-5af6-4e57-8239-d7a71da53f03" 108 | }, 109 | "attachments": {} 110 | }, 111 | { 112 | "cell_type": "code", 113 | "source": [ 114 | "DROP FUNCTION GET_SALARY;" 115 | ], 116 | "metadata": { 117 | "language": "sql", 118 | "azdata_cell_guid": "6e125316-ef73-456d-b9d1-f17d6629f00d" 119 | }, 120 | "outputs": [], 121 | "execution_count": null 122 | } 123 | ] 124 | } -------------------------------------------------------------------------------- /src/PL-SQL/03/Packages.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Oracle Packages" 20 | ], 21 | "metadata": { 22 | "azdata_cell_guid": "c0aa8f17-ee53-40f5-80fd-4e25f2eb00c6" 23 | }, 24 | "attachments": {} 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "source": [ 29 | "Create Math Package which includes Addition, Subtraction, Product." 30 | ], 31 | "metadata": { 32 | "azdata_cell_guid": "14d64289-a89b-4b87-b7a0-d322ec4f150c", 33 | "language": "" 34 | }, 35 | "attachments": {} 36 | }, 37 | { 38 | "cell_type": "markdown", 39 | "source": [ 40 | "Declaration" 41 | ], 42 | "metadata": { 43 | "azdata_cell_guid": "ecf05204-ba01-4e4e-8c72-872d0cb17adf" 44 | }, 45 | "attachments": {} 46 | }, 47 | { 48 | "cell_type": "code", 49 | "source": [ 50 | "CREATE OR REPLACE PACKAGE Math IS\r\n", 51 | " FUNCTION Addition(val1 NUMBER, val2 NUMBER) RETURN NUMBER;\r\n", 52 | " FUNCTION Product(val1 NUMBER, val2 NUMBER) RETURN NUMBER;\r\n", 53 | " FUNCTION Subtraction(val1 NUMBER, val2 NUMBER) RETURN NUMBER;\r\n", 54 | "END Math; " 55 | ], 56 | "metadata": { 57 | "azdata_cell_guid": "a9d3aaa9-f372-4db6-ae53-6a611162cab5", 58 | "language": "sql" 59 | }, 60 | "outputs": [], 61 | "execution_count": null 62 | }, 63 | { 64 | "cell_type": "markdown", 65 | "source": [ 66 | "Package Body" 67 | ], 68 | "metadata": { 69 | "language": "sql", 70 | "azdata_cell_guid": "59a5663f-1f90-40a4-ab45-b83c70f88921" 71 | }, 72 | "attachments": {} 73 | }, 74 | { 75 | "cell_type": "code", 76 | "source": [ 77 | "CREATE OR REPLACE PACKAGE BODY Math IS\r\n", 78 | " \r\n", 79 | " FUNCTION Addition(val1 NUMBER, val2 NUMBER) RETURN NUMBER IS\r\n", 80 | " BEGIN\r\n", 81 | " RETURN (val1 + val2);\r\n", 82 | " END Addition;\r\n", 83 | " \r\n", 84 | " FUNCTION Product(val1 NUMBER, val2 NUMBER) RETURN NUMBER IS\r\n", 85 | " BEGIN\r\n", 86 | " RETURN (val1 * val2);\r\n", 87 | " END Product;\r\n", 88 | " \r\n", 89 | " FUNCTION Subtraction(val1 NUMBER, val2 NUMBER) RETURN NUMBER IS\r\n", 90 | " BEGIN\r\n", 91 | " RETURN (val1 - val2);\r\n", 92 | " END Subtraction;\r\n", 93 | " \r\n", 94 | "END; \r\n", 95 | "" 96 | ], 97 | "metadata": { 98 | "language": "sql", 99 | "azdata_cell_guid": "f002da7e-0624-4677-97a7-f12e4f69996d" 100 | }, 101 | "outputs": [], 102 | "execution_count": null 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "source": [ 107 | "Call a function from package with select query" 108 | ], 109 | "metadata": { 110 | "language": "sql", 111 | "azdata_cell_guid": "be49211a-f9ca-42ee-b124-3ff0c1c95469" 112 | }, 113 | "attachments": {} 114 | }, 115 | { 116 | "cell_type": "code", 117 | "source": [ 118 | "SELECT Math.Addition(23, 39) FROM Dual;" 119 | ], 120 | "metadata": { 121 | "language": "sql", 122 | "azdata_cell_guid": "9e1067cb-a481-4c8b-a561-e3e37eb707b7" 123 | }, 124 | "outputs": [], 125 | "execution_count": null 126 | } 127 | ] 128 | } -------------------------------------------------------------------------------- /src/PL-SQL/04/Triggers.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Oracle Triggers\n", 20 | "\n", 21 | "Purpose\n", 22 | "\n", 23 | "\\- Logging\n", 24 | "\n", 25 | "\\- Backup\n", 26 | "\n", 27 | "Triggers types\n", 28 | "\n", 29 | "\\- Application Triggers\n", 30 | "\n", 31 | "\\- Database Trigger\n", 32 | "\n", 33 | "Database Triggers Types\n", 34 | "\n", 35 | "\\- DDL Triggers\n", 36 | "\n", 37 | "\\- Instead of Trigger\n", 38 | "\n", 39 | "\\- DDL Trigger\n", 40 | "\n", 41 | " \n", 42 | "\n", 43 | "Events\n", 44 | "\n", 45 | "\\- AFTER\n", 46 | "\n", 47 | "\\- BEFORE\n", 48 | "\n", 49 | "\\- INSTEAD OF" 50 | ], 51 | "metadata": { 52 | "azdata_cell_guid": "b8e51984-dc52-4b69-872b-312ed016b94d" 53 | }, 54 | "attachments": {} 55 | }, 56 | { 57 | "cell_type": "markdown", 58 | "source": [ 59 | "A Trigger which prints on insertion" 60 | ], 61 | "metadata": { 62 | "azdata_cell_guid": "fb49ea17-2a40-4b08-8c3b-0bc202f2c805", 63 | "language": "" 64 | }, 65 | "attachments": {} 66 | }, 67 | { 68 | "cell_type": "markdown", 69 | "source": [ 70 | "\\- We can't create trigger on objects belongs to sys\n", 71 | "\n", 72 | "\\- For creating triggers on specifc user, we need to grant trigger creation priviledge" 73 | ], 74 | "metadata": { 75 | "azdata_cell_guid": "075ee1f6-e2fb-49b5-acca-ba94f7e2fe99" 76 | }, 77 | "attachments": {} 78 | }, 79 | { 80 | "cell_type": "code", 81 | "source": [ 82 | "GRANT CREATE TRIGGER TO [Username];" 83 | ], 84 | "metadata": { 85 | "language": "sql", 86 | "azdata_cell_guid": "841fd166-82a2-4b22-974e-f68dfacd283f" 87 | }, 88 | "outputs": [], 89 | "execution_count": null 90 | }, 91 | { 92 | "cell_type": "markdown", 93 | "source": [ 94 | "If want to give access to a user to create triggers on any user tables" 95 | ], 96 | "metadata": { 97 | "language": "sql", 98 | "azdata_cell_guid": "60e26f8b-6471-45d1-9227-58db7ed23f83" 99 | }, 100 | "attachments": {} 101 | }, 102 | { 103 | "cell_type": "code", 104 | "source": [ 105 | "GRANT CREATE ANY TRIGGER TO [Username];" 106 | ], 107 | "metadata": { 108 | "language": "sql", 109 | "azdata_cell_guid": "a5a4bc69-61a3-4e40-ba18-16a96ef872ad" 110 | }, 111 | "outputs": [], 112 | "execution_count": null 113 | }, 114 | { 115 | "cell_type": "markdown", 116 | "source": [ 117 | "Create trigger" 118 | ], 119 | "metadata": { 120 | "language": "sql", 121 | "azdata_cell_guid": "b7632466-a886-4526-a032-afa42c70bd72" 122 | }, 123 | "attachments": {} 124 | }, 125 | { 126 | "cell_type": "code", 127 | "source": [ 128 | "CREATE OR REPLACE TRIGGER ProductsInsertionLogger\r\n", 129 | "AFTER INSERT ON Products\r\n", 130 | "BEGIN\r\n", 131 | " DBMS_OUTPUT.PUT_LINE('You have inserted new product ' || CURRENT_DATE());\r\n", 132 | "END;" 133 | ], 134 | "metadata": { 135 | "azdata_cell_guid": "1529b75b-1fad-42fe-80f5-0e4b64cd7e6a", 136 | "language": "sql" 137 | }, 138 | "outputs": [], 139 | "execution_count": null 140 | }, 141 | { 142 | "cell_type": "markdown", 143 | "source": [ 144 | "NEW and OLD references" 145 | ], 146 | "metadata": { 147 | "language": "sql", 148 | "azdata_cell_guid": "faf92782-a63f-4020-b42c-74843271f4f6" 149 | }, 150 | "attachments": {} 151 | }, 152 | { 153 | "cell_type": "code", 154 | "source": [ 155 | "CREATE OR REPLACE TRIGGER LogNameOfNewlyAddedProduct\r\n", 156 | "BEFORE INSERT ON Products\r\n", 157 | "REFERENCING NEW AS NewInsertedRecord OLD AS AlreadyAvailableRecord\r\n", 158 | "FOR EACH ROW\r\n", 159 | "BEGIN\r\n", 160 | " DBMS_OUTPUT.PUT_LINE(:NewInsertedRecord.name);\r\n", 161 | "END;" 162 | ], 163 | "metadata": { 164 | "language": "sql", 165 | "azdata_cell_guid": "47b3f00d-533d-4dbb-83ad-2a7233f25d55" 166 | }, 167 | "outputs": [], 168 | "execution_count": null 169 | }, 170 | { 171 | "cell_type": "markdown", 172 | "source": [ 173 | "List all triggers" 174 | ], 175 | "metadata": { 176 | "language": "sql", 177 | "azdata_cell_guid": "26702604-8e53-4c26-93e0-aad8b51a395f" 178 | }, 179 | "attachments": {} 180 | }, 181 | { 182 | "cell_type": "code", 183 | "source": [ 184 | "SELECT * FROM USER_TRIGGERS;" 185 | ], 186 | "metadata": { 187 | "language": "sql", 188 | "azdata_cell_guid": "47f03e03-9813-4147-8611-b426b342c2e1" 189 | }, 190 | "outputs": [], 191 | "execution_count": null 192 | }, 193 | { 194 | "cell_type": "markdown", 195 | "source": [ 196 | "Drop a trigger" 197 | ], 198 | "metadata": { 199 | "language": "sql", 200 | "azdata_cell_guid": "ff0c2a42-57b1-482c-8afd-b9a02e74783b" 201 | }, 202 | "attachments": {} 203 | }, 204 | { 205 | "cell_type": "code", 206 | "source": [ 207 | "DROP TRIGGER [TriggerName];" 208 | ], 209 | "metadata": { 210 | "language": "sql", 211 | "azdata_cell_guid": "e2b3f3f1-70d0-4a7a-986c-033143f8640f" 212 | }, 213 | "outputs": [], 214 | "execution_count": null 215 | }, 216 | { 217 | "cell_type": "markdown", 218 | "source": [ 219 | "Disable a trigger" 220 | ], 221 | "metadata": { 222 | "language": "sql", 223 | "azdata_cell_guid": "6c7baf80-ecd1-435b-88c6-70cbe25de93c" 224 | }, 225 | "attachments": {} 226 | }, 227 | { 228 | "cell_type": "code", 229 | "source": [ 230 | "ALTER TRIGGER [TriggerName] DISABLE;" 231 | ], 232 | "metadata": { 233 | "language": "sql", 234 | "azdata_cell_guid": "047a9eee-32eb-494d-b5d1-ab13c077569c" 235 | }, 236 | "outputs": [], 237 | "execution_count": null 238 | }, 239 | { 240 | "cell_type": "markdown", 241 | "source": [ 242 | "Enable trigger" 243 | ], 244 | "metadata": { 245 | "language": "sql", 246 | "azdata_cell_guid": "e2ac6b04-4c84-48fb-8f08-7d57ae4ddecd" 247 | }, 248 | "attachments": {} 249 | }, 250 | { 251 | "cell_type": "code", 252 | "source": [ 253 | "ALTER TRIGGER [TriggerName] ENABLE;" 254 | ], 255 | "metadata": { 256 | "language": "sql", 257 | "azdata_cell_guid": "8175a74a-ae67-47e8-b376-bf667226fdbf" 258 | }, 259 | "outputs": [], 260 | "execution_count": null 261 | } 262 | ] 263 | } -------------------------------------------------------------------------------- /src/SQLPlus/Commands.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "name": "SQL", 5 | "display_name": "SQL", 6 | "language": "sql" 7 | }, 8 | "language_info": { 9 | "name": "sql", 10 | "version": "" 11 | } 12 | }, 13 | "nbformat_minor": 2, 14 | "nbformat": 4, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "source": [ 19 | "Print current user name" 20 | ], 21 | "metadata": { 22 | "language": "sql", 23 | "azdata_cell_guid": "f3930904-92ed-434d-9f66-fd50297c3795" 24 | }, 25 | "attachments": {} 26 | }, 27 | { 28 | "cell_type": "code", 29 | "source": [ 30 | "show user;" 31 | ], 32 | "metadata": { 33 | "azdata_cell_guid": "95d0dee5-993f-415f-a700-90692741d8d5", 34 | "language": "sql" 35 | }, 36 | "outputs": [], 37 | "execution_count": 39 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "source": [ 42 | "Prints service names" 43 | ], 44 | "metadata": { 45 | "language": "sql", 46 | "azdata_cell_guid": "df352b09-a9a7-475a-8b18-5dfb173637cb" 47 | }, 48 | "attachments": {} 49 | }, 50 | { 51 | "cell_type": "code", 52 | "source": [ 53 | "select value from v$parameter where name like '%service_name%';" 54 | ], 55 | "metadata": { 56 | "language": "sql", 57 | "azdata_cell_guid": "97ae3c2a-6e18-488c-956c-865c01a97821" 58 | }, 59 | "outputs": [], 60 | "execution_count": 54 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "source": [ 65 | "Clean plsql screen" 66 | ], 67 | "metadata": { 68 | "language": "sql", 69 | "azdata_cell_guid": "d0445c1a-f919-49cd-9c62-68be120a58e2" 70 | }, 71 | "attachments": {} 72 | }, 73 | { 74 | "cell_type": "code", 75 | "source": [ 76 | "cl src;" 77 | ], 78 | "metadata": { 79 | "language": "sql", 80 | "azdata_cell_guid": "5492bd77-5cd1-4388-a719-d963d21cef18" 81 | }, 82 | "outputs": [], 83 | "execution_count": null 84 | }, 85 | { 86 | "cell_type": "markdown", 87 | "source": [ 88 | "" 89 | ], 90 | "metadata": { 91 | "language": "sql", 92 | "azdata_cell_guid": "5a90138e-4c3b-4cda-9dbb-f97f6fc571da" 93 | } 94 | } 95 | ] 96 | } --------------------------------------------------------------------------------