数据维护需要用到的sql

是烟不好抽了,就不好喝了,还是游戏不好玩了,非要谈感情?我们做数据开发的一般不会和女人一般见识的

当月数据
select * from table t
where t.create_time
>=TRUNC(SYSDATE, 'MM')
and
t.create_time<=last_day(SYSDATE) create_time为你要查询的时间
当年数据
select * from table t
where t.create_time
>=trunc(sysdate,'YYYY')
and
t.create_time<=add_months(trunc(sysdate,'YYYY'),12)-1
本周(国外周日为一个星期第一天)
where t.create_time >=trunc(sysdate,'day')+1 and
t.create_time<=trunc(sysdate,'day')+6 本周(国内周一为一个星期第一天)
where t.create_time >=trunc(next_day(sysdate-8,1)+1) and
t.create_time<=trunc(next_day(sysdate-8,1)+7)+1

add_months(to_date('输入年月','yyyymm'),-1) 输入年月就可以查询上月的信息

select * from GSJ.BASEINFO_PER where sync_date between (select trunc(sysdate)-1 value from dual)and (select trunc(sysdate) value from dual

select count(*)from rsj.xdj_dwjn where aae036 between to_date('20170701','yyyy/mm/dd') and to_date('20171231','yyyy/mm/dd')

hadoop 集群数据导出 语句
impala-shell -q "select * from table limit 10" -B --output_delimiter="\t" -o testimpalaoutput.txt

1.查询数据库进程
SELECT a.program,b.spid c,sql_text FROM v$session a ,v$process b,v$sqlarea c WHERE a.paddr = b.addr
AND a.sql_hash_value = c.HASH_VALUE AND a.username IS NOT NULL
2.杀进程
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)

3.查询锁死的表
SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;

在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)

select * from CGJ.O_BUS_CITYUBANEVENT t where stattime < to_date ('2017/11/1','yyyy-MM-dd')

数据备份导入
C:\Users\Administrator>imp ABC/123@orcl file = D:\GS1.dmp full = y

数据备份导出


C:\Users\Administrator>exp scott/123@orcl file = D:\dept.dmp owner = scott

创建表空间
create tablespace GJSWJ datafile 'E:/app/Administrator/oradata/orcl/GJSWJ' size 1024M reuse;


创建新的用户:
--新建用户
create user NEW_USERNAME
identified by "NEW_PASSWORD"
default tablespace NEW_TABLESPACENAME
profile DEFAULT
ACCOUNT UNLOCK;

DELETE 删除数据,恢复脚本

select * from GS1 as of timestamp to_timestamp('2017-11-21 10:57:11','yyyy-mm-dd hh24:mi:ss')

alter table GS1 enable row movement;

flashback table GS1 to timestamp to_timestamp('2017-11-21 10:57:11','yyyy-mm-dd hh24:mi:ss');

查询用户下的所有表结构信息
select b.TABLE_NAME as "表名",
c.comments as "表说明",
b.COLUMN_ID as "字段序号",
b.COLUMN_NAME as "字段名",
b.DATA_TYPE as "字段数据类型",
b.DATA_LENGTH as "数据长度",
b.DATA_PRECISION as "整数位",
b.DATA_SCALE as "小数位",
a.comments as "字段说明"
from all_col_comments a, all_tab_columns b,all_tab_comments c
where a.owner = 'GAJ' and a.owner = b.OWNER and
a.table_name = b.TABLE_NAME and a.column_name = b.COLUMN_NAME and
c.table_name = a.table_name and c.owner = a.owner
order by a.table_name, b.COLUMN_ID

select b.TABLE_NAME as "表名",
c.comments as "表说明",
b.COLUMN_NAME as "字段名",
a.comments as "字段说明"
from all_col_comments a, all_tab_columns b,all_tab_comments c
where a.owner = 'GAJ' and a.owner = b.OWNER and
a.table_name = b.TABLE_NAME and a.column_name = b.COLUMN_NAME and
c.table_name = a.table_name and c.owner = a.owner
order by a.table_name

查询上一个月的更新数据
select count(*) from GJJGLZX.ZHCS_GJJGRZQMX where to_char(SYNC_DATE,'yyyymm')=to_char(add_months(sysdate,-1),'yyyymm')

查询某一时间区间的数据
select * from GSJ.GSJ_XZCFXX t where tg_date between TO_DATE('2017-07-17 00:00', 'yyyy-mm-dd hh24:mi') and TO_DATE('2018-01-07 23:59', 'yyyy-mm-dd hh24:mi')

Oracle用户密码过期和用户被锁解决方法

按照如下步骤进行操作:

1、查看用户的proifle是哪个,一般是default:

sql>SELECT username,PROFILE FROM dba_users;

2、查看指定概要文件(如default)的密码有效期设置:

sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3、将密码有效期由默认的180天修改成“无限制”:

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之后不需要重启动数据库,会立即生效。

4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;

已经被提示的帐户必须再改一次密码,举例如下:

$sqlplus / as sysdba

更改用户名字
select user#,name,password from user$ where name ='XIAOXIAO';

update user$ set name='XIAO' where user#=91;


sqlplus / as sysdba

sql> alter user smsc identified by <原来的密码> ----不用换新密码

Oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。以上的帐户名请根据实际使用的帐户名更改。
给某个用户授权可以访问某张表 grant select,update on JTYSJ.DTL_DRIVER to MZJ_ZF

expdp DMS/123456 version=10.2.0.1.0 directory=DATA_PUMP_DIR dumpfile=10G_20180623_DMS.DMP logfile=TO_20180623.log schemas=SP_DMS
--- DMS/123456是具有导出权限的用户名密码,version是导出的版本,默认是服务端版本,主要用于兼容导入低版本的数据库服务器
directory是导出文件的目录,可以通过下列语句查询
select * from dba_directories;
dumpfile是导出文件名,logfile是日志文件名,schemas是导出哪个用户数据

impdp DMS/123456 directory=DATA_PUMP_DIR dumpfile= 10G_20180623.DMP remap_schema=SP_DMS:SP_NEXT remap_tablespace=USERS:BYMIS
remap_schema是原来的数据库用户:目标的数据库用户 remap_tablespace是原来的表空间:目标的表空间。当两个数据库使用不同的数据库用户、表空间时,启用这两个参数,缺省情况下则系统认为相同。

猜你喜欢

转载自www.cnblogs.com/zc1252804883/p/9633292.html
今日推荐