LJ, the doc indeed does say that there's no syntax checking, and I did chase it down the rabbit hole insofar as to do a SQL log to confirm that ARS thinks it's submitting the SQL to the DB. Just to make sure, I then cut & pasted that same SQL from the SQL log and into a query window and executed it - it worked just as expected.
Shawn, WRT stored procedures, the doc<https://docs.bmc.com/docs/display/public/ars81/Assigning+values+through+SQL+statements>says "A stored procedure with a Set Fields action executes all its commands but does *not* return a value." If your stored procedure returns a result set you'd like to use in a Set Fields then, again, the solution here would be to wrap the call to the stored procedure in a SQL view and call that. And, again, it's a less convenient solution. On Thu, Feb 20, 2014 at 12:30 PM, LJ LongWing <[email protected]> wrote: > ** > the interesting thing is that what I remember of the docs state that > Remedy does no syntax checking of your SQL to determine if it's accurate, > it trusts you to do that. And because of that, I must wonder if you traced > the SQL all the way to the DB and determine what it's doing with that....to > see if it's executing it or not....not sure what would be found if you went > down that rabbit hole. > > > On Thu, Feb 20, 2014 at 1:25 PM, Charlie Lotridge <[email protected]>wrote: > >> ** >> Interesting, thanks for this info. >> >> I suppose this could be what's going on, but I'd think it would be more >> appropriate for ARS to error if the SQL violates some rules, rather than >> operate as if the query returned no results. It's misleading. Also, the >> documentation mentions nothing about any such rules. >> >> That Jaspersoft doc mentions that the SQL "should start with SELECT" and >> "cannot have comments". And while Remedy seems to be adhering to the >> first part of this, it's not adhering to the second: I was able to insert >> comments both as separate lines, and at the end of lines, and it works >> correctly. >> >> -charlie >> >> >> On Thu, Feb 20, 2014 at 12:12 PM, Janie Sprenger <[email protected]>wrote: >> >>> ** >>> I think there are security requirements for web applications and one of >>> the requirements is to prevent SQL injection. Not sure, but perhaps Remedy >>> is using something of this sort with the midtier. >>> >>> I ran into something similar with iReports and Jaspersoft when I was >>> writing an SQL query only mine happened to be with setting a variable to >>> begin with instead of a Comment. I could run the iReport in the tool but >>> not on the JasperSoft web client. >>> >>> You can read more about it here. >>> >>> http://community.jaspersoft.com/wiki/jaspersoft-security-changes-and-configuration >>> >>> Janie >>> >>> On Thu, Feb 20, 2014 at 11:59 AM, Charlie Lotridge >>> <[email protected]>wrote: >>> >>>> ** >>>> I use quite a lot of SQL in my workflow, yet somehow never discovered >>>> this one before. It turns out that if you're using SQL to pull data back >>>> for a Set Fields action, it must begin with the SELECT keyword, or it won't >>>> return any results. >>>> >>>> For example, if you have a Set Fields with this SQL: >>>> >>>> *SELECT name* >>>> *FROM arschema* >>>> >>>> it'll work fine. But if you insert a comment before it: >>>> >>>> *-- Comment* >>>> *SELECT name* >>>> *FROM arschema* >>>> >>>> or even >>>> >>>> */* Comment */ SELECT name* >>>> *FROM arschema* >>>> >>>> the Set Fields will operate as if "No Request Match" (i.e. it'll >>>> display the No Match error, or set the target fields to NULL, depending >>>> upon how you've got it configured). >>>> >>>> What's interesting here is that the SQL in these queries is >>>> syntactically correct and they're submitted to the database by ARS without >>>> any error. If you submit the SQL manually (through SQL Plus or SQL Server >>>> Management Studio, etc), it works correctly and returns the expected data. >>>> Apparently, though, Remedy doesn't know how to deal with it if it doesn't >>>> begin with the keyword SELECT. >>>> >>>> I only just discovered this because I was attempting to use a query >>>> containing a WITH clause in SQL Server to create a Common Table Expression >>>> to flatten out a recursive data structure. Using the WITH clause, which >>>> MUST be first in the query (and can't be contained in a subquery) is the >>>> only way to do this in a single query. >>>> >>>> Of course, the work-around is to create a view containing the CTE, >>>> which is what I ultimately had to do. It's just a less convenient >>>> solution. >>>> >>>> Anyway, just something interesting I just discovered. >>>> >>>> -charlie >>>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >>> >>> >>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >> >> >> _ARSlist: "Where the Answers Are" and have been for 20 years_ >> > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years"

