-3

私は PostgreSQL データベースを初めて使用します。SQL Server 2008 でデータベース オブジェクトを開発していますが、PostgreSQL でも何らかの操作が必要です。

ここでは、PostgreSQL に変換する必要がある SQL Server のサンプル ストアド プロシージャを 1 つ作成します。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 '+@TableName+' 
        WHERE 1=1
    '
    +
    CASE WHEN (@IncludeKeepAlive = 0)
        THEN
            '
                AND [MessageTransactionID] <> 152
            '
        ELSE
            ''
    END     

    EXECUTE SP_EXECUTESQL @SQL

    RETURN 0  
END
4

2 に答える 2

3

MS SQL から PostgreSQL への 1 対 1 の「変換」はありません。

コンセプトが全然違います。

SQL Server を模倣しようとするのではなく、単純に機能を再実装して PostgreSQL の機能を活用することを強くお勧めします。

ある DBMS の技術的ソリューションを別の DBMS に移植しようとすると、通常、遅くて拡張性のないものになってしまいます (これは、Oracle -> SQL Server、SQL Server -> Oracle、DB2 -> Oracle および SQL Server の場合に当てはまります)。 -> PostgreSQL も同様)。

ストアド関数に関するマニュアルを読みます (PG には「プロシージャ」がありません)。現在のソリューションの仕様を読み直してから、Postgres が提供する可能性を使用して単純に実装します。

これはあなたが探していた答えではないと確信していますが、これが実行可能な唯一の方法であると強く信じています.

于 2013-06-05T10:54:14.707 に答える