sql语句 也是一种 具有数据 世界的 通用语言还是 具有很强生命力的,比鸟语要好懂,语法不复杂,运用很灵活。
0 进行数据处理的时候,经常碰到的一种情况就是 (一列值中有 几类值,要根据值来更新相应的关联值,例如 人员表中 性别 一列值中有‘男‘’女’ 2种值 ,现更新值为‘男’的记录为1 ,‘女’记录为2;)
update ryb set xb= case when xbm='1' then '男' when xbm='2' then '女' end;
1 从数据库导出 表的 insert into 或者 drop table 语句。
a: SELECT 'insert into xg_xtwh_splcmkdzb(mkdm,mkmc) values('|| '''' || mkdm ||''''||','|| '''' ||mkmc|| ''''||')'
FROM xg_xtwh_splcmkdzb ;(注意括起实际字段的 引号为4个单引号 '|| '''' || )
b:select 'drop table '||tname||';' from tab where tname like 'XSPFB_%' ;删除相关表。
淡然如果有plsql连接的,自带官方导出自然更加ok。
TOOLS---export table--sql insert 搞定神马 建表删除 语句都有了。
2 查询用户执行过的sql语句历史,就跟浏览器浏览历史一样,这个功能可以追踪用户有没有 浏览黄色论坛。
oracle在共享池里边会保留用户sql的使用历史记录,并在数据字典中 生成一个名叫 v$sqlarea的视图。这个视图
就是你渴望的历史。
1 select * from v$sqlarea t where t.PARSING_SCHEMA_NAME
in ('ZFXFZB') order by t.LAST_LOAD_TIME desc
3 查询用户登录历史,关于隐私的事情,人们总是很感兴趣的。呵呵。这是谁到此一游的签名记录,一个名叫v$session的
视图就是用户签到表。
2 select SID,serial#,USER#,username,ownerid,status,SCHEMA#,schemaname,osuser
, machine,program,module,action,type,logon_time,event,service_name from v$session order by logon_time desc
4 这里就是社会职工岗位信息表了,各个用户的是苦逼还是权贵就在这里了
dba_role_privs ,dba_sys_privs,dba_tab_privs
select * from dba_role_privs WHERE grantee='SYS'; 授予用户和其他角色的角色
select * from dba_sys_privs ; 授予用户和其他角色的系统权限
select * from dba_tab_privs ; 数据库中对象的所有授权
select * from user_role_privs ; 查看当前用户的角色
----------------------------------------------------------------
----比较升级后2表之间字段的不同-------------------------
SELECT * FROM All_Tab_Columns WHERE owner='GXZY' AND table_name='XXMC' AND column_name NOT IN
(SELECT column_name FROM All_Tab_Columns WHERE owner='GXZY' AND table_name='XXMCSZB' )
SELECT * FROM All_Tab_Columns WHERE owner='GXZY' AND table_name='XXMCSZB' AND column_name NOT IN
(SELECT column_name FROM All_Tab_Columns WHERE owner='GXZY' AND table_name='XXMC' )
--------------------------------------------------------------------------------------------
SELECT * FROM All_Tab_Columns WHERE OWNER='GXZY' AND TABLE_NAME='XXMC'
AND data_LENGTH>'200'
ALTER TABLE MODIFY