sql中的动态执行结构,
Set @Params = N'@DataTmp NVarChar(Max) OutPut'
Set @StrSqlTmp = 'Set @DataTmp =
Convert(VarChar(Max), (' + @BaseQuery + ' For Xml Path(''item'')))'
Exec Sp_ExecuteSql @StrSqlTmp, @Params, @DataTmp = @DataTmp OutPut
In want postgresql中此进程的替代方法。
有人知道解决办法吗?请回复
最佳答案
PostgreSQL不是Microsoft SQL Server,对于SQL标准之外的功能,它通常不同于Microsoft的t-SQL。
要执行动态SQL,请使用PL/PgSQL的EXECUTE
语句。最好具有format
功能。您可以在PL/PgSQL函数中使用它,如果不需要传递参数,也可以在DO
块中使用它。
我不知道上面的代码到底是做什么的,因为我对MS SQL一点也不了解。plpgsql manual有一些简单的动态SQL示例,您可以使用它们开始,还可以查看堆栈溢出时的dynamic-sql标记;搜索postgresqldynamic-sql。