Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2786762
  • 博文数量: 423
  • 博客积分: 7770
  • 博客等级: 少将
  • 技术积分: 4766
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 11:58
个人简介

Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb

文章分类

全部博文(423)

文章存档

2019年(3)

2018年(6)

2017年(27)

2016年(23)

2015年(30)

2014年(16)

2013年(31)

2012年(73)

2011年(45)

2010年(14)

2009年(30)

2008年(30)

2007年(63)

2006年(32)

分类: 大数据

2017-03-31 14:53:41


一、测试常用oracle函数

[gpadmin@mdw ~]$ psql -d tank
psql (8.3.23)
Type "help" for help.

tank=# select nvl(null,2);
ERROR:  function nvl(unknown, integer) does not exist
LINE 1: select nvl(null,2);
               ^
HINT:  No function matches the given name and argument types. You might need to a
tank=# 

二、安装orafce函数扩展
[root@mdw orafce]# cd /root/gpdb/gpAux/extensions/orafce
[root@mdw orafce]# export PATH=/usr/local/gpdb-5.0.0/bin:$PATH
[root@mdw orafce]# make USE_PGXS=1
[root@mdw orafce]# make USE_PGXS=1 install

三、将编译好的orafunc.so复制到所有节点
[root@mdw ~]#   gpscp -f /home/gpadmin/all_segs /usr/local/gpdb-5.0.0/lib/postgresql/orafunc.so =:/usr/local/gpdb-5.0.0/lib/postgresql/
[root@mdw ~]#   gpscp -f /home/gpadmin/standbymaster_hosts /usr/local/gpdb-5.0.0/lib/postgresql/orafunc.so =:/usr/local/gpdb-5.0.0/lib/postgresql/
[root@mdw ~]#

四、导入orafunc函数
[root@mdw ~]# su - gpadmin
Last login: Thu Mar 30 23:17:06 EDT 2017 on pts/0
[gpadmin@mdw ~]$ psql -d tank -f /usr/local/gpdb-5.0.0/share/postgresql/contrib/orafunc.sql 

五、查看已经导入到oracle函数
[gpadmin@mdw ~]$ psql -d tank
psql (8.3.23)
Type "help" for help.


tank=# \df oracompat.*
                                                 List of functions
  Schema   |       Name       |     Result data type     |               Argument
 data types               |  Type  
-----------+------------------+--------------------------+-----------------------
--------------------------+--------
 oracompat | add_months       | date                     | day date, value intege
r                         | normal
 oracompat | bitand           | bigint                   | bigint, bigint        
                          | normal
 oracompat | concat           | text                     | anyarray, anyarray    
                          | normal
 oracompat | concat           | text                     | anyarray, text        
                          | normal
 oracompat | concat           | text                     | text, anyarray                                  | normal
 oracompat | concat           | text                     | text, text                                      | normal
 oracompat | dump             | character varying        | "any"                                           | normal
 oracompat | dump             | character varying        | "any", integer                                  | normal
 oracompat | instr            | integer                  | str text, patt text                             | normal
 oracompat | instr            | integer                  | str text, patt text, start integer              | normal
 oracompat | instr            | integer                  | str text, patt text, start integer, nth integer | normal
 oracompat | last_day         | date                     | value date                                      | normal
 oracompat | listagg          | text                     | text                                            | agg
 oracompat | listagg          | text                     | text, text                                      | agg
 oracompat | listagg1_transfn | text                     | text, text                                      | normal
 oracompat | listagg2_transfn | text                     | text, text, text                                | normal
 oracompat | lnnvl            | boolean                  | boolean                                         | normal
 oracompat | months_between   | numeric                  | date1 date, date2 date                          | normal
 oracompat | nanvl            | double precision         | double precision, double precision              | normal
 oracompat | nanvl            | numeric                  | numeric, numeric                                | normal
 oracompat | nanvl            | real                     | real, real                                      | normal
 oracompat | next_day         | date                     | value date, weekday integer                     | normal
 oracompat | next_day         | date                     | value date, weekday text                        | normal
 oracompat | nlssort          | bytea                    | text, text                                      | normal
 oracompat | nvl              | anyelement               | anyelement, anyelement                          | normal
 oracompat | nvl2             | anyelement               | anyelement, anyelement, anyelement              | normal
 oracompat | reverse          | text                     | str text                                        | normal
 oracompat | reverse          | text                     | str text, start integer                         | normal
 oracompat | reverse          | text                     | str text, start integer, _end integer           | normal
 oracompat | round            | date                     | value date                                      | normal
 oracompat | round            | date                     | value date, fmt text                            | normal
 oracompat | round            | timestamp with time zone | value timestamp with time zone                  | normal
 oracompat | round            | timestamp with time zone | value timestamp with time zone, fmt text        | normal
 oracompat | substr           | text                     | str text, start integer                         | normal
 oracompat | substr           | text                     | str text, start integer, len integer            | normal
 oracompat | trunc            | date                     | value date                                      | normal
 oracompat | trunc            | date                     | value date, fmt text                            | normal
 oracompat | trunc            | timestamp with time zone | value timestamp with time zone                  | normal
 oracompat | trunc            | timestamp with time zone | value timestamp with time zone, fmt text        | normal
(39 rows)

六、添加oracompat到search_path中
tank=# ALTER DATABASE tank SET search_path = "$user", public, oracompat;
ALTER DATABASE
tank=# 

七、测试部oracle函数
[gpadmin@mdw ~]$ psql -d tank
psql (8.3.23)
Type "help" for help.


tank=#             
 select nvl(null,8);
 nvl 
-----
   8
(1 row)

tank=#  select months_between(to_date('20180401', 'yyyymmdd'), to_date('20170401', 'yyyymmdd')) as months from emp;
 months 
--------
     12
     12
(2 rows)

tank=# select concat('man','jia')||'asdf' from emp;   
  ?column?  
------------
 manjiaasdf
 manjiaasdf
(2 rows)
tank=# select last_day(to_date('2017.03.29','yyyy.mm.dd')) from emp;   
  last_day  
------------
 2017-03-31
 2017-03-31
(2 rows)


tank=# select last_day(to_date('2017.02.26','yyyy.mm.dd')) from emp;
  last_day  
------------
 2017-02-28
 2017-02-28
(2 rows)

阅读(3078) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~