将 PL/SQL 定义转换为 TSQL

Posted

技术标签:

【中文标题】将 PL/SQL 定义转换为 TSQL【英文标题】:Translate PL/SQL define to TSQL 【发布时间】:2019-05-23 10:52:59 【问题描述】:

我的任务是将 PL/SQL 代码转换为 T-SQL。

谁能解释一下SET DEFINE ON 在 sqlplus 中的作用,最重要的是如何将其转换为 T-SQL(我想使用 sqlcmd 作为启动器?)

【问题讨论】:

SET DEFINE 是一个 SQL*Plus 命令,用于设置替换变量的使用和前缀。 & 是默认前缀,SET DEFINE ON 将其重置为此默认值并启用替换变量的使用。所以这不是 PL/SQL 的事情。据我所知,sqlcmd 没有替代变量之类的东西,即没有等价物。但我可能会在那里绞尽脑汁。 【参考方案1】:

SET DEFINE 是一个 SQL*Plus 命令,用于设置替换变量的使用和前缀。 & 是默认前缀,SET DEFINE ON 将其重置为此默认值并启用替换变量的使用。

所以这不是 PL/SQL 的事情,而是 SQL*Plus 的事情。

据我所知,sqlcmd 没有替代变量之类的东西,即sqlcmd 没有等价物,更不用说 T-SQL。但我可能错了。

【讨论】:

【参考方案2】:

'&' 似乎是 SQL*Plus(即客户端)用来激活其“变量替换”功能的元语言的标记。因此,包含 '&'(“Marks & Spencer”)标记的字符串文字可能不会完全按预期运行。 SET DEFINE 显然用于控制该激活。

【讨论】:

以上是关于将 PL/SQL 定义转换为 TSQL的主要内容,如果未能解决你的问题,请参考以下文章

将 C# 代码转换为 PL/SQL 代码

将存储过程 PL/SQL 转换为 Java

pl/sql:将 xmltype 转换为节点

PL/SQL 将字符串转换为布尔值

需要 PL/SQL 存储过程将列转换为行

PL SQL如何将任何结果转换为相反的符号