#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 Спасибо, попробовав разделители, это сработало, спасибо, я был удивлен, почему это не сработало в первый раз