[SOLVED] Handling potential nulls in stored procedure calls
Good Afternoon,
I am calling a stored procedure like so:
ENGINE SQLMSS SET DEFAULT_CONNECTION CONN_DEV SQL SQLMSS EX getPermissions '&&USER_ID', &&TEST_VAR; TABLE FILE SQLOUT PRINT * ON TABLE SET PAGE-NUM NOLEAD ON TABLE SET ASNAMES ON ON TABLE NOTOTAL ON TABLE HOLD AS 'foccache/hold_test' FORMAT ALPHA ON TABLE SET HTMLCSS ON ON TABLE SET STYLE OFF END
TEST_VAR can potentially hold a guid or be null. If I'm understanding this correctly if it's null I have to pass the variable without quotes whereas if it's a guid I have to include the quotes. What is the easiest way to do make this work? My naive approach without knowledge of cleaner syntax would be:
if TEST_VAR EQ null - run block without quotes ELSE - run block with quotes
But this is a contrived example, the actual use case involves 6 more parameters that I'm passing, most of which follow this guid or null scenario. So that solution wouldn't really hold up.
Thoughts on how I can do this? I'm assuming I'm just unaware of the proper syntax.
Thanks!This message has been edited. Last edited by: FP Mod Chuck,
Windows 8203 All output formats
January 20, 2019, 02:49 PM
Waz
Assuming you are getting null passed through, a small bit of DM will fix this.
-SET &MyTestVar = IF &&TEST_VAR EQ 'null' THEN &&TEST_VAR ELSE '''' | &&TEST_VAR | '''' ;
ENGINE SQLMSS SET DEFAULT_CONNECTION CONN_DEV
SQL SQLMSS
EX getPermissions '&&USER_ID', &MyTestVar;
TABLE FILE SQLOUT