Эта хранимая процедура из MSSQL не работала после преобразования в MySQL

#mysql

#mysql

Вопрос:

После преобразования этого кода из MSSQL в MySQL он отказывается запускаться, ошибка — это переменная, не объявленная.

Это код из MSSQL

 CREATE PROC [dbo].[spp_report_connection_setup]
@CompanyCode varchar(50)
As
Begin

SELECT Connection = 'Data Source=' ServerName ';Initial Catalog=' DatabaseName ';User ID=' UserName ';Password=' Password,
    CompanyName = (select top 1 Name from cor_company where Code = @CompanyCode)
  FROM [dbo].[cor_database]
  WHERE CompanyCode = @CompanyCode

End
  

Это код после преобразования, но он говорит. Для подключения не объявлена переменная

 CREATE PROCEDURE spp_report_connection_setup (
p_CompanyCode varchar(50))
Begin

-- SQLINES LICENSE FOR EVALUATION USE ONLY
SELECT CONCAT('Data Source=',ServerName,';Initial Catalog=',DatabaseName,';User ID=',UserName,';Password=',Password),
 (select top 1 Name from cor_company where Code = p_CompanyCode) INTO Connection, CompanyName
  FROM cor_database
  WHERE CompanyCode = p_CompanyCode;

End;
  

Это то, что я скорректировал. но она по-прежнему выдает ошибку, в которой говорится, что проверьте свой синтаксис для этой версии.

 CREATE PROCEDURE spp_report_connection_setup (
p_CompanyCode varchar(50))
Begin
declare Connection varchar(100); declare CompanyName varchar(100);
-- SQLINES LICENSE FOR EVALUATION USE ONLY
SELECT CONCAT('Data Source=',ServerName,';Initial Catalog=',DatabaseName,';User ID=',UserName,';Password=',Password),
 (select Name from cor_company where Code = p_CompanyCode Limit 1) INTO Connection, CompanyName
  FROM cor_database
  WHERE CompanyCode = p_CompanyCode;

End;
  

Пожалуйста, чего мне не хватает

Комментарии:

1. Вам нужно установить разделители и какую среду ide вы используете? dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html

2. В сообщении о синтаксической ошибке есть часть, в которой говорится «рядом …». Не могли бы вы вставить то, что идет после слова near, потому что это дает нам представление о том, к чему относится синтаксическая ошибка!

3. @Shadow в нем указан код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом » в строке 4 я использую MySQL 8.0.22

4. @P.Salmon Я установил разделители так же. Я использую MySQL Workbench

5. @P.Salmon Спасибо, попробовав разделители, это сработало, спасибо, я был удивлен, почему это не сработало в первый раз