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

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-程序員手冊 -49. 過程語言

2019-09-08 23:34:17
字體:
來源:轉載
供稿:網友
第四十九章. 過程語言
Postgres 就支持過程語言的定義.當碰到函數或觸發器過程是用過程語言定義的時候,數據庫內部并不知道如何解釋這些函數源代碼文本.取而代之的是,調用將被傳遞到一個認知該語言詳情的控制器中去.該控制器本身是一個編譯成共享對象的特殊的編程語言函數,在需要的時候被調用. 
為一種新的過程語言(PL)書寫一個控制器的論題超出本手冊范圍. 

安裝過程語言
過程語言的安裝 
一個過程語言是按三個步驟安裝到數據庫里面去的.(對于隨標準版本提供的過程語言,可以用 shell 腳本 createlang 代替手工操作.) 

該語言的控制器的共享對象(目標)必須被編譯和安裝.缺省時用于 PL/pgSQL 的控制器將被制作和安裝到數據庫的庫目錄.如果 配置了 Tcl/TK 的支持,用于 PL/Tcl 的控制器同樣被制作和安裝到相同的目錄中去. 
控制器必須用下面命令聲明 

CREATE FUNCTION handler_function_name ()
    RETURNS OPAQUE AS
    'path-to-shared-object' LANGUAGE 'C';
特殊的返回類型 OPAQUE 告訴數據庫,這個函數并不返回一個基本的或復合的數據類型并且是不能直接在SQL 語句里面使用. 
PL 必須用下面命令定義 

CREATE [ TRUSTED ] PROCEDURAL LANGUAGE 'language-name'
    HANDLER handler_function_name
    LANCOMPILER 'description';
可選的關鍵字 TRUSTED 指明一個沒有超級用戶權限的普通數據庫用戶能否使用這種語言創建函數和觸發器過程.因為 PL 函數在數據庫后端內部執行,所以它應該只是用于那些不獲得訪問數據庫后端內部或文件系統權限的語言.語言 PL/pgSQL 和 PL/Tcl 都被認為是可信的.
樣例 
下面的命令告訴數據庫到那里才能找到用于 PL/pgSQL 語言的調用控制器函數的共享對象(目標). 
CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS
    '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE 'C';
下面的命令 
CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql'
    HANDLER plpgsql_call_handler
    LANCOMPILER 'PL/pgSQL';
定義了前面所定義的調用控制器函數,應該是在調用語言屬性是 'plpgsql'的函數或觸發器過程被調用的時候使用. 
(譯注:pl/tcl也要用上面的兩個命令來生效,缺省時兩種過程語言都沒有生效,都需要安裝.要注意的是pl/tcl過程語言的安裝需要系統中裝有共享庫的Tcl腳本語言,如沒有需要先行安裝,注意一定要編譯成共享庫,然后可以到.../postgresql/src/pl/tcl目錄下重新編譯,生成pltcl.so后再用上面方法安裝,在我的Slackware4.0機器上,需要修改Makefile.tcldefs文件的TCL_SHARED_BUILD定義使其=1方可編譯成功.安裝時別忘了把上面兩條命令的'PL/PgSQL'改成'PL/TCL',plpgsql.so改成pltcl.so.請大家安裝時注意.或者可以在配置的時候在 configure 里加入 --witch-tclconfig=/some_place.) 

PL 控制器函數有一個特殊的調用接口,該接口與通常的 C 語言函數不同.傳遞給控制器的一個參數是將要被執行的函數在 pg_proc 里的對象標識(OID).控制器檢查各種各樣的系統表,分析函數調用參數和它的返回數據的類型.函數體的源碼文本放在 pg_proc 里 prosrc 字段.因此與 C 語言函數對比,PL 函數可以象 SQL 語言函數那樣重載.可以有多個不同的 PL 函數擁有同樣的函數名,只要調用參數是不一樣的即可. 

在 template1 數據庫里定義的過程語言自動在隨后創建的數據庫里面定義.所以數據庫管理員可以決定那種語言缺省時可用.


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

圖片精選

主站蜘蛛池模板: 国产精品视频一区二区三区综合 | 成片免费观看大全 | 免费黄色在线 | 日本不卡一区二区在线观看 | 色就色 综合偷拍区91网 | 羞羞视频免费网站含羞草 | 免费毛片观看 | 免费成人| 黄色视屏免费看 | 国产午夜精品久久久久久免费视 | 成年人免费视频大全 | 中国av中文字幕 | 日本网站一区 | 国产精品美女久久久久久不卡 | 99r国产精品| 日本一级黄色大片 | 一级电影免费 | 亚洲va久久久噜噜噜久久男同 | 成人一级毛片 | 自拍亚洲伦理 | 欧美一级二级毛片视频 | 免费视频www在线观看 | 久久久鲁 | 国产九九热 | 毛片在线免费视频 | 免费午夜视频在线观看 | 国产小视频在线 | 中文字幕亚洲情99在线 | hd日本xxxx| 日本在线观看视频网站 | 亚洲欧美日韩在线 | 夜夜夜精品视频 | 久久草在线看 | 又黄又爽免费无遮挡在线观看 | 龙的两根好大拔不出去h | 黄色免费小网站 | 欧美精品久久久久久久久久 | 午夜视频在线观看91 | 久久国产精品99久久人人澡 | 亚洲成人黄色片 | 免费a视频 |