On 16-Dec-2015 21:19 -0600, Justin Dearing wrote:
If I CREATE VARIABLE foo INT DEFAULT 5 it will always be 5 until I do
a SET, but the SET foo = 6; is only scoped to the session.

Yep. But how might one create a variable for which the value is scoped beyond the /session/?

So, its actually not a big deal for my current application because
the variable (a start date for new business rules) should be a
constant, and I'm only going to change it in QA. If the business
rules get delayed, then a CREATE/DROP is fine. However, what if I
had a variable that was a counter of some kind? What if I expected
some job to be constantly changing the value of a global variable
and several other jobs to be periodically SELECT SCHEMA.VARIABLE
FROM SYSIBM.SYSDUMY1? Is DROP/CREATE in a transaction the
appropriate behavior? Is there a risk that the SELECT might occur
when the variable doesn't exist?

Either the term /global/ should be viewed with skepticism, or the perspective of what the term /global/ means relative to /session/ probably needs adjustment; /session/ does not mean inter-process. Global Variable is in some manner, for the ability to share the data, only as similarly /global/ as the Global Temporary Table (GTT). See "Notes" in the CREATE VARIABLE docs:

"The CREATE VARIABLE statement defines a global variable at the application server.

_Session scope_: Global variables have a session scope. This means that although they are available to all sessions that are active on the database, their value is private for each session.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].