Greenplum數據庫_一些你可能不知道的操作

greenplum

創建一個加密函數  某個數值*20+19

CREATE OR REPLACE FUNCTION db_jcwzsj.intEncrypt(number int4)
RETURNS int AS $BODY$
SELECT $1*20+19
$BODY$
LANGUAGE sql;

 

使用   SELECT intencrypt(n_ztlx) from db_jcwzsj.t_zt  

數據採集工具的配置文件只能配置到數據庫層面  但某個函數在某個模式下面(schema)

這時如果某sql報找不到該函數時  需要設置 set search_path=模式

如下

set SEARCH_PATH=db_zjksh;
select 
encode(ENCRYPT ( pg_catalog.decode( c_id, 'escape' ), 'xm' :: bytea, 'aes' :: TEXT ),'BASE64') as c_id,
encode(ENCRYPT ( pg_catalog.decode( c_mm, 'escape' ), 'xm' :: bytea, 'aes' :: TEXT ),'BASE64') as c_mm,
d_tjq,
encode(ENCRYPT ( pg_catalog.decode( c_ll, 'escape' ), 'xm' :: bytea, 'aes' :: TEXT ),'BASE64') as c_ll,
n_bb*20+19 as n_bb,
from ****_tmp;

轉義查詢 

在要進行轉義的字符串整體前面 +E 在某字符需要轉義前+/

SELECT
    *
FROM
    (
        SELECT
            encode(
                decrypt (
                    pg_catalog.decode (c_mm, 'BASE64'),
                    'xm' :: bytea,
                    'aes' :: TEXT
                ),
                'escape'
            ) AS xx
        FROM
            db_**.***_jm
    ) A
WHERE
    xx = E'\\347\\234\\201 \\351\\203\\250 \\347\\272\\247';  

新建UUID函數

查看GP 安裝目錄下是否有python文件夾 
cd $GPHOME/ext/ 後
ll -l
會出現
drwxr-xr-x 6 gpadmin gpadmin 56 7月  29 2017 python

如果沒有python文件夾則不能使用該方式創建uuid函數

切換到gpadmin用戶下
su  gpadmin

添加在對應庫下添加python 支持  
createlang plpythonu -d 數據庫
如 createlang plpythonu -d db_zjw

然後去對應數據庫下新建查詢 創建uuid函數 

create or replace function public.uuid_python() returns varchar(36)
AS $$  
        import uuid  
        return uuid.uuid1()  
$$ LANGUAGE plpythonu;  

然後就可以調用uuid_python函數了
select uuid_python()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章