ORACLE 常用语句 记录

使用数据泵:

导入:

IMPDP FJK/salis@ORCL DIRECTORY=dmpdir01  DUMPFILE=FJK.DMP

导出:

EXPDP FJK/salis@ORCL DIRECTORY=dmpdir01 DUMPFILE=FJK.DMP 

原始版:
导入:

IMP FJK/salis@ORCL FILE=F:\ORACLEDB\ORCL\FJK.DMP FULL=Y IGNORE=Y

导出:

能用新导出,不用旧导出。

只导出表结构:

EXPDP FJK/salis@ORCL CONTENT=METADATA_ONLY DIRECTORY=dmpdir01 DUMPFILE=FJK.DMP 

删除非空表空间 FJK

 DROP TABLESPACE FJK INCLUDING CONTENTS;

创建表空间

--BDCK
CREATE TABLESPACE BDCK
DATAFILE 'F:\OracleDB\ORCLPY\BDCK.ORA' SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
PERMANENT
DEFAULT STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645)
MINIMUM EXTENT 64K
LOGGING
ONLINE
/
CREATE USER BDCK
IDENTIFIED BY salis
DEFAULT TABLESPACE BDCK
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
/
GRANT CONNECT TO BDCK WITH ADMIN OPTION
/
GRANT DBA TO BDCK WITH ADMIN OPTION
/
GRANT RESOURCE TO BDCK WITH ADMIN OPTION
/

创建临时目录

create directory dmpdir01 as 'F:\OracleDB\ORCLSJZ';

oracle数据库获取uuid函数 sys_guid()
简单使用:

select sys_guid() from dual;

oracle数据库给表加索引

1.创建索引
create index 索引名称 on 表名 (字段名称);
2.删除索引
drop index 索引名; 
3.创建组合索引
create index 索引名 on 表名(列名1,,列名2);
4.在数据库中查找表名
select * from user_tables where  table_name like 'tablename%';
5.查看该表的所有索引
select * from all_indexes where table_name = 'tablename';
6.查看该表的所有索引列
select* from all_ind_columns where table_name = 'tablename';

oracle 修改数据库某字段名

 /*修改原字段名name为name_tmp*/
alter table ANALYSIS_LOG.T_LOG rename column DJDYID to DJDYIDtmp;

/*增加一个和原字段名同名的字段name*/
alter table ANALYSIS_LOG.T_LOG add DJDYID CLOB;

/*将原字段name_tmp数据更新到增加的字段name*/
update ANALYSIS_LOG.T_LOG set DJDYID=trim(DJDYIDtmp);

/*更新完,删除原字段name_tmp*/
alter table ANALYSIS_LOG.T_LOG drop column DJDYIDtmp;

ORACLE 查询某张表的所有字段

快速编写ORACLE中insert select 语句

  1. ORACLE 查询某张表的所有字段
 SELECT  COLUMN_NAME  FROM ALL_COL_COMMENTS WHERE OWNER ='SMPRESALE_STO' AND TABLE_NAME='T_COMPACT'
  1. ORACLE 查询某张表的所有字段,列转行,用逗号隔开
  SELECT  WM_CONCAT(COLUMN_NAME )  FROM ALL_COL_COMMENTS WHERE OWNER ='SMPRESALE_STO' AND TABLE_NAME='T_COMPACT'
  1. 拼出insert select 语句
SELECT 'INSERT INTO SMPRESALE_HIS.T_COMPACT  (' || WM_CONCAT(COLUMN_NAME) 
|| ') SELECT '|| WM_CONCAT(COLUMN_NAME ) || ' FROM SMPRESALE_STO.T_COMPACT WHERE COMPACT_ID=''051206bc44fa40b19b31a08fc494b5fa'' ' 
 FROM ALL_COL_COMMENTS WHERE OWNER ='SMPRESALE_STO' AND TABLE_NAME='T_COMPACT'

create table as select

create table SMWB_SUPPORT.T_XZQ AS
select  * from SMWB_SUPPORT.t_division where division_level = 1 ;
create table SMWB_SUPPORT.T_XJXZQ AS
select  * from SMWB_SUPPORT.t_division where division_level = 2 ;
create table SMWB_SUPPORT.T_DJQ AS
select  * from SMWB_SUPPORT.t_division where division_level = 3 ;
create table SMWB_SUPPORT.T_DJZQ AS
select  * from SMWB_SUPPORT.t_division where division_level = 4 ;

Oracle drop删表后的数据恢复

  • 如果管理员此时可以明确原表的名称或者原表只DROP过一次表,执行如下sql:
flashback table 原表名 to before drop
  • 如果不知道原表名称或者曾经DROP过多次表,可以直接按照回收站中的表名称将数据恢复,执行如下sql:
flashback table “回收站中的表名(如:Bin$DSbdfd4rdfdfdfegdfsf==$0)to before
drop rename to 新表名;

可以通过以上两种方式恢复数据。

Oracle数据库锁表查询

https://blog.youkuaiyun.com/boos_zhao/article/details/121745093

Oracle查看 修改 最大连接数

 select count(*) from v$session; -- 查看当前连接数
 SELECT COUNT(*) FROM v$process; -- 查看当前的连接数,包含oracle服务进程
 Select count(*) from v$session where status='ACTIVE'; -- 并发连接数
 select value from v$parameter where name = 'processes'; -- 数据库允许的最大连接数
 -- 或者使用命令查看最大连接 
 show parameter processes 
 select username,count(username) from v$session where username is not null group by username; --查看不同用户的连接数
ALTER SYSTEM SET processes=666 SCOPE = SPFILE; -- 修改最大连接数,修改后需要重启数据库

oracle数据库查询某个用户某个机器登录当前实例情况语句

SELECT USERNAME, USERHOST, TERMINAL, TIMESTAMP, RETURNCODE, OS_USERNAME
FROM DBA_AUDIT_TRAIL
WHERE RETURNCODE != 0 AND USERNAME = 'SMRIGHT_STO';

oracle查询所有表里有没有主键

SELECT a.OWNER, a.TABLE_NAME
FROM ALL_TABLES a
LEFT JOIN ALL_CONSTRAINTS c ON a.OWNER = c.OWNER AND a.TABLE_NAME = c.TABLE_NAME AND c.CONSTRAINT_TYPE = 'P'
WHERE c.CONSTRAINT_NAME IS NULL
AND a.OWNER NOT IN ('SYS', 'SYSTEM') -- 排除系统表
ORDER BY a.OWNER, a.TABLE_NAME;

要查询一个Oracle数据库中某个表空间下所有表的数据条数,可以使用以下SQL查询语句:

SELECT table_name, num_rows
FROM all_tables
WHERE tablespace_name = '你的表空间名称';

这个查询将从Oracle系统视图all_tables中检索在指定表空间中的所有表的数据条数。你需要将你的表空间名称替换为你要查询的实际表空间名称。

导出oracle数据库awrrpt报告步骤

https://blog.youkuaiyun.com/dyyshb/article/details/111356800

oracle监听日志位置

E:\app\Administrator\diag\tnslsnr\WIN-L8VF29MORCR\listener\trace

获取oracle数据库中的所有数据表

在Oracle数据库中,您可以使用以下SQL查询来获取所有用户表的名称:

SELECT table_name FROM user_tables;

如果您想要获取数据库中所有用户可访问的表(包括其他用户的表),可以使用:

SELECT table_name FROM all_tables;

如果您有足够的权限并想要获取数据库中所有的系统表,可以使用:

SELECT table_name FROM dba_tables;

请注意,user_tables、all_tables 和 dba_tables 是动态性能视图(Dynamic Performance Views),这意味着它们提供了关于数据库运行状态的实时数据。这些查询应在具有相应权限的用户下执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值