mysql - 这个来自 MSSQL 的存储过程在转换为 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;
请问我错过了什么
解决方案
推荐阅读
- apache-spark - 无法使用 Airflow DAG 中的 SparkKubernetesOperator 在 Kubernetes 集群上创建 SparkApplications(Airflow 版本 2.0.2 MWAA)
- hive - 选择最大的数字(2个字母和数字)
- android - 渐变颜色不适用于android studio中的按钮
- javascript - Javascript根据先前的值结果添加百分比
- reactjs - 当我在 reactjs 中有 9 个 div 时,我的 .length 方法返回 0
- time-complexity - 为什么以下算法有运行时 log(log(n))?
- javascript - 赛普拉斯拦截在测试运行中多次调用时阻止请求
- sql - 有什么方法可以模拟在 PL/SQL 中的语句触发器中使用行触发器的 :old 和 :new 的方式
- javascript - 由于组件破坏,角度计时器闪烁
- javascript - 如何减小 node_module 文件大小