麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-12. PL/perl - Perl 過程語言

2019-09-08 23:33:09
字體:
來源:轉載
供稿:網友
第十二章. PL/perl - Perl 過程語言
內容 
概述 
制做和安裝 
使用 PL/Perl 
本章描述如何編譯,安裝和使用 PL/Perl. 
概述
PL/Perl 允許你用 Perl 腳本語言書寫可以用于 SQL 查詢的函數,就好象它們是內建在 Postgres 里一樣. 
PL/Perl 解釋器是一個完整的 Perl 解釋器.不過,有些操作出于安全性的考慮被屏蔽掉了. 

通常,被限制的操作是那些于環境交互的動作.包括文件句柄操作,請求和使用(對于外部模塊而言). 

要知道,安全不是絕對的.實際上,有幾種拒絕服務攻擊仍然是可能的-存儲器耗盡和無限循環就是兩個例子. 


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

制作和安裝
假設 Postgres 源代碼樹的根是 $PGSRC,那么 Pl/perl 源代碼位于 $PGSRC/src/pl/plperl. 
要制作,只需要按照下面步驟處理: 

cd $PGSRC/src/pl/plperl
perl Makefile.PL
make
這樣做將創建共享庫文件.在一個 Linux 系統里,它將被叫做 plperl.so.在其他系統里的擴展名可能不同. 
然后應該把該共享庫拷貝到 postgres 安裝的 lib 子目錄下. 

createlang 命令用于將該語言安裝到一個數據庫中.如果它被安裝到 template1 里面,以后創建的所有數據庫將自動安裝這個語言.


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

使用 PL/Perl
假設你有下面的表: 
CREATE TABLE EMPLOYEE (
    name text,
    basesalary int4,
    bonus int4 );
為了獲取所有的薪水(本金+獎勵),我們將定義下面這樣的函數: 
CREATE FUNCTION totalcomp(int4, int4) RETURNS int4
    AS 'return $_[0] + $_[1]'
    LANGUAGE 'plperl';
請注意參數會象想象的那樣以 @_ 形式傳遞給函數.還有,因為 SQL 創建函數的引號規則,你會發現你要比平常更頻繁地使用擴展的引號函數(qq[],q[],qw[]). 
我們現在可以象下面這樣使用我們的函數. 

SELECT name, totalcomp(basesalary, bonus) from employee
不過,我們還可以把我們的整個記錄傳遞個我們的函數: 
CREATE FUNCTION empcomp(employee) returns int4
    AS 'my $emp = shift;
        return $emp->{'basesalary'} + $emp->{'bonus'};'
    LANGUAGE 'plperl';
記錄是作為一個散列(哈希 hash)數組的引用傳遞的.腳標是記錄里面的字段名稱.值是記錄里面對應的字段的值. 
新函數 empcomp 可以這樣使用: 

SELECT name, empcomp(employee) from employee;

--------------------------------------------------------------------------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国内精品久久久久久2021浪潮 | 久久华人 | 国产精品视频一区二区噜噜 | 日日草天天干 | 国产高清美女一级毛片久久 | 国产九色在线观看 | 五月天堂av91久久久 | 久久免费综合视频 | 欧美人成在线视频 | 国产一区网址 | 免费黄色在线 | 49vv看片免费 | 九色在线78m | 制服丝袜成人动漫 | 国产精品久久久久久婷婷天堂 | 成人国产在线看 | 青青草成人免费视频在线 | 色播久久 | 中文字幕涩涩久久乱小说 | 水卜樱一区二区av | 国产免费乱淫av | 亚洲第一成人在线视频 | 国产女厕一区二区三区在线视 | 精品一区在线视频 | 九九热精品在线 | 激情九九 | 一级全毛片 | 国产91在线亚洲 | 国产99视频精品免视看9 | 久久精品在线免费观看 | 久久国产秒 | 国产成人在线免费看 | 久久精品日产第一区二区三区 | 麻豆一二区 | av在线免费看网站 | 蜜桃视频最新网址 | 色妞视频男女视频 | 成人午夜久久 | 一区二区三区日韩在线 | 激情大乳女做爰办公室韩国 | 久久精品在线免费观看 |