openquery中的字符串连接

string concatenation in openquery

我将 Oracle 服务器链接到我的 SQLServer.while 构建我面临的串联查询 problem.Please 检查下面的代码。

select * from openquery(OracleConnection,'select CONCAT(CUST_ADD1,'','',CUST_ADD2,'','',CUST_ADD3) from TDSPARTY where CUST_NAME=''DR GEORGE ABRAHAM''')

错误信息:

Msg 7357, Level 16, State 2, Line 1 Cannot process the object "select CONCAT(CUST_ADD1,'','',CUST_ADD2,'','',CUST_ADD3) from TDSPARTY where CUST_NAME='DR GEORGE ABRAHAM'". The OLE DB provider "MSDASQL" for linked server "OracleConnection" indicates that either the object has no columns or the current user does not have permissions on that object.

需要输出:CUST_ADD1,CUST_ADD2,CUST_ADD3

只需使用 concatenation operator ||

类似 -

select CUST_ADD1||','||CUST_ADD2||','||CUST_ADD3 from...

更多信息

CONCAT 函数允许您将两个字符串连接在一起。对于两个以上的字符串,您可以使用嵌套在一起的 MULTIPLE concat。但是,为了简单起见,您可以使用如上所示的连接运算符。

Oracle 版本的 CONCAT() 函数只允许两个参数。所以你可以使用嵌套的 CONCAT()s:

CONCAT(CONCAT(CONCAT(CONCAT(CUST_ADD1,'',''),CUST_ADD2),'',''),CUST_ADD3)

或者你可以使用连接运算符||(实际上是在ANSI SQL标准中定义的,虽然SQL服务器不遵守这个标准):

CUST_ADD1||'',''||CUST_ADD2||'',''||CUST_ADD3

我认为额外的单引号 ' 是因为您要转义它们。