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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM