2013-06-05 197 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