> On Mar 12, 2020, at 7:44 PM, stan <st...@panix.com> wrote: > > On Thu, Mar 12, 2020 at 06:37:02PM -0700, David G. Johnston wrote: >> On Thursday, March 12, 2020, stan <st...@panix.com> wrote: >>> >>> my $rv3 = spi_exec_query('$stmt'); >>> What am I doing wrong here? >>> >> >> Putting a variable name into a single-quoted string and expecting it to >> resolve to the contents of said variable instead of being treated as a >> literal. >> David J. > > Please look at this. > > Here is the code: > > my $stmt = qq('SELECT employee_key from employee where id = $user ;'); > elog( NOTICE, "stmt = $stmt" ); > my $rv3 = spi_exec_query($stmt); > > As you cna see, I use qq to ahndle the qouting: runtime output looks like > this: > > OTICE: stmt = 'SELECT employee_key from employee where id = stan ;’ You can see that the entire sql string is quoted, where what you want from the elog is just single quotes around the value (i.e. 'stan’)
The example I saw for qq on the perl site print(qq(Welcome to GeeksForGeeks)); doesn’t have any quotes in arg to qq Try making the sql string without using qq my $select = “select....’” + $user + “‘;”; (or perhaps perl has a formatted string function like printf) > ERROR: syntax error at or near "$" at line 22. > > Looks like a very clean string with the variable substituted. > > Anyone have a working example of a call to spi_exec_query() using a variable? > > also tried: > > my $rv3 = spi_exec_query('$stmt'); > > Different trun tiem error message. > > > -- > "They that would give up essential liberty for temporary safety deserve > neither liberty nor safety." > -- Benjamin Franklin > >