• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Guru: How To Use Global Variables In SQL Scripts

    January 23, 2017 Michael Sansoterra

    Hey, Mike:

    I’m writing SQL scripts to do some administrative work. These scripts are run in iNavigator’s RunSQL scripts utility and use the special CL: directive to execute an IBM i command. I stumbled across the CREATE VARIABLE statement and wondered if I could use an SQL variable to substitute a library name within the OS commands.

    For example, if I define something like the following in iNavigator:

    CREATE OR REPLACE VARIABLE QGPL/LIB CHAR(10) DEFAULT 'JOE';
    

    Can I then use the LIB variable in a CL: command as follows?

    CL:  DSPLIB LIB(LIB) OUTPUT(*PRINT);
    

    –Guru Reader

     

    Unfortunately, GLOBAL VARIABLES cannot be used in this manner because the IBM i command interpreter knows nothing of them. However, if you use the QSYS2.QCMDEXC procedure to execute the IBM i commands (instead of using CL:), then it’s easy to place the desired library from a global variable in an IBM i command as follows:

    BEGIN
        DECLARE @CMD VARCHAR(1024);
        SET @CMD='DSPLIB LIB(' || RTRIM(QGPL.LIB) ||') OUTPUT(*PRINT)';
        CALL QSYS2.QCMDEXC (@CMD);
    END
    

    In this case, the value in variable QGPL.LIB is inserted into the IBM i DSPLIB command string, which is then passed to the QCMDEXC stored procedure for execution. Using QCMDEXC is often preferable to CL: because it should work in any DB2 for i compatible SQL processor (including STRSQL) whereas CL: is a special “trick” supported by IBM GUI SQL tools in iAccess and Access Client Solutions.

    –Mike

     

    Michael Sansoterra is a DBA for Broadway Systems in Grand Rapids, Michigan. Send your questions or comments for Mike via the IT Jungle Contact page.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags: Tags: Global Variables, SQL

    Sponsored by
    Rocket Software

    Meet digital age demands while maximizing your IT investment.

    Future-proof your mission-critical applications with Rocket® Solutions for IBM® i that keep your business ahead of the curve.

    Learn More

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Doctor Frank Talks Power With Vision Drilling Down Into IBM’s System Group

    Leave a Reply Cancel reply

TFH Volume: 27 Issue: 2

This Issue Sponsored By

  • New Generation Software
  • T.L. Ashford
  • WorksRight Software
  • Linoma Software
  • System i Developer

Table of Contents

  • IBM i Trends, Concerns, And Observations
  • Drilling Down Into IBM’s System Group
  • Guru: How To Use Global Variables In SQL Scripts
  • Doctor Frank Talks Power With Vision
  • IBM Gives Power Systems Rebates For Linux Workloads

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • POWERUp 2025 –Your Source For IBM i 7.6 Information
  • Maxava Consulting Services Does More Than HA/DR Project Management – A Lot More
  • Guru: Creating An SQL Stored Procedure That Returns A Result Set
  • As I See It: At Any Cost
  • IBM i PTF Guide, Volume 27, Number 19
  • IBM Unveils Manzan, A New Open Source Event Monitor For IBM i
  • Say Goodbye To Downtime: Update Your Database Without Taking Your Business Offline
  • i-Rays Brings Observability To IBM i Performance Problems
  • Another Non-TR “Technology Refresh” Happens With IBM i TR6
  • IBM i PTF Guide, Volume 27, Number 18

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle