跳轉到內容

生物資訊學中的資料管理/在PostgreSQL中新增程式語言

來自華夏公益教科書

PostgreSQL 中程式語言的例子

[編輯 | 編輯原始碼]

Python 中的函式示例

create or replace function fun1(n integer) returns integer as $$
return n * 100
$$ language plpythonu;

pgSQL 中的函式示例(等效於 postgres 中的 PL/SQL)。

create or replace function fun2(n integer) returns integer as '
begin
   return n * 200;
end;
' language plpgsql;

檢查語言支援

[編輯 | 編輯原始碼]

SQL 查詢

SELECT lanname as "Name", (CASE WHEN lanpltrusted THEN 'yes' ELSE 'no' END) as "Trusted?" 
FROM pg_catalog.pg_language 
WHERE lanispl;

或者

createlang 實用程式 [引數:-d DBNAMES,-U USER,-l 用於列出]

C:\Program Files\PostgreSQL\8.3\bin> createlang -e -l -d postgres -U postgres

結果

 Procedural Languages
   Name    | Trusted?
-----------+----------
 plpgsql   | yes
 plpythonu | no

新增語言支援

[編輯 | 編輯原始碼]

createlang 實用程式 [引數:-U USER LANG DBNAME] *需要對資料庫的超級使用者訪問許可權

C:\Program Files\PostgreSQL\8.3\bin>createlang -e -U postgres plpgsql postgres
C:\Program Files\PostgreSQL\8.3\bin>createlang -e -U postgres plpythonu postgres

新增 C/C++ 支援可能更復雜,因為它需要將原始碼編譯到伺服器上的“".so" 檔案中。更多詳情請參見 PostgreSQL:伺服器程式設計

華夏公益教科書