2013-06-05 288 views
-2

我对PostgreSQL数据库非常陌生,我正在开发SQL Server 2008中的数据库对象,但我也需要对PostgreSQL进行一些操作。将SQL Server存储过程转换为PostgreSQL存储过程

在这里,我写了一个SQL Server示例存储过程,我需要将其转换为PostgreSQL。请使用PostgreSQL帮助我。

在此先感谢。

下面是样品SQL Server存储过程:需要转换成的PostgreSQL存储过程

CREATE PROCEDURE [dbo].[usp_GetData_ByTableName] 
(
    @TableName NVARCHAR(MAX)  
    ,@IncludeKeepAlive BIT 
    ,@RowsAffected BIGINT=0 OUTPUT 
) AS 

BEGIN 

    SET NOCOUNT ON 
    DECLARE @SQL VARCHAR(MAX) 

    /**************************************************************** 
    Select data base on parameter. 
    *****************************************************************/       
    SET @SQL = 
    ' 
     SELECT *FROM '[email protected]+' 
     WHERE 1=1 
    ' 
    + 
    CASE WHEN (@IncludeKeepAlive = 0) 
     THEN 
      ' 
       AND [MessageTransactionID] <> 152 
      ' 
     ELSE 
      '' 
    END  

    EXECUTE SP_EXECUTESQL @SQL 

    RETURN 0 
END 
+6

SO是不是有些神奇的设备自动将一种语言的代码转换为另一种语言的代码。你应该解释这个代码是什么,它做了什么,你试图得到结果。如果显然你被困住了,那么只有你可以得到一些帮助。 – mvp

+1

谢谢,mvp,但我想创建一个SP,我希望在某些条件下执行动态查询。所以请在这里帮我, – Anvesh

+4

@mvp啊该死的我只是想创办一家公司,只是在SO上发布要求,然后将答案提供给客户。 –

回答

3

没有1:从MS SQL到PostgreSQL 1 “转化率”。

这些概念是完全不同的。

我强烈建议简单地重新实现功能并利用PostgreSQL所具有的功能,而不是尝试使用SQL Server。当人们试图将一个DBMS的技术解决方案移植到另一个DBMS时,他们通常会得到一些速度缓慢且不能伸缩的东西(对于Oracle-> SQL Serve,SQL Server-> Oracle,DB2-> Oracle和SQL Server - > PostgreSQL也是如此)。

阅读有关存储功能的手册(PG没有“程序”),请重新阅读您当前解决方案的规范,然后使用Postgres提供的可能性简单实施它。

我确定这不是您要找的答案,但我坚信这是唯一可行的方法。

+1

谢谢,但请您在动态查询中提供帮助 – Anvesh

+0

赞赏部分“PG没有”程序“,我不会继续搜索如何做这些,谢谢。 – Davos