Есть ли какой-либо тип данных списка в хранимых процедурах MySQL или способ эмулировать их?

Возможны две причины.

  • Вы пытаетесь использовать это из скрипта контента . Вы не можете: сценарии содержания очень ограничены в том, какие API Chrome они могут вызвать. Тем не менее, скрипты содержимого имеют некоторые ограничения. Они не могут: использовать хром. * API, за исключением: extension (getURL, inIncognitoContext, lastError, onRequest, sendRequest) i18n runtime (connect, getManifest, getURL, id, onConnect, onMessage, sendMessage) storage В этом случае вам необходимо делегировать этот вызов фоновому скрипту: отправить сообщение из сценария содержимого, получить его в фоновом скрипте и выполнить действие.
  • Вы пытаетесь вызвать его из сценария расширения, но не объявили разрешение "notifications". В этом случае исправление тривиально - просто добавьте разрешение.

13
задан Chris 24 August 2008 в 19:53
поделиться

4 ответа

Этот статья имеет некоторое хорошее обсуждение проблемы парсинга массива к хранимой процедуре, так как хранимые процедуры только позволяют допустимые типы данных столбца таблицы как параметры.

существуют некоторые аккуратные вещи, которые можно сделать с тип таблицы csv в mysql - это - то, при загрузке плоского файла в дб.

Вы могли составить временную таблицу в хранимой процедуре, выполнить итерации по csv, перечисляют и вставляют его во временную таблицу, затем создают курсор, который выбирает значения из той таблицы. Этот ответ в вышеупомянутом потоке показывает способ сделать это.

Обычно я разделял бы массив, прежде чем я приеду в базу данных и затем выполню запрос индивидуально на каждом объекте.

9
ответ дан 2 December 2019 в 01:22
поделиться

В зависимости от того, как сложный Вы хотите добраться, можно использовать универсальную связывающую таблицу. Для одного из моих приложений существует несколько отчетов, где пользователь мог бы выбрать, например, список клиентов для работы отчета, а не просто единственного клиента от поля комбинированного списка. У меня есть отдельная таблица с 2 полями:

  • UniqueID (гуид)
  • ItemID

psuedo-код похож на это:

GUID guid = GenerateGUID()
try
  for each customer in customerList { INSERT(guid, customerId) }
  ExecuteSQLPocedure(guid)
  --the procedure can inner-join to the list table to get the list
finally
  DELETE WHERE UniqueID=guid      
1
ответ дан 2 December 2019 в 01:22
поделиться

На моем предпочтительном языке программирования, C#, я на самом деле делаю это в самом приложении, потому что разделенный () функции и циклы легче к программе в C# тогда SQL, Однако!

, Возможно, необходимо посмотреть SubString_Index () функция.

, Например, следующее возвратило бы Google:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.google.com', '.', -2), '.', 1);
0
ответ дан 2 December 2019 в 01:22
поделиться

Не уверенный, если они будут работать конкретно в SP, но там являются ПЕРЕЧИСЛИМЫМИ и типы данных НАБОРА в MySQL 5, который может сделать то, в чем Вы нуждаетесь. http://dev.mysql.com/doc/refman/5.0/en/enum.html http://dev.mysql.com/doc/refman/5.0/en/set.html

0
ответ дан 2 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: