WEB开发网
开发学院软件开发Python 使用Oracle数据库实现Python数据持久 阅读

使用Oracle数据库实现Python数据持久

 2010-09-22 11:08:54 来源:WEB开发网   
核心提示:CREATEORREPLACEPROCEDUREadd_article_details(gidVARCHAR2,clksNUMBER)ASitemXMLType;headingVARCHAR2(200);publishedVARCHAR2(32);urlVARCHAR2(200);BEGINSELECTextract(

CREATE OR REPLACE PROCEDURE add_article_details (gid VARCHAR2, clks NUMBER) AS
item XMLType;
heading VARCHAR2(200);
published VARCHAR2(32);
url VARCHAR2(200);
BEGIN
SELECT extract(httpuritype.createuri(

'http://feeds.delicious.com/v2/rss/OracleTechnologyNetwork/otntecharticle').getXML(),
'//item[contains(guid, "'||gid||'")>0]')
INTO item FROM DUAL;
SELECT extractValue(item, '//title'),
extractValue(item, '//pubDate'),
extractValue(item, '//link')
INTO heading, published, url FROM DUAL;
UPDATE otn_articles_rss SET
title = heading,
pubDate = published,
link = url,
clicks = clicks + clks
WHERE guid = gid;
END;
/

正如您所见,该过程接受两个参数。gid 是其链接受到单击的文章的 guid。clks 是文章查看总次数的增量。在该过程主体中,您获得 RSS 文档的所需部分作为 XMLType 实例,然后提取信息,之后该信息将立即用于填充 otn_articles_rss 中与正在处理的 RSS 项目关联的记录。

借助 add_article_details,您可以继续下一环节,按照如下方式创建 count_clicks 过程:

CREATE OR REPLACE PROCEDURE count_clicks (gid VARCHAR2, clks NUMBER) AS

BEGIN
UPDATE otn_articles_rss SET
clicks = clicks + clks
WHERE guid = gid;
IF SQL%NOTFOUND THEN
INSERT INTO otn_articles_rss(guid, clicks) VALUES(gid, 0);
COMMIT;
add_article_details (gid, clks);
END IF;
COMMIT;
END;
/

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Oracle 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接