Как связать объект JSOn в MySQL - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть MySQL хранимая процедура sp_foo (), которая имеет следующие коды:

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_foo`(
in p_env varchar(45),
in p_host varchar(45),
in FDs JSON)

Как в Perl связать Perl JSON-объект с соответствующим JSON FDs объекта хранимой процедуры?

Я пробовал другой тип (включая JSON_TYPE ), но безрезультатно:

my $logFD = {
uid => 'iib',
  pid => 29115,
  fdCount => 477,
  fdCountMax => 10240,
  program => 'DataFlowEngine',
  parameters => 'DFIB01 da3e3470-a044-4ba6-bf92-f153d1398fdc Logger'
};
my $logFD_json = encode_json $logFD;
$sth->bind_param( $i++, $logFD_json, JSON_TYPE); # <-- this line

Ошибка, которую я получил, выглядела бы так:
Bareword "JSON_TYPE" not allowed while "strict subs"

1 Ответ

0 голосов
/ 27 апреля 2018

Нет такого типа SQL, как JSON_TYPE.

MySQL рассматривает значения JSON как строки с дополнительной семантикой. Поскольку вы уже кодируете структуру в виде строки JSON, вам не нужно делать ничего особенного при привязке ее в качестве параметра - вы можете спокойно пропустить третий аргумент для bind_param.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...