
参考 oracle11g行变列两种办法的比较:
方法1:优点是分析函数,缺点:返回log,低效,
select link_pid, replace(strs,',','|') all_forms
from
(select tlink_pid,
wmsyswm_concat(tform_of_way)
over(partition by tlink_pid order by tform_of_way ) strs,
row_number() over(partition by tlink_pid order by tform_of_way) RN,
count(1) over(partition by tlink_pid ) CNT
from rd_link_form t
) where RN=CNT
方法2:优点是高效,返回char,缺点:不是分析函数
select tlink_pid,
listagg(tform_of_way, '|')
within group (order by tform_of_way ) all_forms
from rd_link_form t
group by tlink_pid
listagg()需在112版本下才行
两种方法的比较:依link_pid去重后有23万的数据量,方法1的wmsyswm_concat用3小时看不到结果,方法2的listagg用80秒看到结果
我以字典表user_tab_columns改写了上述SQL,如下,大家直接执行就行:
方法1:
select table_name, replace(strs, ',', '|') all_forms
from (select ttable_name,
wmsyswm_concat(tCOLUMN_NAME) over(partition by ttable_name order by tCOLUMN_NAME) strs,
row_number() over(partition by ttable_name order by tCOLUMN_NAME) RN,
count(1) over(partition by ttable_name) CNT
from user_tab_columns t)
where RN = CNT
方法2:
select ttable_name,
listagg(tCOLUMN_NAME, '|')
within group (order by tCOLUMN_NAME ) all_forms
from user_tab_columns t
group by ttable_name
大家可以直接在自己的pl/sql中运行上述SQL
方法如下:
输入select from dba_users; 即可。
常用语句:
一,查看数据库里面所有用户:
select from dba_users;
前提是你是有dba权限的帐号,如sys,system。
二,查看你能管理的所有用户:
select from all_users;
三,查看当前用户信息 :
select from user_users;
扩展资料:
Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。
此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。
这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。
Oracle数据库具有完整的数据管理功能:
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
参考资料:
selectfromdba_users;查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
selectfromall_users;查看你能管理的所有用户!
selectfromuser_users;查看当前用户信息!
--查询你当前用户下,有哪些表
SELECTFROMuser_tables
--查询你当前用户下,可以访问哪些表[也就是访问自己和其他用户的]
SELECTFROMall_tables
--查询当前数据库所有的表,需要你有DBA的权限
SELECTFROMdba_tables
方法一:FLASH BACK
针对情况是:修改表的时间离你发现的时间不远。如果过了几天了基本上也就不能查到了。9i只能回闪查询。10G支持的功能更强大。
例子:select from scottemp as of timestamp (systimestamp -interval '10'second);
可以参考文档:>
如果是精确查询,都一样大,没必要区分。如果是模糊查询,比如表test,关键子所在的字段在a列,可尝试下面的sql
select ta
from (select a, rownum rn
from test
where a like '%关键字%'
--and rownum <= 2
order by a desc) t
where rn = 2
以上就是关于如何查询oracle数据库一周的数据全部的内容,包括:如何查询oracle数据库一周的数据、如何查询Oracle中所有用户信息、怎么查看oracle数据库中创建的数据库个数(如何查看数据库中所有的数据库)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)