-
Continue reading →: Static call and Dynamic call in Cobol with example
Understanding Static and Dynamic Calls in COBOL This is a commonly discussed topic among COBOL programmers. We can identify program calls by looking for the CALL statement in the code. Let’s explore the difference between static and dynamic calls, and understand when and why to use each. 1. Static Call…
-
Continue reading →: FETCH FIRST N ROWS Vs OPTIMIZE FOR N ROWS in DB2
Two SQL clauses that often cause confusion are FETCH FIRST N ROWS ONLY and OPTIMIZE FOR N ROWS. While they may sound similar, their purposes are different. 1. FETCH FIRST N ROWS ONLY 2. OPTIMIZE FOR N ROWS Example Scenario Suppose an online app displays 5 customer records per screen:…
-
Continue reading →: DB2 unload utility using the program DSNTIAUL
Unloading Data from DB2 Using DSNTIAUL IBM provides two primary methods to unload data from a DB2 table: Each has its own features, so it’s worth reviewing them before choosing the right one. Below, we’ll focus on DSNTIAUL. 1. DSNTIAUL Program The DSNTIAUL utility supports two types of unloads: When…
-
Continue reading →: COALESCE function in DB2 . Alternative to NULL indicator variable in DB2 ; SQLCODE – 305.
Handling NULLs in DB2 with COALESCE In DB2, if a column is not defined with the NOT NULL constraint, it means the column can sometimes contain NULL values. When such columns are fetched in an application program without proper null handling, you may encounter SQLCODE -305. Traditionally, this is handled…
-
Continue reading →: What Are Large Language Models in Machine Learning?
What is an LLM (Large Language Model)? Before understanding what a Large Language Model (LLM) is, we first need to understand what a model means in machine learning. What is a Model? A model is a construct or a defined function that takes an input and generates an output (or…
-
Continue reading →: Artificial Intelligence and Its Subsets — A Quick Guide
Artificial Intelligence (AI) is no longer just a futuristic concept—it’s shaping the way we work, communicate, and live. At its core, AI is the field of computer science focused on creating systems that can perform tasks traditionally requiring human intelligence.Think of speech recognition, language translation, or pattern identification—all these are…
-
Continue reading →: Understanding Triggers in DB2
A trigger in DB2 is a procedural code that is automatically executed in response to specific data modification events—such as INSERT, UPDATE, or DELETE—on a table or view. Triggers act as automated reactions to changes in data, helping enforce business rules, maintain audit trails, or synchronize data across tables. ⚙️ Key Characteristics of DB2 Triggers…
-
Continue reading →: COBOL RENT Option: Why to Use RENT Option
Learn how to use the RENT compiler option in COBOL to generate reentrant programs—allowing shared code but unique working storage per user
-
Continue reading →: DB2 Address Spaces Under Z/OS- DSNMSTR,DSNDBM1
IBM DB2 for z/OS operates as a powerful database management subsystem within the mainframe operating system z/OS. When DB2 is initialized, it launches multiple address spaces, each responsible for specific database functions. These address spaces work together to ensure high performance, data integrity, and seamless SQL execution. Internally, DB2 communicates through Control Sections (CSECTs)—modular units of code…
-
Continue reading →: ISPF command to Left/Right shift specific columns in a dataset-BNDS command
Most of mainframe programmers know how and why to use ‘)’ or ‘))’ ‘((‘ as line command in dataset. But when you need to shift only specific columns in a dataset, say column 20-30, the trick is to use the BNDS command. Lets see how it works in this post.…
-
Continue reading →: Concatenate all generations of GDGs in LIFO or FIFO
At times we need to reference all the generations of a GDG and it is important to know which generation is read first if GDG base is given as input in JCL. It is also one of the tricky interview questions asked about GDGs. Here comes the concept of using…
-
Continue reading →: ERROR: (DB2M011E) The column cannot contain missing values in SAS Mainframe
This is a typical error in SAS which occurs when a variable gets calculated, i.e. it is the result of some arithmetic expression. Furthermore if this column is used to insert in DB2 table, it will fail and the operation will be rolled back. You can see similar error/warning in…
-
Continue reading →: How to Use SYMPUT for Symbolic Variables in SAS Mainframe
SYMPUT is a routine that is called inside the data step to produce a symbolic variable, ie assigns a value produced in a DATA step to a macro variable. The variable can not be referenced inside the creating data step. The data step must end with a RUN; statement before…
-
Continue reading →: Understanding SYSPARM in SAS Mainframe
SYSPARM is an automatic variable in SAS which allows information to be passed from the operating environment to SAS program steps and it provide means of accessing or using the string while a program is executing. SYSPARM should be used when there is a need to control conditional processing within…
-
Continue reading →: Input Buffer and Program Data Vector in SAS Mainframe-Print _N_ and _Error_
The Data step’s function in SAS program is to bring or format the raw data into a structure or a layout as defined in the INPUT keyword. To bring it into shape, it is evident it needs to be stored in some temporary memory buffer. This is where the concept…
-
Continue reading →: Management class,Storage class,Data Class in JCL
These are the parameters which are in effect only if SMS is enabled in Z/OS Environment. These parameters of storage management subsystem(SMS) helps in simplifying JCLs, i.e., the JCL takes predefined values instead of the programmer keying in the value of DD parameters like UNIT, VOL, LRECL, RECF and others.…
-
Continue reading →: SAS Mainframe – Create PIE Chart using SAS
With the proc chart procedure, the PIE statement will create the PIECHART. The size of a pie represents the percentage that of category of data. In SAS, you can create a pie chart using PROC CHART with the PIE statement. Each slice of the pie shows the percentage for a…
-
Continue reading →: SAS Mainframe Tutorial: Creating Horizontal Bar Diagrams
To achieve horizontal bar diagrams, HBAR has to be used in PROC CHART statements. One feature of HBAR is that, it automatically returns the frequency, cumulative frequency, percentage, and cumulative percent to the right of each bar. Let’s see the output how the same data (as shown in previous posts…
-
Continue reading →: SAS Mainframe Tutorial: Adding Reference Lines in Bar Diagrams
In this post we will see how to add the reference lines in the bar diagrams. Continuing with the previous example, we will have reference lines at intervals 1 and 2 , print the data in descending order and reduce the width of the bars by 2 lines. Let’s look…
-
Continue reading →: Generate Bar Diagrams using PROC CHART in SAS Mainframe
Using the PROC CHART option one can generate few graphs(vertical and Horizental) in mainframe or possibly print it to PDF document via the ODS option. In this post, we will see how proc chart can be used to generate a bar diagram in mainframe (Z/OS) world.The objective here is to…