Re: plperl syntax question

Поиск
Список
Период
Сортировка
От Rob Sargent
Тема Re: plperl syntax question
Дата
Msg-id F7492779-7336-4E58-92C8-35C7C44FB7C5@gmail.com
обсуждение исходный текст
Ответ на Re: plperl syntax question  (stan <stanb@panix.com>)
Ответы Re: plperl syntax question
Re: plperl syntax question
Список pgsql-general


On Mar 12, 2020, at 7:44 PM, stan <stanb@panix.com> wrote:

On Thu, Mar 12, 2020 at 06:37:02PM -0700, David G. Johnston wrote:
On Thursday, March 12, 2020, stan <stanb@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 
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



В списке pgsql-general по дате отправления:

Предыдущее
От: stan
Дата:
Сообщение: Re: plperl syntax question
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: plperl syntax question