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()