Если вы используете framework как Symfony , то могут быть некоторые правила CSP (Content Security Policy). Необходимо добавить в файл конфигурации URL скрипта, который вызывается, иначе symfony отказывается загружать скрипт.
Также обратите внимание, что, возможно, до того, как вы загрузили скрипт аналитики с google-analytics.com , а теперь вы загрузили с googletagmanager.com
Файл конфигурации в приложении (пример для Symfony):
csp:
enabled: true
enforce:
script-src: // valid source of javascript
- '*.googletagmanager.com'
Документация: https://content-security-policy.com/
Использование правил CSP является одним из лучшие вещи для повышения безопасности ваших сайтов. они могут заблокировать использование стороннего javascript для кражи паролей пользователей, например .
Это работало бы для обертывания процедуры в функцию? Если Ruby, блюющий ни из-за каких возвращенных строк (...can't return a result set in the given context...
), это может зафиксировать его:
DELIMITER $ CREATE PROCEDURE tProc() BEGIN SET @a = 'test'; END; $ CREATE FUNCTION tFunc() RETURNS INT BEGIN CALL tProc(); RETURN 1; END; $ DELIMITER ; SELECT tFunc() FROM DUAL; >> 1 SELECT @a FROM DUAL; >> 'test'
Хотя, реалистично, это не очень расширяемое решение.
Продолжение: я - симпатичный n00by в Ruby/ActiveRecord, но этот пример определенно работает
ActiveRecord::Base.establish_connection(authopts) class TestClass < ActiveRecord::Base end test_class = TestClass.new puts %{#{test_class.connection.select_one('SELECT tFunc() AS tf FROM DUAL')}} >> tf1
Используя CALL tProc()
приведший к ошибке, подобной Вашему.
Вы использование ActiveRecord:: Base.connection.execute? Этот метод должен позволить Вам выполнять некоторый произвольный SQL-оператор, который наивно не поддерживается в Активной Рекордной обертке.
Я отправил патч для Rails 2.3.4, который дает возможность конфигурации для решения этой проблемы. Пожалуйста, остановитесь у моего билета и покажите, что вы его поддерживаете!