重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 752|回复: 0
打印 上一主题 下一主题

[Oracle] oracle 18C 之内联外部表

[复制链接]
跳转到指定楼层
楼主
发表于 2023-9-23 23:17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Oracle 数据库18c 允许您使用 SELECT 语句中定义的内联外部表访问平面文件中的数据。

  什么是内联外部表?

  内联外部表将外部表的定义直接放在SQL语句中,不需要额外在数据字典中创建外部表对象。当使用内联外部表的时候,与创建外部表(CREATE TABLE)相同的语法可以用在一个select语句上。可以在一个字句的 from 关键字后面指定内联外部表。含有内联外部表的查询也可以包含常规的表的关联(joins),聚合(aggregation)等等。

    构造外部数据

创建目录对象
mkdir /home/oracle/scripts


[oracle@host01 scripts]$ cat sales_2016.txt
region,time_id,amount
EAST,20160101,6000
SOUTH,20160101,4000
WEST,20160101,2467
NORTH,20160101,2600

[oracle@host01 scripts]$ cat sales_2017.txt
region,time_id,amount
EAST,20170101,8000
SOUTH,20170101,2000
WEST,20170101,3400
NORTH,20170101,2000

[oracle@host01 scripts]$ cat sales_2018.txt
region,time_id,amount
EAST,20180101,2100
SOUTH,20180101,1300
WEST,20180101,3800
NORTH,20180101,2120

SYS@PROD4> create directory sales_dir as '/home/oracle/scripts';

Directory created.


WITH inline_ext_tab AS (
  SELECT *
  FROM   EXTERNAL (
           (
            region        varchar2(6)   NOT NULL,
            time_id       DATE          NOT NULL,
            amount        NUMBER(10,2)
           )
         TYPE ORACLE_LOADER
         DEFAULT DIRECTORY sales_dir
         ACCESS PARAMETERS
         (
                FIELDS TERMINATED BY ','
                MISSING FIELD VALUES ARE NULL
                (region,
                 time_id DATE 'yyyy-mm-dd',
                 amount
                 )
         )
         LOCATION ('sales_2016.txt','sales_2017.txt','sales_2018.txt')
         REJECT LIMIT UNLIMITED
      )
)
SELECT region,sum(amount)
FROM   inline_ext_tab
GROUP BY region
ORDER BY 1;

REGION SUM(AMOUNT)
------ -----------
EAST         16100
NORTH         6720
SOUTH         7300
WEST          9667

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-28 15:05 , Processed in 0.092186 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表