Dynamic SQL

“Dynamic SQL is the SQL statement that is constructed and executed at runtime based on input parameters passed”

https://www.sqlshack.com/dynamic-sql-in-sql-server/

Example: ChatGPT

DECLARE @sql AS NVARCHAR(MAX)

SET @sql = ‘SELECT * FROM Employees WHERE Department = ”’ + @department + ””

EXEC sp_executesql @sql

Another Example: Oracle

table_name := ‘HR.Employees’;

dyn_sql := ‘Select * from ‘ || table_name || ‘ FETCH FIRST 10 ROWS ONLY ‘;

EXECUTE IMMEDIATE dyn_sql;

DECLARE
    table_name VARCHAR2(100):= '';
    dyn_sql VARCHAR2(100):= '';
BEGIN     
    table_name := 'HR.Employees';
    dyn_sql := 'Select * from ' || table_name || ' FETCH FIRST 10 ROWS ONLY ';
    EXECUTE IMMEDIATE dyn_sql;
END;

A simple dynamic SQL in a stored Procedure (Oracle)

CREATE OR REPLACE PROCEDURE Retrieve_10_ROWS
IS
    dyn_sql VARCHAR2(200);
    table_name VARCHAR2(50);
BEGIN 
 table_name := 'HR.Employees';
 dyn_sql := 'Select * from ' || table_name || ' FETCH FIRST 10 ROWS ONLY ';
 
 EXECUTE IMMEDIATE dyn_sql;
END;

EXEC Retrieve_10_ROWS;

Dynamic/Reference Cursor and Dynamic SQL

CREATE OR REPLACE PROCEDURE Retrieve_10_ROWS_dyn_cur(p_table_to_query VARCHAR2) IS
    dyn_sql VARCHAR2(200);
    JOB_ID VARCHAR2(50);
    JOB_TITLE VARCHAR2(100);    
    TYPE cur_typ IS REF CURSOR;
    c cur_typ;
BEGIN
dyn_sql := 'Select JOB_ID, JOB_TITLE from ' || p_table_to_query || ' FETCH FIRST 10 ROWS ONLY ';
 OPEN c FOR dyn_sql; 
 --USING table_name;
    LOOP
        FETCH c INTO JOB_ID, JOB_TITLE;        
        EXIT WHEN c%NOTFOUND;
        -- process row here
        DBMS_OUTPUT.PUT_LINE(JOB_ID || ' ' || JOB_TITLE);
    END LOOP;
    CLOSE c;
 EXECUTE IMMEDIATE dyn_sql;
END;

What is a Dynamic Cursor in Oracle PL/SQL

Dynamic/Ref Cursor

CREATE OR REPLACE PROCEDURE query_invoice(
month VARCHAR2,
year VARCHAR2) IS
TYPE cur_typ IS REF CURSOR;
c cur_typ;

query_str VARCHAR2(200);
inv_num NUMBER;
inv_cust VARCHAR2(20);
inv_amt NUMBER;
BEGIN
query_str := 'SELECT num, cust, amt FROM inv_' || month ||'_'|| year
|| ' WHERE invnum = :id';

OPEN c FOR query_str USING inv_num;
LOOP
FETCH c INTO inv_num, inv_cust, inv_amt;
EXIT WHEN c%NOTFOUND;
-- process row here
END LOOP;
CLOSE c;
END;
/

Ref: https://docs.oracle.com/cd/B13789_01/appdev.101/b10795/adfns_dy.htm

cursor FOR loop

Cursor For Loop for an Explicit Cursor

Case Statement in Oracle PL/SQL

Write a SQL block that will categorize Employee Salaries. If the Salary is higher than average, it will show ‘Above Average’ to the output. If the Salary is lower than the average it will show ‘Below average’ to the output. Use HR.Employees Table. Also, utilize CASE statement.

SELECT employee_id,
       CASE 
           WHEN salary > (SELECT AVG(salary) FROM hr.employees) 
                THEN 'Above Average'
           WHEN salary < (SELECT AVG(salary) FROM hr.employees) 
                THEN 'Below Average'
           ELSE 'Average'
       END AS salary_comparison
FROM hr.employees
order by salary_comparison;

-- Ref: with a bit of information from the Internet

Variable Declaration Conventions in Oracle PL/SQL

Ref: https://trivadis.github.io/plsql-and-sql-coding-guidelines/v4.1/2-naming-conventions/naming-conventions/

3D Scatter Plot in Python

Visualizing 3-D numeric data with Scatter Plots

length, breadth and depth

Ref: https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
import numpy as np
import seaborn as sns
%matplotlib inline

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection=’3d’)

xs = wines[‘residual sugar’]
ys = wines[‘fixed acidity’]
zs = wines[‘alcohol’]
ax.scatter(xs, ys, zs, s=50, alpha=0.6, edgecolors=’w’)

ax.set_xlabel(‘Residual Sugar’)
ax.set_ylabel(‘Fixed Acidity’)
ax.set_zlabel(‘Alcohol’)

Other Visualizations of Wine Data

Univariate Analysis

tight_layout, 15 bins

Correlation Maps: Multivariate Analysis

Seaborn – Heatmaps

plot parallel coordinates

BOX Plot

Violin plot: sns.violinplot(x=”quality”, y=”sulphates”, data=wines, ax=ax) : Seaborn

3d Pairwise Scatter Plot

Images are taken from my own executions.

How to Disable SELinux

Ref: https://www.ibm.com/docs/en/tnpm/1.4.5?topic=tasks-disable-selinux-linux-only

Sample File:

selinux: getsebool -a sample output

getsebool -a | head


abrt_anon_write –> off
abrt_handle_event –> off
abrt_upload_watch_anon_write –> on
antivirus_can_scan_system –> off
antivirus_use_jit –> off
auditadm_exec_content –> on
authlogin_nsswitch_use_ldap –> off
authlogin_radius –> off
authlogin_yubikey –> off
awstats_purge_apache_log_files –> off

VPN (Business VPN) to connect to Corporate Network

Options:

Cisco Any Connect

Cisco Mobility Connect

You will be able to download from:

https://software.cisco.com/download/home

Versions available for Windows, Mac, and Linux.

Other Options:

OpenConnect

Global Protect

NordLayer


Using Anyconnect VPN on Linux:

https://www.cisco.com/c/en/us/support/docs/smb/routers/cisco-rv-series-small-business-routers/kmgmt-2597-Installing-AnyConnect-Linux-Ubuntu-desktop-User-Interface.html


Open Connect:

https://www.infradead.org/openconnect/download.html

NordLayer Business VPN:

https://nordlayer.com/business-vpn

“A VPN is a security solution that provides a tunnel between your organization’s resources and the employees accessing them. In essence, only employees connected to the VPN servers can access company resources on the network. Since this tunnel is encrypted end-to-end, businesses need not worry about unwanted access or visibility into their network — ensuring complete protection and anonymity of all traffic.” Ref: NordLayer Website

Fix the WordPress Issue: Could not reach wordpress.org Curl Error 7

It may solve provided Selinux is denying the access
setsebool -P httpd_can_network_connect on

How to fix mail command does not work?

yum install mailx

or

apt get install mailx

MVC in Java

•To get some details on MVC pattern, you may want to check:

https://www.javatpoint.com/mvc-architecture-in-java 

https://www.geeksforgeeks.org/mvc-design-pattern/ 

•An MVC Web Application (approach, minimum what we want)

https://www.baeldung.com/mvc-servlet-jsp

Java Spring MVC:

Learn to do it Step by Step in Eclipse

https://www.digitalocean.com/community/tutorials/spring-mvc-example

Ref: the link above

IntelliJ: Spring MVC

https://medium.com/panchalprogrammingacademy/create-a-spring-mvc-project-with-maven-and-intellij-idea-community-edition-1d31b3efe078

Java Spring MVC in Eclipse

https://www.digitalocean.com/community/tutorials/spring-mvc-example