楼主: i2235932666

[PL/SQL] 可以把一个数组变量直接放到查询列表里吗?

[复制链接]
回帖奖励 12 pub币 回复本帖可获得 3 pub币奖励! 每人限 1 次
论坛徽章:
27
2014年新春福章
日期:2014-02-18 16:50:09秀才
日期:2015-06-25 15:39:28秀才
日期:2015-06-29 15:26:52秀才
日期:2015-07-03 17:00:53秀才
日期:2015-07-14 09:44:30金牛座
日期:2015-07-21 14:01:36秀才
日期:2015-09-14 10:08:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 10:08:02举人
日期:2016-02-24 17:33:17
11#
 楼主| 发表于 2016-10-14 17:33 | 只看该作者
jxc_hn 发表于 2016-10-14 15:56
原来是这个需求,那这样吧, 一句话

select  distinct  ’select ‘||

厉害

使用道具 举报

回复
论坛徽章:
27
2014年新春福章
日期:2014-02-18 16:50:09秀才
日期:2015-06-25 15:39:28秀才
日期:2015-06-29 15:26:52秀才
日期:2015-07-03 17:00:53秀才
日期:2015-07-14 09:44:30金牛座
日期:2015-07-21 14:01:36秀才
日期:2015-09-14 10:08:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 10:08:02举人
日期:2016-02-24 17:33:17
12#
 楼主| 发表于 2016-10-14 17:40 | 只看该作者
jxc_hn 发表于 2016-10-14 15:56
原来是这个需求,那这样吧, 一句话

select  distinct  ’select ‘||

看来是我把问题想复杂了

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
13#
发表于 2016-10-14 19:44 | 只看该作者

回帖奖励 +3 pub币

lz是要做全表导出脚本?
select *就行
SQL> set colsep ','
SQL> select 1,2,'abc','def' from dual;

         1,         2,'ABC' ,'DEF'
----------,----------,------,------
         1,         2,abc   ,def

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31优秀写手
日期:2014-02-21 06:00:13马上有车
日期:2014-10-09 10:14:53技术图书徽章
日期:2017-07-12 17:18:46妮可·罗宾
日期:2017-08-10 12:13:56
14#
发表于 2016-10-15 08:47 | 只看该作者

回帖奖励 +3 pub币

用RECORD记录集可以实现

使用道具 举报

回复
论坛徽章:
27
2014年新春福章
日期:2014-02-18 16:50:09秀才
日期:2015-06-25 15:39:28秀才
日期:2015-06-29 15:26:52秀才
日期:2015-07-03 17:00:53秀才
日期:2015-07-14 09:44:30金牛座
日期:2015-07-21 14:01:36秀才
日期:2015-09-14 10:08:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 10:08:02举人
日期:2016-02-24 17:33:17
15#
 楼主| 发表于 2016-10-17 08:32 | 只看该作者
〇〇 发表于 2016-10-14 19:44
lz是要做全表导出脚本?
select *就行
SQL> set colsep ','

对,把一个库的数据导到另外一个库,以后还会定期更新,有些要全量更新,有些要增量更新,因此要针对每个表生成相应的导数脚本

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
16#
发表于 2016-10-17 09:34 | 只看该作者
i2235932666 发表于 2016-10-17 08:32
对,把一个库的数据导到另外一个库,以后还会定期更新,有些要全量更新,有些要增量更新,因此要针对每个 ...

推荐sqluldr2

使用道具 举报

回复
论坛徽章:
27
2014年新春福章
日期:2014-02-18 16:50:09秀才
日期:2015-06-25 15:39:28秀才
日期:2015-06-29 15:26:52秀才
日期:2015-07-03 17:00:53秀才
日期:2015-07-14 09:44:30金牛座
日期:2015-07-21 14:01:36秀才
日期:2015-09-14 10:08:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 10:08:02举人
日期:2016-02-24 17:33:17
17#
 楼主| 发表于 2016-10-17 11:33 | 只看该作者

好的,我试一下,还能再请教一个问题吗?
为什么下面的SQL 加上over()就会有重复数据,而且和column_name数量一样多?
不想在SELECT 后面加DISTINCT,还有别的方法能实现吗?

SELECT 'SELECT ' || listagg(column_name, ',') within GROUP(ORDER BY t.column_id) over() || ' FROM ' || t.owner || '.' || t.table_name v_list
  FROM dba_tab_columns t
WHERE t.owner = 'SCOTT'
   AND t.table_name = 'EMP'

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
18#
发表于 2016-10-17 13:06 | 只看该作者
over分析函数

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
19#
发表于 2016-10-17 15:21 | 只看该作者
i2235932666 发表于 2016-10-17 11:33
好的,我试一下,还能再请教一个问题吗?
为什么下面的SQL 加上over()就会有重复数据,而且和column_nam ...

select col1 from
      (
         select  'select '||
                   listag(column_name, ',') with group(order by colunm_id) over(partition by table_name)
                   ||' from ’||table_name   col1,
                   row_number() over (partition by table_name order by column_id) col2
           from  user_table_columns
        )
where col2 =1

使用道具 举报

回复
论坛徽章:
27
2014年新春福章
日期:2014-02-18 16:50:09秀才
日期:2015-06-25 15:39:28秀才
日期:2015-06-29 15:26:52秀才
日期:2015-07-03 17:00:53秀才
日期:2015-07-14 09:44:30金牛座
日期:2015-07-21 14:01:36秀才
日期:2015-09-14 10:08:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 10:08:02举人
日期:2016-02-24 17:33:17
20#
 楼主| 发表于 2016-10-17 17:14 | 只看该作者
jxc_hn 发表于 2016-10-17 15:21
select col1 from
      (
         select  'select '||

嗯,要是能不嵌套就去重就好了,这也算是listagg的一个小不足吧

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表