【问题标题】:Is this T-SQL statement equivalent with the PL/SQL statement?这个 T-SQL 语句是否等同于 PL/SQL 语句?
【发布时间】:2021-03-24 19:47:57
【问题描述】:

这两个语句是等价的吗?

con_db_connection VARCHAR2 (16) := SYS_CONTEXT('userenv', 'instance_name)
DECLARE @con_db_connection VARCHAR(16);
SET @con_db_connection = CONVERT(VARCHAR(16), SERVERPROPERTY('InstanceName'));

【问题讨论】:

  • 请注意 the docs 声明 Instancenamenvarchar(128)sysname 相同,我不知道为什么要转换它,
  • @Charlieface 我最初将它作为 varchar 但是当我尝试执行包含此语句的 proc 时,我在这一行收到一条错误消息(现在不记得它的细节)告诉我我不得不转换它。一旦我转换它,pr​​oc就起作用了。

标签: sql-server oracle tsql plsql


【解决方案1】:

我不知道 SQL Server,但是 - 文档说 InstanceName

用户连接的实例的名称。

如果实例名称是默认实例、输入无效或错误,则返回 NULL。

截至 Oracleinstance_name 参数返回

实例名称


因此,如果您忽略 SQL Server 的 NULL 反对意见,那么是的 - 我会说这两个返回相同的信息。

【讨论】:

  • 如果我理解正确,默认实例是 'MSSQLSERVER.这也是我的看法,但我的数据库技能充其量只是初级,所以我想我会验证一下。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 2011-08-28
  • 1970-01-01
  • 2010-11-20
  • 2019-02-06
相关资源
最近更新 更多