You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSMS可运行的SQL在Databricks报错,求PostgreSQL实现方法

在PostgreSQL中实现原SQL逻辑的修正方案

核心修正点

  1. 替换不支持的nvarchar类型:PostgreSQL不存在nvarchar类型,其varchar(包括带长度限制的varchar(n))原生支持Unicode字符,功能完全等价于SQL Server的nvarchar,直接将所有nvarchar替换为varchar即可。
  2. 修正字符串连接语法:SQL Server用+做字符串连接,但PostgreSQL中+是算术运算符,字符串连接需改用||或直接通过concat函数传递多参数(更推荐后者,避免运算符混用导致的错误)。

修改后的SQL片段

cast(concat(c.client_id, '::', kr.name) as varchar(2048)) as role_hierarchy,
cast('' as varchar(36)) as child_role_id,
cast('' as varchar(36)) as child_role_realm,
cast('' as varchar(255)) as child_client_role_client_id,
cast('' as varchar(255)) as child_role_name,

补充说明

  • 原代码中'::' + kr.name的写法在PostgreSQL中会触发算术运算错误,改为将'::'和kr.name作为独立参数传入concat函数,确保字符串连接逻辑正确。
  • PostgreSQL中cast('' as varchar(n))的行为与SQL Server一致,会生成指定长度的空字符串。

内容的提问来源于stack exchange,提问作者Desert Spider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:26:28