oracle的常规操作(基本命令)

Oracle基本命令

前言:... 3

连接数据库:... 3

使用sql*plus连接oracle. 3

命令方式... 3

文件操作命令... 3

显示和设置环境变量... 3

查看当前所有表... 4

查询当前日期... 4

查看本用户下的各种对象的SQL脚本... 4

表空间管理... 5

概述:... 5

查看表空间的名字和所属文件... 5

创建表空间:... 6

修改表空间并为表空间添加物理文件:... 6

增加表空间大小的四种方法... 6

修改物理文件大小... 6

修改用户表table的表空间... 7

查询所有用户表:... 7

删除表空间:... 7

移动表至另一表空间... 7

建立临时表空间... 7

设定后查看表空间信息... 7

用户管理:... 7

创建用户... 7

概述:... 7

创建用户... 8

查看当前用户所属角色:... 8

查看当前用户的缺省表空间... 8

查看某用户所拥有的对象:... 8

查看某用户的所有表:... 8

给用户修改密码... 8

删除用户... 8

角色管理... 9

1.connect角色... 9

2.resource角色... 9

3.dba角色... 9

4:创建角色:... 9

5:给角色授权:... 10

6:把某个角色的权限赋予某个用户... 10

7:显示所有角色... 10

Oracle表的管理... 10

表名和列的命名规则... 10

oracle支持的数据类型... 10

字符类... 10

数字型... 11

日期类型... 11

日期类型相关函数和格式转换函数的使用... 11

图片... 13

创建表的案例... 13

建一个和a表结构一样的空表... 13

创建序列(名称为:myCus_seq)... 14

SQL编程语法:... 14

循环的语句格式:... 14

自定义函数和使用... 15

创建函数... 15

Oracle创建函数(function)... 15

案例1:... 15

案例2:... 16

存储过程相关:... 16

1、基本语法... 16

写一个简单的例子修改emp表的ename字段... 16

有返回值的存储过程... 17

Oracle创建包... 17

概述:... 17

1、创建包规范... 17

实例:... 18

用pl/sql developer导出表结构和数据... 19

1、点击Tools--Export User Objects 19

2、如果想将表中数据一起导出,可用Tools--Export Tables 19

第一种是导出为.dmp的文件... 19

第二种是导出为.sql文件:... 19

第三种是导出为.pde格式:... 19

前言:

连接数据库:

使用sql*plus连接oracle

命令方式

1.conn[ect]

用法:conn 用户名/密码@网络服务名[as
sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper

远程连接:sqlplus
usr/[email protected]//host:port/sid 如:conn sys/[email protected]:1521/orcl as sysdba;

2.disc[onnect]

说明: 该命令用来断开与当前数据库的连接

3.psssw[ord]

说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。4.show user

说明: 显示当前用户名

5.exit

说明: 该命令会断开与数据库的连接,同时会退出sql*plus

文件操作命令

1.start和@

说明: 运行sql脚本

案例: sql>@
d:\a.sql或是sql>start
d:\a.sql

2.edit

说明: 该命令可以编辑指定的sql脚本

案例:
sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开

3.spool

说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。

案例:
sql>spool d:\b.sql 并输入 sql>spool off

显示和设置环境变量

概述:可以用来控制输出的各种格式,show all可以显示当前相关的设置

1.linesize

说明:设置显示行的宽度,默认是80个字符

show linesize

set linesize 90

查看当前所有表:

select * from tab;

查询当前日期

select
to_char(sysdate,‘yyyy-mm-dd,hh24:mi:ss‘) from dual;

查看本用户下的各种对象的SQL脚本

SQL语句:

表:

  select *
from cat;

  select *
from tab;

  select
table_name from user_tables;

视图:

  select text
from user_views where view_name=upper(‘&view_name‘);

索引:

  select
index_name,table_owner,table_name,tablespace_name,status from user_indexes
order by table_name;

触发器:

  select
trigger_name,trigger_type,table_owner,table_name,status from user_triggers;

快照:

  select
owner,name,master,table_name,last_refresh,next from user_snapshots order by
owner,next;

同义词:

  select *
from syn;

序列:

  select *
from seq;

数据库链路:

  select *
from user_db_links;

约束限制:

  select
TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;

本用户读取其他用户对象的权限:

  select *
from user_tab_privs;

本用户所拥有的系统权限:

  select *
from user_sys_privs;

用户:

  select *
from all_users order by user_id;

表空间剩余自由空间情况:

  select
tablespace_name,sum(bytes) 总字节数,max(bytes),count(*) from dba_free_space group by tablespace_name;

数据字典:

  select
table_name from dict order by table_name;

锁及资源信息:

  select *
from v$lock;不包括DDL锁

数据库字符集:

  select
name,value$ from props$ where name=‘NLS_CHARACTERSET‘;

inin.ora参数:

  select
name,value from v$parameter order by name;

SQL共享池:

  select
sql_text from v$sqlarea;

数据库:

  select *
from v$database

控制文件:

  select *
from V$controlfile;

重做日志文件信息:

  select *
from V$logfile;

来自控制文件中的日志文件信息:

  select *
from V$log;

来自控制文件中的数据文件信息:

  select *
from V$datafile;

NLS参数当前值:

  select *
from V$nls_parameters;

ORACLE版本信息:

  select *
from v$version;

描述后台进程:

  select *
from v$bgprocess;

查看版本信息:

  select *
from product_component_version;

表空间管理

概述:

Oracle表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象。否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额。因此,在创建对象之前,首先要分配存储空间。分配存储,就要创建表空间

Oracle可以创建的表空间有三种类型:

(1)TEMPORARY: 临时表空间,用于临时数据的存放;创建临时表空间的语法如下:CREATE TEMPORARY
TABLESPACE "SAMPLE"。。。。。。

(2)UNDO : 还原表空间。用于存入重做日志文件。创建还原表空间的语法如下:CREATE UNDOTABLESPACE "SAMPLE"。。。。。。

(3)用户表空间: 最重要,也是用于存放用户数据表空间可以直接写成: CREATE TABLESPACE"SAMPLE"TEMPORARY 和 UNDO 表空间是Oracle 管理的特殊的表空间。只用于存放系统相关数据。

查看表空间的名字和所属文件

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name;

创建表空间:

创建表空间名称为:epet_tablespace

表空间的物理文件位置:E:\oracle\product\10.2.0\oradata\JBITDB\EPET.DBF
大小为100M

CREATE TABLESPACE epet_tablespace

DATAFILE ‘E:\oracle\product\10.2.0\oradata\JBITDB\EPET.DBF‘

SIZE 100M;

修改表空间并为表空间添加物理文件:

ALTER TABLESPACE
JIANGWFTABLESPACE ADD DATAFILE
‘E:\PROJECTS\ZHONGHUA\PROJECT\DATABASE\ZHONGHUA\JIANGWFTABLESPACE2.DBF‘

size   50m;

ALTER
TABLESPACE "TEMPTABLESPACE" ADD DATAFILE ‘E:\PROJECTS\ZHONGHUA\PROJECT\DATABASE\ZHONGHUA\JIANGWFTABLESPACE2.ORA‘

SIZE 5M AUTOEXTEND ON NEXT 100K MAXSIZE
UNLIMITED

增加表空间大小的四种方法

Meathod1:给表空间增加数据文件

ALTER TABLESPACE app_data ADD DATAFILE

‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘
SIZE 50M;

Meathod2:新增数据文件,并且允许数据文件自动增长

ALTER TABLESPACE app_data ADD DATAFILE

‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF‘
SIZE 50M

AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

Meathod3:允许已存在的数据文件自动增长

ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘

AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

Meathod4:手工改变已存在数据文件的大小

ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF‘

RESIZE 100M;

修改物理文件大小

alter database datafile
‘E:\PROJECTS\ZHONGHUA\PROJECT\DATABASE\ZHONGHUA\JIANGWFTABLESPACE3.DBF‘

resize 10M

修改用户表table的表空间

alter table 表名 move tablespace 新表空间名;

查询所有用户表:

select * from user_tables;

删除表空间:

drop tablespace 表空间名称

移动表至另一表空间

alter table move tablespace room1;

建立临时表空间

CREATE TEMPORARY TABLESPACE temp_data

TEMPFILE ‘/oracle/oradata/db/TEMP_DATA.dbf‘
SIZE 50M

设定后查看表空间信息

SELECT A.TABLESPACE_NAME,A.BYTES
TOTAL,B.BYTES USED, C.BYTES FREE,

(B.BYTES*100)/A.BYTES "%
USED",(C.BYTES*100)/A.BYTES "% FREE"

FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED
B,SYS.SM$TS_FREE C

WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME
AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

用户管理:

创建用户

概述:在oracle中要创建一个新的用户使用create
user语句,一般是具有dba(数据库管理员)的权限才能使用。

语法格式:create user 用户名 identified by 密码;

创建用户

create user EPET

identified by "BDQN"

default tablespace "EPET_TABLESPACE"

temporary tablespace "DIAOCHA_TEMP"

profile DEFAULT

ACCOUNT UNLOCK;

给用户赋予某个角色的权限:

grant 角色 to QIUDING;

grant unlimited tablespace to QIUDING

查看当前用户所属角色:

select * from user_role_privs;

查看当前用户的缺省表空间

select username,default_tablespace from
user_users;

查看某用户所拥有的对象:

SELECT owner,object_name, object_type FROM
dba_objects WHERE owner= ‘EPET‘;

查看某用户的所有表:

select * from all_tables where owner=‘SHOPXP‘;--用户名称为“SHOPXP”的所有表

给用户修改密码

概述:如果给自己修改密码可以直接使用

password 用户名

如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限

alter user 用户名 identified by 新密码

删除用户

概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop
user的权限。

比如 drop user 用户名 【cascade】

在删除用户时,注意:

如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;

权限说明:

创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。

角色管理

1.connect角色

connect角色具有一般应用开发人员需要的大部分权限,当建立了一个用户后,多数情况下,只要给用户授予connect和 resource角色就够了,那么connect角色具有哪些系统权限呢?

alter session

create table

create view

create sequence create cluster

create database link

create session

2.resource角色

resource角色具有应用开发人员所需要的其它权限,比如建立存储过程,触发器等。这里需要注意的是 resource角色隐含了unlimited tablespace系统权限。

resource角色包含以下系统权限:

create cluster

create indextype

create table

create sequence  create type

create procedure

create trigger

3.dba角色

dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system,它们可以将任何系统权限授予其他用户。但是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)。

自定义角色.

顾名思义就是自己定义的角色,根据自己的需要来定义。一般是dba来建立,如果用别的用户来建立,则需要具有create role的系统权限。在建立角色时可以指定验证方式(不验证,数据库验证等)。

4:创建角色:

CREATE ROLE "QIUDINGROLE" NOT
IDENTIFIED;

把角色赋予某个用户

GRANT "CONNECT" TO
"QIUDINGROLE";

GRANT "DBA" TO
"QIUDINGROLE";

GRANT "RESOURCE" TO
"QIUDINGROLE";

5:给角色授权:

grant select on scott.emp to 角色名;

grant insert, update, delete on scott.emp
to 角色名;

6:把某个角色的权限赋予某个用户

grant 角色名 to 用户名称

GRANT DBA TO用户名称;

GRANT resource TO用户名称;

7:显示所有角色

SQL> select * from dba_roles;

Oracle表的管理

表名和列的命名规则

· 必须以字母开头

· 长度不能超过30个字符

· 不能使用oracle的保留字

· 只能使用如下字符 A-Z,a-z,0-9,$,#等

oracle支持的数据类型

字符类

char   
定长 最大2000个字符。

例子:char(10)  ‘小韩’前四个字符放‘小韩’,后添6个空格补全 如‘小韩      ’ varchar2(20)  变长  最大4000个字符。

例子:varchar2(10)
‘小韩’ oracle分配四个字符。这样可以节省空间。

clob(character large object) 字符型大对象 最大4G

char 查询的速度极快浪费空间,查询比较多的数据用。

varchar 节省空间

数字型

number范围 -10的38次方 到 10的38次方,可以表示整数,也可以表示小数 :number(5,2)表示一位小数有5位有效数,2位小数

范围:-999.99到999.99

number(5) 
表示一个5位整数

范围99999到-99999

日期类型

date 包含年月日和时分秒   oracle默认格式 
1-1月-1999

timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。

日期类型相关函数和格式转换函数的使用

获取系统日期:  SYSDATE()

格式化日期:    TO_CHAR(SYSDATE(),‘YY/MM/DD HH24:MI:SS)

或        TO_DATE(SYSDATE(),‘YY/MM/DD HH24:MI:SS)

格式化数字:    TO_NUMBER

注:     TO_CHAR 
把日期或数字转换为字符串

TO_CHAR(number, ‘格式‘)

TO_CHAR(salary, ‘$99,999.99‘)

TO_CHAR(date, ‘格式‘)

TO_DATE  把字符串转换为数据库中的日期类型

TO_DATE(char, ‘格式‘)

TO_NUMBER  将字符串转换为数字

TO_NUMBER(char, ‘格式‘)

返回系统日期,输出 25-12月-09

select sysdate from dual;

mi是分钟,输出 2009-12-25 14:23:31

select to_char(sysdate,‘yyyy-MM-dd
HH24:mi:ss‘) from dual;

mm会显示月份,输出 2009-12-25 14:12:31

select to_char(sysdate,‘yyyy-MM-dd
HH24:mm:ss‘) from dual;

输出 09-12-25
14:23:31

select to_char(sysdate,‘yy-mm-dd
hh24:mi:ss‘) from dual

输出 2009-12-25
14:23:31

select to_date(‘2009-12-25
14:23:31‘,‘yyyy-mm-dd,hh24:mi:ss‘) from dual

而如果把上式写作:

select to_date(‘2009-12-25
14:23:31‘,‘yyyy-mm-dd,hh:mi:ss‘) from dual

则会报错,因为小时hh是12进制,14为非法输入,不能匹配。

输出 $10,000,00 :

select to_char(1000000,‘$99,999,99‘) from
dual;

输出
RMB10,000,00 :

select to_char(1000000,‘L99,999,99‘) from
dual;

输出 1000000.12 :

select trunc(to_number(‘1000000.123‘),2)
from dual;

select to_number(‘1000000.123‘) from dual;

转换的格式:

表示 year 的:y 表示年的最后一位

yy 表示年的最后2位 、

yyy 表示年的最后3位 、

yyyy 用4位数表示年

表示month的: mm 用2位数字表示月 、

mon 用简写形式, 比如11月或者nov 、

month 用全称, 比如11月或者november

表示day的: dd  表示当月第几天

ddd 表示当年第几天 、

dy  当周第几天,简写,
比如星期五或者fri 、

day 当周第几天,全称, 比如星期五或者friday

表示hour的:hh   2位数表示小时 12进制 、

hh24 2位数表示小时 24小时

表示minute的:mi 2位数表示分钟

表示second的:ss 2位数表示秒 60进制

表示季度的:q 一位数 表示季度 (1-4)

另外还有ww 用来表示当年第几周 w用来表示当月第几周。

24小时制下的时间范围:00:00:00-23:59:59

12小时制下的时间范围:1:00:00-12:59:59

数字格式:  9  代表一个数字

0  强制显示0

$  放置一个$符

L  放置一个浮动本地货币符

.  显示小数点

,  显示千位指示符

补充:

当前时间减去7分钟的时间

select sysdate,sysdate - interval ‘7‘
MINUTE from dual;

当前时间减去7小时的时间

select sysdate - interval ‘7‘ hour from
dual;

当前时间减去7天的时间

select sysdate - interval ‘7‘ day from
dual;

当前时间减去7月的时间

select sysdate,sysdate - interval ‘7‘ month
from dual;

当前时间减去7年的时间

select sysdate,sysdate - interval ‘7‘ year
from dual;

时间间隔乘以一个数字

select sysdate,sysdate - 8*interval ‘7‘
hour from dual;

图片

blob 二进制数据
可以存放图片/声音 
4G   一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,则放入数据库。

创建表的案例

--创建好了表空间和用户student后

--用student用户登录,就可以创建表了

create table grade

(

gradeid number primary key,

name varchar2(29),

location varchar2(30)

)

--create sequence seq_grade increment by 1
start with 1 nomaxvalue nocycle

--nocache;

--create or replace trigger tri_grade
before insert on grade for each row

--begin

--
select seq_grade.Nextval into:new.gradeid from dual;

--end

insert into grade(gradeid,name,location)
values(1,‘jiangwf‘,‘shenzhen‘);

insert into grade(gradeid,name,location)
values(2,‘zhulei‘,‘shenzhen‘);

insert into grade(gradeid,name,location)
values(3,‘jianghaoyu‘,‘shenzhen‘);

select * from grade

create table 学生表

(

学生编号 number
primary key,

学生姓名
varchar2(50),

学生地址
varchar2(50)

);

insert into 学生表(学生编号,学生姓名,学生地址) values(1,‘jiangwf‘,‘shenzhen‘);

insert into 学生表(学生编号,学生姓名,学生地址) values(2,‘zhulei‘,‘shenzhen‘);

insert into 学生表(学生编号,学生姓名,学生地址) values(3,‘jianghaoyu‘,‘shenzhen‘);

建一个和a表结构一样的空表

create table b as select * from a where
1=2;

create table b(b1,b2,b3) as select a1,a2,a3
from a where 1=2;

创建序列(名称为:myCus_seq)

CREATE SEQUENCE myCus_seq

START WITH 1

INCREMENT BY 1

NOMAXVALUE

CACHE 10;

SQL编程语法:

循环的语句格式:

declare

x number;

begin

x:=0;

loop

x:=x+1;

if x>=3 then

exit;

end if;

dbms_output.put_line(‘内部x=‘||x);

end loop;

dbms_output.put_line(‘外部x=‘||x);

end;

/

-------------------------------------------------------------

begin

for i in 1..5 loop

dbms_output.put_line(‘内部i=‘||i);

end loop;

dbms_output.put_line(‘结束‘);

end;

/

---------------------------------------------------------------

declare

x number;

begin

x:=0;

while x<=3 loop

x:=x+1;

dbms_output.put_line(‘内部x=‘||x);

end loop;

dbms_output.put_line(‘外部x=‘||x);

end;

/

自定义函数和使用

创建函数

Oracle创建函数(function)

1、基本语法规则如下:

create or replace function (Name in type,
Name in type, ...) return number is

Result number;

begin

return (Result);

end ;

----例子---------------------------------------------------------------------

create or replace function getmastername(uid
number) return varchar2

as

mname varchar2(50);

begin

select 
loginid into mname from master where master.id=uid;

return mname;

end;

案例1:

create or replace function
jiangwf.getUserName(userid varchar2)

return varchar2

is

uName varchar2(50);

begin

select nvl(UserName,‘‘) into uName from
jiangwf.UserInfo where UserNo=userid;

return uName;

end;

调用函数

select jiangwf.getUserName(UserNo),jiangwf.UserInfo.UserPWD
from jiangwf.UserInfo

*********************************************************************************************

案例2:

创建函数

create or replace function
jiangwf.getUserPWD(userid varchar2)

return varchar2

is

UserPassWord varchar2(50);

begin

select nvl(UserPWD,‘‘) into UserPassWord
from jiangwf.UserInfo where UserNo=userid;

return UserPassWord;

end;

调用:

select
jiangwf.UserInfo.*,jiangwf.getUserPWD(UserNo) from jiangwf.UserInfo;

存储过程相关:

1、基本语法

create or replace procedure update_emp_sal

(Name in out type,

Name
in out type, ...

) is

begin

end update_emp_sal;

写一个简单的例子修改emp表的ename字段

create or replace procedure update_emp

(

v_empno 
varchar2,

v_ename 
varchar2

) is

begin

update emp set
ename=v_ename where empno=v_empno;

end update_emp;

调用方法如下:

exec 
update_emp(‘7935‘,‘test‘);

有返回值的存储过程

就写一个简单的返回empno=7935的sal值

create or replace procedure emp_out_sal

(

v_empno in varchar2,

v_sal out number

) is

vsal
number(7,2);

begin

select sal into vsal from emp where
empno=v_empno;

v_sal:=vsal;

end;

调用有返回值的过程

var vsal number

exec emp_out_sal(‘7935‘,:vsal);

PL/SQL procedure successfully completed

vsal

---------

700

SQL> var vsal number

SQL> call emp_out_sal(‘7935‘,:vsal);

Method called

vsal

---------

700

Oracle创建包

概述:

包用于组合逻辑相关的过程和函数,它由包规范和包体两个部分组成。包规范用于定义公用的常量、变量、过程和函数,创建包规范可以使用CREATE PACKAGE命令,创建包体可以使用CREATE PACKAGE BODY

1、创建包规范

create package emp_pkg is

procedure emp_update_ename(v_empno
varchar2,v_ename varchar2);

function emp_get_sal(v_empno varchar2) return
number;

end;

创建包体

create or replace package body emp_pkg

is

procedure emp_update_ename

(

v_empno varchar2,

v_ename varchar2

)

is

vename varchar2(32);

begin

update emp set ename=v_ename where empno=v_empno;

commit;

select ename into vename from emp where empno=v_empno;

dbms_output.put_line(‘雇员名称:‘||vename);

end;

function emp_get_sal

(

v_empno varchar2

)

return number is

vsal number(7,2);

begin

select sal into vsal from emp where empno=v_empno;

return vsal;

end;

end;

在此提示,在没有创建包规范就创建包体,会失败,要使用包,必须先创建包规范,然后在创建包体

当要调用包的过程和函数时,在过程和函数的名称前加上包名作为前缀(包名.子程序名称),而如果要访问其他方案的包时需要在包的名称前加上方案的名称(方案名称.包名.子程序名称)

实例:

SQL> var vsla number

SQL> call emp_pkg.emp_get_sal(‘7935‘)
into :vsal;

Method called

vsal

---------

700

SQL> exec
emp_pkg.emp_update_ename(‘7935‘,‘helong‘);

雇员名称:helong

SQL> call
emp_pkg.emp_update_ename(‘7935‘,‘helong‘);

Method called

SQL> select * from dual;

DUMMY

-----

X

用pl/sql developer导出表结构和数据

1、点击Tools--Export
User Objects

这种方式可以导出当前用户拥有的所有对象,包括表、视图、触发器、同义词等等,对于表,只能导出表结构,不能导出数据,选中要导出的对象,设置好导出的路径和各个参数后,点击Export就OK

PS:这种方式还可以导出其他用户的对象,在下面user下拉框中选择要用户就可以,默认是系统当前登录用户

2、如果想将表中数据一起导出,可用Tools--Export Tables:

这种方式导出的文件,本身就带着创建表结构的sql语句 选中要导出的表(可选多个),导出方式有三种:

Oracle Export,Sql Insert,pl/sql developer

第一种是导出为.dmp的文件:

.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广

第二种是导出为.sql文件:

可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob),如果有,会提示不能导出,可以用第一种和第三种方式导出。

第三种是导出为.pde格式:

.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样

PS:只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。
导入的情况和导出一样

时间: 2024-11-08 04:42:22

oracle的常规操作(基本命令)的相关文章

数据库mysql的常规操作

1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增.截取.更新.删除等操作. 严格来说,数据库是长期储存在计算机内.有组织的.可共享的数据集合.数据库中的数据指的是以一定的数据模型组织.描述和储存在一起.具有尽可能小的冗余度.较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享. 2.  为什么需要使用数据库? 假设这样一个场景,需

Oracle 数据库常用操作语句大全

Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.根据删除的时间查询出被删除的数据 select * from szdj_work_plan AS OF TIMESTAMP TO_TIMESTAMP('2018-1-19 16:51:37', 'yyyy-mm-dd hh24:mi:ss') where subject='测试一下删除0119' 1.表中唯一的最大的值 select hibernate_sequence.nextval from dual 1.创建数据库 cr

postgres 常规操作杂记

分布式:1.扩容不方便(数据重分布)2.分布键变更很麻烦3.分布键选择(架构设计)谨慎4.跨库join性能差5.分布式事务性能差6.sql限制多,功能确实多7.应用改造成本巨大8.全局一致性时间点恢复几乎不可能实现 一.PGSQL 常规操作citus 分库分表:https://yq.aliyun.com/articles/647368?spm=a2c4e.11153940.0.0.428c3fb76WPkVXhttp://mysql.taobao.org/monthly/2018/01/08/备

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

ORACLE 导入导出操作

1.导入命令: imp userId/[email protected] full=y  file=D:\data\xxx.dmp ignore=y 2.导出命令 exp userId/[email protected] file=d:\dkj\test.dmp tables=(wf_test) exp userId/[email protected] buffer=50000000 file=D:\data\xxx.dmp owner=userId 1.在安装完ORACLE 11g后,在sql

Apache服务器常规操作

导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服务器的安装 一般情况下,Apache随Linux系统一起安装.安装时,选择Web Server组件,即可在系统中安装Apache.用户的工作主要是配置服务器. 检查系统中是否已经安装Apache 在Red Hat Linux下,用户可以执行以下命令查看系统中是否存在Apache及其版本: [[ema

GIT 的常规操作

GIT 的常规操作 常规操作也是我自己平时常用的几个命令, 学自于 pro git 这本书中 git 配置文件 git的配置文件位置 针对所有用户:/etc/gitconfig 针对当前用户: -/.gitconfig 查看配置的方法 git config --list 修改配置的方法 git config --global user.name "wangyubin" (修改的是-/.gitconfig) git config --system user.name "wang

oracle数据库误操作把表删除了,怎样恢复

一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询被删除的表 select * from recyclebin 2.执行表的恢复 flashback table tb to before drop,这里的tb代表你要恢复的表的名称. 二:表数据恢复 对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有: 1.先从flashback_transact

征服 Redis + Jedis + Spring (一)—— 配置&amp;常规操作(GET SET DEL)

有日子没写博客了,真的是忙得要疯掉. 完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: 征服 Redis 征服 Redis + Jedis 征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL) 征服 Redis + Jedis + Spring (二)—— 哈希表操作(HMGET HMSET) 征服 Redis + Jedis + Spring (三)—— 列表操作 前文有述