用分析函数实现自动生成sqlloader定长数据装载控制文件的一个语句

本文中的内容在《2010-05-07 22:08 Automatic SQL*LOADER(以定长方式为例) ,原文地址:http://hi.baidu.com/nsj820/item/b346e517416d43011994ec5c》也能实现,但这里主要想体现的是oracle分析函数的强大。

WITH FIX_LENGTH AS
 (SELECT A.TABLE_NAME,
         A.COLUMN_ID,
         A.COLUMN_NAME,
         A.DATA_LENGTH,
         SUM(P_OFFSET) OVER(PARTITION BY A.TABLE_NAME ORDER BY A.COLUMN_ID) P_START,
         SUM(P_OFFSET) OVER(PARTITION BY A.TABLE_NAME ORDER BY A.COLUMN_ID) + DATA_LENGTH - 1 P_END
    FROM (SELECT A.TABLE_NAME,
                 A.COLUMN_ID,
                 A.COLUMN_NAME,
                 A.DATA_LENGTH,
                 LAG(A.DATA_LENGTH, 1, 1) OVER(PARTITION BY A.TABLE_NAME ORDER BY A.COLUMN_ID) P_OFFSET,
                 SUM(A.DATA_LENGTH) OVER(PARTITION BY A.TABLE_NAME ORDER BY A.COLUMN_ID) P_CONTINUOUS_SUMMATION
            FROM USER_TAB_COLUMNS A) A)
S
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值