亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4107 | 回復: 3
打印 上一主題 下一主題

postgresql 存儲過程 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-06-14 12:32 |只看該作者 |倒序瀏覽
不知道有沒有人對postgresql 存儲過程比較了解的?老大讓我寫一個Linux環(huán)境下的基本postgresql的存儲過程,但這個東東到底如何使用,該如何寫嘞,沒一點頭緒,郁悶!。。。

論壇徽章:
7
數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-08-08 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-09-18 06:20:00數(shù)據(jù)庫技術版塊每周發(fā)帖之星
日期:2015-11-06 19:56:51數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-01-22 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-02-05 06:20:00
2 [報告]
發(fā)表于 2012-06-21 09:10 |只看該作者
聯(lián)機幫助不有現(xiàn)成的例子嗎

論壇徽章:
0
3 [報告]
發(fā)表于 2012-06-21 10:11 |只看該作者
主要是sqlserver到PG的手動移植,不知道存儲過程中兩個或兩個以上的查詢語句該怎么返回查詢結果,不想用創(chuàng)建臨時表的方法,有沒有其他的方法?

論壇徽章:
0
4 [報告]
發(fā)表于 2012-06-21 10:14 |只看該作者
例如sqlserver原碼如下:
CREATE PROCEDURE proQueryAD
(  
     @UserID          INT
)  
WITH ENCRYPTION  
AS  
BEGIN  
    DECLARE @ver int , @ADID int  
        select @ver=0
    SELECT @ver=A.Ver,@ADID=A.ID from CfgAD A,CfgArea B,CfgUser C
    where C.ID=@UserID and C.AreaID=B.ID and A.AreaID=B.ID
       
        if exists (select * from  ADInfo where ADID=@ADID)
        begin
           select @ver as 'Ver' ,Url, LinkUrl from ADInfo where ADID=@ADID
        end
        else
        begin
            SELECT @Ver as 'Ver' ,'' as 'Url' ,'' as 'LinkUrl'
        end
   
END
GO
GRANT EXECUTE ON proQueryAD TO PUBLIC

我轉換的PG如下:
CREATE OR REPLACE FUNCTION proQueryAD(U_UserID INTEGER) RETURNS SETOF RECORD AS
$$
DECLARE
    v_Ver   INTEGER;
    v_ADID  INTEGER;
    v_rec RECORD;
BEGIN
   v_Ver  := 0;
   v_ADID := 0;

   FOR v_rec IN SELECT A.Ver, A.ID from CfgAD A,CfgArea B,CfgUser C
    where C.ID=U_UserID and C.AreaID=B.ID and A.AreaID=B.ID LOOP   
        v_Ver=v_rec.Ver;
        v_ADID=v_rec.ID;
        RETURN NEXT v_rec;
   END LOOP;

   BEGIN
        IF EXISTS(select * from  ADInfo where ADID=v_ADID) THEN
                BEGIN
                        select v_Ver as Ver ,Url, LinkUrl from ADInfo where ADID=V_ADID;
                END;
        ELSE
                BEGIN
                        SELECT v_Ver as Ve ,'' as Url ,'' as LinkUrl;
                END;       
        END IF;
   END;       
   
   RETURN;
END;
$$
LANGUAGE PLPGSQL;

這個里面我想返回的是三個字段或三個空,怎么寫返回值及查詢語句?我那個返回值我只是臨時測試用的!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP