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/pwd@//host:port/sid 如:conn sys/admin@127.0.0.1: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”方式導出再導入后,表結構和索引結構沒有發生變化,另兩種方式都改變了索引類型。 導入的情況和導出一樣