• 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
    Maxava

    Maxava Partner Webinar: IBM i on Power11: Migration Paths and Right-Sizing

    In this webinar, experts from ATS Group and Maxava will outline what these changes mean for your environment and provide a clear roadmap for planning and executing a Power11 migration.

    Register Now

    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

  • EvolveWare Makes Progress With RPG Code Modernization Using AI
  • Why The IBM i Market Needed Another VTL Option
  • What Price Power?
  • Cloud Revenues Saved By The GenAI Boom
  • IBM i PTF Guide, Volume 27, Number 44
  • Power Systems Grows Nicely In Q3, Looks To Grow For All 2025, Too
  • Beta Of MCP Server Opens Up IBM i For Agentic AI
  • Sundry IBM i And Power Stack Announcements For Your Consideration
  • Please Take The IBM i Marketplace Survey
  • IBM i PTF Guide, Volume 27, Number 43

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