- 博客(103)
- 收藏
- 关注
原创 【SQL开发实战技巧】系列(四十九):Oracle12C常用新特性☞表分区部分索引(Partial Indexes)
Partial Indexes(部分索引), 无论是global还是local都可以有选择性的对部分分区创建索引,并通过比较partial index与global/local index两个案例来看对查询效率的提升!
2023-12-07 16:02:21
1766
4
原创 【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理
本篇文章主要给讲解的Oracle12C+的新特性是:*** 多分区操作和管理:通过ALTER TABLE ADD PARTITION增加多个新分区、 通过ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 同时截断/删除多个分区、通过SPLIT PARTITION同时拆分多个分区、通过ALTER TBALE MERGE PARTITIONS合并多个分区***
2023-12-07 15:17:46
1001
1
原创 【SQL开发实战技巧】系列(四十七):Oracle12C常用新特性☞非分区表在线转分区表online clause(不停业务+索引有效)
Oracle 12c以前非分区表需要转换为分区, 如果不停业务的话可以使用在线重定义,只有在表进行切换的时候会有短暂的锁表。 Oracle 12c 中alter table online clause 实现了表上现有的索引有效,又不停业务。
2023-04-15 22:23:20
2169
8
原创 【SQL开发实战技巧】系列(四十六):Oracle12C常用新特性☞会话级序列及数据泵(DataPump增强)支持像表一样导出视图
在Oracle12C,数据泵(DataPump)有所增强,Impdp的`TRANSFORM`参数已经扩展为包括`DISABLE_ARCHIVE_LOGGING`选项。该选项的默认值为 "N",不会影响日志行为。将该选项设置为"Y",这将会使表和索引在导入前将日指属性设置为`NOLOGGING`,从而导入期间减少相关日志的产生,导入后再将日志属性重置为`LOGGING`。`VIEWS_AS_TABLES`参数允许把视图当成表导出。表结构匹配视图列,视图
2023-04-07 23:32:57
4201
3
原创 【SQL开发实战技巧】系列(四十五):Oracle12C常用新特性☞VARCHAR2/NVARCHAR2类型最大长度由4000字节扩展到32767字节
在Oracle12C之前,`VARCHAR2/NVARCHAR2`类型得最大长度是4000字节,而raw类型是2000字节。12c我们可以将这几种类型的最大长度扩展到32767字节,从而大大减少对CLOB等大字段的使用频率。本文章会教大家如何在CDB+PDB环境启用扩展,以及如何使用和使用过程中的注意事项(比如:ORA-24920:列大小对于客户机过大)***
2023-04-07 23:10:49
6387
原创 【SQL开发实战技巧】系列(四十四):Oracle12C常用新特性☞你知道吗Oracle新增了类似Mysql的自增列(Identity Columns)功能
在ORACLE 12C以前的版本中,如果要实现列自增长,需要通过序列+触发器实现,到了12C ORACLE 引进了Identity Columns新特性(GENERATED ALWAYS AS IDENTITY、GENERATED BY DEFAULT AS IDENTITY、GENERATED BY DEFAULT ON NULL AS IDENTITY、手动调用自增列序列),从而实现了列自增长功能,和mysql,sql server类似功能。
2023-04-06 17:53:00
4719
2
原创 【大数据开发运维解决方案】ssh: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b问题解决过程
他在infa用户下创建了用来放Gaussdb的动态库 文件/home/infa/gaussdb/lib目录,但是在.bashrc文件中增加相关LD_LIBRARY_PATH配置后,再次执行ssh命令报下面错误:```sql[infa@etltest5 ~]$ sshssh: symbol lookup error: ssh: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
2023-04-06 17:30:31
5931
原创 【SQL开发实战技巧】系列(四十三):Oracle12C常用新特性☞转换函数的增强和不可见字段
本篇文章主要给讲解的Oracle12C+的两个新特性是:***在12.2中对数据类型转换函数的许多增强,一些TO_*的转换函数(TO_NUMBER(v_time DEFAULT -1 ON CONVERSION ERROR))中,已经被添加了一个处理错误的功能.12c得VALIDATE_CONVERSION函数用于测试转换是否成功、在12c中,可以在表中创建不可见字段(使用invisible关键字)。***
2023-04-05 23:55:16
5795
原创 【SQL开发实战技巧】系列(四十二):Oracle12C常用新特性☞With FUNCTION新特性
本篇文章主要给讲解的Oracle12C+的两个新特性是:***12c对With进行加强(`plsql_declarations`),新增with function,直接在SQL中嵌入PL/SQL对象并运行,优化了`SQL engine` 和 `PL/SQL engine 2`种的代码引擎之间的交互。如果包含PL/SQL声明部分的查询不是顶级查询,那么,顶级查询必须包含WITH_PLSQL hint。用案例分析普通function和with function的性能。***
2023-04-05 23:46:18
6108
2
原创 【SQL开发实战技巧】系列(四十一):Oracle12C常用新特性☞APPROX_COUNT_DISTINCT以及TEMP UNDO(临时undo记录可以存储在一个临时表中)
本篇文章主要给讲解的Oracle12C+的两个新特性是:***Oracle11g中,为了改善DBMS_STATS包收集统计信息时的唯一值计数功能,增加了 APPROX_COUNT_DISTINCT函数,但文档中未记载。Oracle12c文档中包括了该函数、在Oracle 12c R1之前,临时表生成的undo记录是存储在undo表空间里的,通用表和持久表的undo记录也是类似的。而在12c R12的临时undo功能中,临时undo记录可以存储在一个临时表中,而无需再存储在undo表空间内。***
2023-04-04 23:52:50
5791
1
原创 【SQL开发实战技巧】系列(四十):Oracle12C常用新特性☞可以在同样的列(列组合)上创建多个索引以及可以对DDL操作进行日志记录
本篇文章主要给讲解的Oracle12C+的两个新特性是:***自12c起,可以在同样的列(列组合)上创建多个索引,但这么做有一个前提条件:这些索引必须是物理上完全不同的,如果想要在某列上先创建一个B*tree索引,那么接下来只能在这个列再创建一个位图索引。此外,相同的列上索引只能有一个为可见的、在12C之前的版本中没有Oracle提供的可选方法来对DDL操作进行日志记录,而12c(R1)中,可以将DDL操作写入xml和日志文件中(需要开启ENABLE_DDL_LOGGING )。这对于了解谁在什么时间执行了
2023-04-04 23:32:11
5971
原创 【SQL开发实战技巧】系列(三十九):Oracle12C常用新特性☞新增分页查询
在12c之前的查询,如果要返回查询的前N条记录,或则对查询进行分页显示,需要使用rownum伪例,对查询结果进行排序。在oracle12C中引入了`row_limiting_clause`短语,可以方便的返回结果集中需要的记录。相关关键词为:offset、 row / rows、 fetch 、frist / next 、 rowcount、 precent 、only 。
2023-04-03 16:06:21
7119
1
原创 【SQL开发实战技巧】系列(三十八):数仓报表场景☞拆分字符串进行连接以及如何对Clob字段比较一致性
本篇文章讲解的主要内容是:***需求一:现在有一按照部门用逗号分隔的用户id字符串,现在要求将一逗号分隔的用户id替换为用户名称。需求二:Oracle Clob字段如何比对数据是否一致***
2023-04-03 15:29:30
7361
1
原创 【SQL开发实战技巧】系列(三十七):数仓报表场景☞从表内始终只有近两年的数据,要求用两列分别显示其中一年的数据聊行转列隐含信息的重要性
本篇文章讲解的主要内容是:***需求一:T表内始终只有近两年的数据,要求时刻返回两列并且分别显示其中一年的数据。需求二:以Emp表中为例,要求每个job显示为一行,同类job的姓名分列显示,不够的显示为空***
2023-04-02 17:29:04
7936
15
原创 【SQL开发实战技巧】系列(三十六):数仓报表场景☞整理垃圾数据:查找数据的连续性时间和重叠时间的关系,初始化开始结束时间
从整理人员签到信息记录表的垃圾数据来再次体会一下隐藏数据列信息以及查找数据的连续性时间和重叠时间的实战案例【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。从整理人员签到信息记录表的垃圾数据来再次体会一下隐藏数据列信息以及查找数据的连续性时间和重叠时间的实战案例。
2023-04-02 17:09:33
7773
17
原创 【SQL开发实战技巧】系列(三十五):数仓报表场景☞根据条件返回不同列的数据以及Left /Full Join注意事项
本篇文章讲解的主要内容是:***根据传入条件返回不同列中的数据:根据界面中选中的不同参数。比如,当只在界面中选中"山东"省级条件时,显示其下的市级单位,而当选中"济宁市"市级条件时,要显示其下的镇级单位。从构建基础数据的重要性来看Left /Full Join注意事项***
2023-04-01 20:14:03
11438
9
原创 【SQL开发实战技巧】系列(三十四):数仓报表场景☞如何对数据分级并行转为列
本篇文章讲解的主要内容是:***有个需求:把emp中的结果按工资分级,其中最高的三档作为一列、次高的三档作为一列、其余的作为一列。本篇文章我们来讨论下这个需求怎么实现。给出case when 和pivot两种行转列的方法。通过此案例理解隐藏列信息的重要性。***
2023-04-01 19:35:17
11579
10
原创 【创作赢红包】Informatica停止工作流后Oracle会话未正常停止,查询Oracle被锁表并解锁完整过程
今天同事那边在用Informatica对Oracle表做update时发现表被锁住了,报错:"**ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效**",一般在用户修改记录之前,悲观锁就会发生作用。检查了数据库,发现有几个会话一直在lock表。因为Informatica工作流已经停止了,但是数据库这边任然显示会话正在运行,与开发同事沟通后,确定为异常会话,于是需要将锁表的会话杀死(可能会报错:ORA-00031: session marked for kill。需要在系统
2023-03-31 23:58:42
10901
原创 【SQL开发实战技巧】系列(三十三):数仓报表场景☞从不固定位置提取字符串的元素以及搜索满足字母在前数字在后等条件的数据
本篇文章讲解的主要内容是:***通过需求:从不固定位置提取字符串的元素,要求取出方括号中对应的字符串,分三列显示。给大家介绍regexp_substr正则表达式日常工作中的巧妙用法。通过需求:搜索同时包含字母数字混合的字符串,要求返回T中既包含字母,又包含数字的行。那么只要其中有"字母在前,数字在后"或"数字在前,字母在后"的数据均可需求,介绍regexp_like的使用场景。***
2023-03-31 17:21:59
11199
7
原创 【SQL开发实战技巧】系列(三十二):数仓报表场景☞对表中某个字段内的值去重
现在有个问题:如何对表中某个字段内的值去重。这个问题,是日常开发中稍微常见的,同样也是一个比较困难的问题。如果仅是一个字符串的单行处理还好说,麻烦的就是对于有N(N>1)行数据的表处理(ORA-01436: 用户数据中的 CONNECT BY 循环)。在这篇文章之前,我曾经在第十二篇文章中提过此类问题,当时是给出的"一个字段中单个字符串去重排序的案例(例如:abccdaa去重排序后为:abcd)",对于有N(N>1)行数据的表的解决方案,我是通过标量子查询实现的。
2023-03-30 23:45:37
11050
9
原创 【SQL开发实战技巧】系列(三十一):数仓报表场景☞分层查询如何只查询树形结构某一个分支?如何剪掉一个分支?
第一个案例给大家介绍在树形(分层)查询中,我们如何只查询出来树形的一个分支?如何剪去分支,不能在WHERE中加条件。【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。第一个案例给大家介绍在树形(分层)查询中,我们如何只查询出来树形的一个分支?如何剪去分支,不能在WHERE中加条件。
2023-03-30 23:09:01
11373
9
原创 【SQL开发实战技巧】系列(三十):数仓报表场景☞树形(分层)查询如何排序?以及如何在树形查询中正确的使用where条件
本篇文章讲解的主要内容是:***第一个案例给大家介绍在树形(分层)查询中,如何通过SIBLINGS关键词进行正确的排序。第二个案例主要介绍树形查询中的WHERE过滤的对象是"树形查询的结果"。这句话是重点!!!!!所以要谨记,如果你有这种过滤+树形查询的需求,一定一定要先过滤,用子查询嵌套一次,再进行树形查询。***
2023-03-29 23:39:19
13885
7
原创 【SQL开发实战技巧】系列(二十九):数仓报表场景☞简单的树形(分层)查询以及如何确定根节点、分支节点和叶子节点
本篇文章讲解的主要内容是:***第一个案例给大家介绍如何在Oracle中进行树形(分层)查询,主要介绍START WITH、CONNECT BY、PRIOR语法的使用。接着以如何确定根节点、分支节点和叶子节点的需求,给大家介绍level与connect_by_isleaf函数的使用。最后介绍节点路径函数 sys_connect_by_path以及它在Oracle11.2之前可以替代Listagg函数和wm_concat函数的写法。***【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQ
2023-03-29 23:13:21
14119
6
原创 【大数据开发运维解决方案】通过降低term在文档出现频率的权重案例教你Solr/Elasticsearch如何自定义Similarity
本篇文章通过介绍“有重复词汇的前提下,调整一个文档中,term在文档命中的频率对分数和排名的影响,如何降低词频对得分的影响”案例,来教你Solr/Elasticsearch如何自定义Similarity。
2023-03-27 18:15:03
17617
1
原创 【大数据开发运维解决方案】华为FusionInsight大数据Kibana对接安全模式Elasticsearch方案
博主所在单位使用的大数据集群为华为FusionInsight,本篇文章主要介绍的是如何将开源Kibana对接到华为安全模式下Elasticsearch。同样,本篇文章适用其他版本Kibana对接安全模式Elasticsearch。
2023-03-27 17:46:33
18151
原创 【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
本篇文章讲解的主要内容是:***通过行转列实现人员空间分布问题(工作显示为一列,每位员工显示一行)、连续行转列应该注意的问题、通过执行计划看对不同组、分区同时实现聚集需求:要求在员工表的明细数据里列出员工所在部门及职位的人数!!***【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
2023-03-27 10:28:13
17858
9
原创 【SQL开发实战技巧】系列(二十七):数仓报表场景☞通过对移动范围进行聚集来详解分析函数开窗原理以及如何一个SQL打印九九乘法表
本篇文章讲解的主要内容是:***通过执行计划看开窗函数开窗语法rows\range between preceding and current row以及rows\range between unbounded preceding and unbounded following对移动范围的值进行聚集的原理以及区别】、如何通过一个SQL打印九九乘法口表!!!***
2023-03-22 10:32:59
23066
20
原创 【SQL开发实战技巧】系列(二十六):数仓报表场景☞聊聊ROLLUP、UNION ALL是如何分别做分组合计的以及如何识别哪些行是做汇总的结果行
本篇文章讲解的主要内容是:***ROLLUP、UNION ALL是如何分别做分组合计的以及如何通过CUBE 、GROUPING、GROUPING_ID 识别哪些行是做汇总的结果行***
2023-03-21 17:51:37
23198
6
原创 【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
本篇文章讲解的主要内容是:***如何使用lag函数让结果集重复数据只显示一次、用行转列pivot写法优化部门之间计算工资差异类似需求、如何通过ceil函数对已有数据进行分组打印、放假安排团队分组值班,如何通过ntile()over(order by )快速进行人员分组***
2023-03-17 17:09:44
27278
28
原创 我的CSDN四周年创作纪念日
在自己的研究下,慢慢对数据库非常感兴趣了,从开发到运维,慢慢成了公司同届新人里成长最快的,当然,也是工作方向最跑偏的(Java->Oracle 开发DBA),在后来的工作过程中,自己报考并通过了Oracle专家认证。,是2019年3月15日星期五。
2023-03-15 23:49:18
8214
7
原创 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(下)
之前写过一系列关于GoldenGate异构同步Mysql、Kafka、Kylin、Flink做实时计算的场景文章。下面是我给大家的生产环境下,如何部署OGG(GoldenGate)12.2及异构实时同步数据(支持DDL)的解决方案。本文主要介绍如何实现实时异构的进行Oracle->Oracle的数据同步,这种数据同步适用于灾备、升级、实时ODS等场景使用。我这里给大家了三个GoldenGate部署方式,看大家喜欢用哪种吧!
2023-03-08 11:26:56
45760
64
原创 【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
本篇文章讲解的主要内容是:***目前Oracle支持的行列互换有两种方式:case when、pivot\unpivot,我将通过几个案例来给大家详解如何通过这两种方式实现“行转列”,“列转行”的需求,并通过执行计划看case when、pivot\unpivot二者的底层逻辑关系以及效率上的影响。***
2023-03-08 11:00:33
39522
8
原创 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中)
本章介绍如何配置xagent远程GUI安装ogg,也可以用来当作xagent远程调用GUI的学习资料,之前写过一系列关于GoldenGate异构同步Mysql、Kafka、Kylin、Flink做实时计算的场景文章。下面是我给大家的生产环境下,如何部署GoldenGate及异构实时同步数据的解决方案。本文主要介绍如何实现实时异构的进行Oracle->Oracle的数据同步,这种数据同步适用于灾备、升级、实时ODS等场景使用。我这里给大家了三个GoldenGate部署方式,看大家喜欢用哪种吧!
2023-03-05 01:52:11
51008
27
原创 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)
之前写过一系列关于GoldenGate异构同步Mysql、Kafka、Kylin、Flink做实时计算的场景文章。下面是我给大家的生产环境下,如何部署OGG(GoldenGate)12.2及异构实时同步数据的解决方案。本文主要介绍如何实现实时异构的进行Oracle->Oracle的数据同步,这种数据同步适用于灾备、升级、实时ODS等场景使用。我这里给大家了三个GoldenGate部署方式,看大家喜欢用哪种吧!
2023-03-05 01:02:28
49816
47
原创 【大数据实时数据同步】GoldenGate实时同步异常:OGG-03533:character ‘c2 a0‘ at offset 0 that is not available报错解决
最近遇到了这个错误:`OGG-03533:character 'c2 a0' at offset 0 that is not available。导致报错的原因是源端库有业务人员手动用excel往数据库导入数据,源端库字符集:`AMERICAN_AMERICA.AL32UTF8` ,目标库ODS字符集:`AMERICAN_AMERICA.ZHS16GBK`。业务人员导入的数据中包含了全角空格及不间断空格,
2023-03-03 17:51:23
46818
4
原创 置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天
GoldenGate公司成立于1995年的美国加州旧金山, 它的名称源自旧金山闻名于世的金门大桥。该公司于2009年9月被Oracle公司收购,在此之前Oracle和GoldGate公司就有了长达超过10年的合作关系。GoldenGate几乎支持市面上流行的所有主流的操作系统平台和数据库。在不同的平台生成的core文件,有不同的本地堆栈跟踪工具来分析。GoldenGate的模式包括下图中描述的几种,其中“一对一”是GoldenGate最简单的一种模式,也是最常用的模式。
2023-03-02 17:09:16
823
3
原创 【大数据开发运维解决方案】记一次同事不慎用root起动weblogic以及启动日志卡在The server started in RUNNING mode 问题解决过程
最近因为单位换了新版本华为HD集群,有一些业务数据存在于hive数据库中。而有一些Smartbi的报表数据源是连接的华为HD Hive,但是同事在操作完成后,Smarbi节点无法正常起来(后台日志卡在:The server started in RUNNING mode,Server state changed to RUNNING),要么起来了就是无法联通Hive。点击测试连接后经过长时间卡住等待,然后报:未知错误:`WinInet error occurred.0`,从后台看启动日志提示登录成功。
2023-03-02 11:44:28
49698
3
原创 【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
怎样对数据组合重新排列并去重的问题、通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本篇文章主要介绍的两个方面,第一个方面曾经有好几个网友和同事问我,第二个问题真的是很多同行的通病,认为分析函数是万金油,一股脑用。
2023-02-28 23:57:08
54617
11
原创 【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
怎样对SQL查询结果集分页比较好、平时你用分析函数优化传统查询,所以你会不会认为分析函数一定比传统查询效率高?一个实验告诉你答案、我想对数据进行隔行抽样应该怎么实现?【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。分析查询的一个小建议,可能大家平时为了方便,用row_number做分页的比较多,但是在有些场景,这个效率真的挺低。
2023-02-27 17:48:33
62341
121
原创 从一个SQL打印全年日历漫谈数据仓库中时间操作场景的重点写法
我如何快速确定今年是否是闰年的😣我如何从DATE类型数据获取年、月(月初&月末)、周、日、时、分、秒信息🤯我如何快速查到本月月初第一周的周一和本月最后一周周一是在几号😑我如何快速确定每个季度的开始和结束日期😫领导让统计每个月招聘的人数,但是有的月份没招人也就没在数据库记录当月招聘信息,我怎么统计出来没有的月份😤领导让每隔十分钟统计一次数据库登录人数,我该怎么统计啊🙄突发奇想,大佬你能否用一条sql打印一年的日历出来,我懵逼了😫😭😤🤯。
2023-02-23 14:46:30
29624
79
oracle rac安装个人笔记
2023-03-13
oracle adg安装个人笔记
2023-03-13
linux基础管理个人笔记
2023-03-13
shell编程个人笔记
2023-03-13
linux高级管理个人笔记
2023-03-13
linux服务管理个人笔记
2023-03-13
ETL开发设计项目案例
2023-03-13
解决linux下oracle中文乱码问题,添加中文支持
2023-03-13
oracle SQL查询工具
2023-03-13
instantclient-basic-win32-11.2.0.1.0.zip
2023-03-12
linux远程连接工具securcrt 32及64位合并包
2023-03-12
Oracle连接工具plsql11x64位
2023-03-12
mysql高频面试题及答案
2023-03-12
60道java开发面试题以及答案
2023-03-12
java开发工程师的简历模版,内含有5个项目
2023-03-12
CSDN之前有粉丝过万的实体奖牌活动
2023-08-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人