Question
· Oct 28, 2023

escape bracket in SQL

I've written a stored procedure for SQL as follows. The second parameter is a search path that may use a single quote or bracket as part of its expression.

When the expression uses a single quote, I can double it within SQL, and it works well. In this example, 'testDate' is written as ' ' testDate ' ' .

 

Select HISOL_MEAS.SQLProc_JSONpath(fullAnnotation,'HbA1cTests.sort(''testDate'',false).resultValue') As reverseSortedTests

 

In the next example I'd like to use brackets (see below), which causes an error.  

Trying to escape the bracket by doubling it still produces an error.  Any suggestions how I might accomplish this?

 

'HbA1cTests.sort(''testDate'',false)[0].resultValue' As recentHbA1c

'HbA1cTests.sort(''testDate'',false)[[0]].resultValue' As recentHbA1c

Product version: IRIS 2022.1
$ZV: 2022.1.2 (Build 574_0_22407U)
Discussion (5)1
Log in or sign up to continue

ERROR: - OK

which error ??   pls. be specific with all details

hint for SQL Escaping

but test in SQL Shell shows no problem
 

USER>do $system-.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
USER>>select 'HbA1cTests.sort(''testDate'',false)[0].resultValue'
1.      select 'HbA1cTests.sort(''testDate'',false)[0].resultValue'
 
HostVar_1
HbA1cTests.sort('testDate',false)[0].resultValue
 
1 Rows(s) Affected
statement prepare time(s)/globals/lines/disk: 0.0002s/5/166/0ms
          execute time(s)/globals/lines/disk: 0.0002s/0/385/0ms
                          cached query class: %sqlcq.USER.cls117
---------------------------------------------------------------------------
USER>>