真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle函數(shù)如何導(dǎo)出,oracle導(dǎo)出存儲(chǔ)過(guò)程和函數(shù)

oracle 如何把數(shù)據(jù)庫(kù)查詢(xún)結(jié)果導(dǎo)出

1、打開(kāi)oracle數(shù)據(jù)庫(kù),點(diǎn)擊登陸選項(xiàng),點(diǎn)擊文件選項(xiàng),點(diǎn)擊新建選項(xiàng),最后點(diǎn)擊sql窗口;

創(chuàng)新互聯(lián)公司公司2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元浉河做網(wǎng)站,已為上家服務(wù),為浉河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

2、然后在sql窗口中進(jìn)行編寫(xiě)sql語(yǔ)句的操作,勇sql語(yǔ)句進(jìn)行查詢(xún)出想要導(dǎo)出來(lái)的數(shù)值;

3、然后在查詢(xún)出來(lái)數(shù)據(jù)的地方,不要選中數(shù)據(jù),把鼠標(biāo)放到空白單元格處進(jìn)行鼠標(biāo)右鍵操作,找到復(fù)制到Excel選項(xiàng);

4、然后在復(fù)制到excel中選擇想要保存的格式--作為xls保存,打開(kāi)后則是excel形式的數(shù)據(jù);

5、默認(rèn)的保存路徑--將鼠標(biāo)放在excel名稱(chēng)上--會(huì)出現(xiàn)路徑--根據(jù)路徑打開(kāi)即可。

oracle中如何把查詢(xún)結(jié)果導(dǎo)出到excel里面

oracle導(dǎo)出excel

一、oracle導(dǎo)出excel

方法一:最簡(jiǎn)單的方法---用工具plsql dev

執(zhí)行File =newReport Window 。在sql標(biāo)簽中寫(xiě)入需要的sql,點(diǎn)擊執(zhí)行或按快捷鍵F8,會(huì)先吃出查詢(xún)結(jié)果。在右側(cè)工具欄,可以選擇按鈕另存為html、copy as html、exportresults,其中export results按鈕中就可以導(dǎo)出excel文件、csv文件、tsv文件、xml文件。

方法二:最專(zhuān)業(yè)的方法---用原始工具sqlplus

原文參見(jiàn):

我做了一點(diǎn)修改,如下所示:

1.main.sql

用以設(shè)置環(huán)境,調(diào)用具體功能腳本

2.功能腳本-get_tables.sql

為實(shí)現(xiàn)具體功能之腳本

通過(guò)這樣兩個(gè)腳本可以避免spool中的冗余信息,參考:

如何去除SQLPLUS中SPOOL的冗余信息

示例如下:

1.main.sql腳本:

[oracle@jumper utl_file]$ more main.sql

set linesize 200

set term off verify off feedback off pagesize 999

set markup html on entmap ON spool on preformat off

spool d:/tables.xls

@d:/get_tables.sql

spool off

exit

2.get_tables.sql腳本:

[oracle@jumper utl_file]$ more get_tables.sql

select owner,table_name,tablespace_name,blocks,last_analyzed

from all_tables order by 1,2;

3.執(zhí)行并獲得輸出:

[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @d:/main.sql

SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

[oracle@jumper utl_file]$ ls -l tables.xls

-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls

[oracle@jumper utl_file]$

此處輸出為xls文件,通過(guò)下圖我們可以看到輸出效果:

把main.sql腳本中的,spooltables.xls更改為spool tables.htm,我們可以獲得htm格式輸出,效果如下圖:

方法三:最悲劇的方法,之所以稱(chēng)為悲劇,是因?yàn)檫@個(gè)方法其實(shí)很簡(jiǎn)單,但是你可能沒(méi)有注意。

打開(kāi)plsql dev工具,執(zhí)行file=newsql window ,輸入sql,點(diǎn)擊工具欄“執(zhí)行”按鈕或按快捷鍵F8。會(huì)顯示出結(jié)果集。

點(diǎn)擊結(jié)果集的左上方,可全部選中結(jié)果集,然后右鍵=copy,直接粘貼到excel文件中就可以了!

方法四:最努力的方法,這種方法稍微有點(diǎn)麻煩,但不用寫(xiě)腳本,也不用psql dev工具,只用sql plus就可以了。

在sqlplus中,執(zhí)行想要的sql,把結(jié)果集copy到文本文件中(或者直接用spool命令直接輸入到文本文件中),把不必要的字符、空格替換成逗號(hào)",",然后另存為csv文件,最后在用excel另存為exl文件就可以了。

二、把excel文件數(shù)據(jù)導(dǎo)入到oracle的某個(gè)表中。

方法一:最省時(shí)的方法,需要借助plsql dev工具。

a.復(fù)制整個(gè)工作簿中的數(shù)據(jù)到某個(gè)表中。

點(diǎn)擊excel工作區(qū)左上角,全部選中數(shù)據(jù),ctrl+c 復(fù)制整個(gè)工作簿中的數(shù)據(jù)。在plsql dev中,編輯表格表的數(shù)據(jù),點(diǎn)擊數(shù)據(jù)展示區(qū)左上角,直接粘貼就可以了(注意excel的第一列應(yīng)該保持為空,如果不為空可以增加一空列,不然你復(fù)制的數(shù)據(jù)就會(huì)少一列的)!如下圖

所示:

b.復(fù)制某列的數(shù)據(jù)。

這個(gè)很容易,選中excel某一列的數(shù)據(jù),復(fù)制,選中oracle某個(gè)表的某一列,直接粘貼就可以了。plsql dev和excel中的列可以相互復(fù)制。

方法二:最專(zhuān)業(yè)的方法,用sql loader。

原文地址:

1.錄入excel 測(cè)試表格,test.xls。

2.另存為.csv格式

3.創(chuàng)建sql*loader控制文件test.ctl,內(nèi)容如下:

Load data

Infile 'c:/test.csv'

insert Into table test Fields terminated by','(column1,column2,column3,column4,column5)

需要將數(shù)據(jù)文件拷貝到對(duì)應(yīng)位置

4.到數(shù)據(jù)庫(kù)中建立對(duì)應(yīng)的測(cè)試表test

create table test (

column1 Varchar2(10),

column2 Varchar2(10),

column3 Varchar2(10),

column4 Varchar2(10),

column5 Varchar2(10)

)

5.執(zhí)行導(dǎo)入命令

Sqlldr userid = system/manager control='C:/test.ctl'

導(dǎo)入成功!

附:

Sqlldr的函數(shù)關(guān)鍵字說(shuō)明:

Userid --oracle用戶(hù)名 userid = username/password

Control --控制文件名稱(chēng) control =‘e:/insert.ctl’

Log –-日志文件名稱(chēng) log = ‘e:/insert.log’

Bad --損壞文件名稱(chēng)

Data --data file name

Discard --discard file name

Discardmax --number of discards to allow(默認(rèn)全部)

Skip --導(dǎo)入時(shí)跳過(guò)的記錄行數(shù)(默認(rèn)0)

Load --導(dǎo)入時(shí)導(dǎo)入的記錄行數(shù)(默認(rèn)全部)

Errors --允許錯(cuò)誤的記錄行數(shù)(默認(rèn)50)

ctl文件內(nèi)容說(shuō)明:

Load data

Infile ‘e:/test.csv’ --數(shù)據(jù)源文件名稱(chēng)

Append|insert|replace --append在表后追加,insert插入空表,replace替代原有內(nèi)容

Into table test --要導(dǎo)入的數(shù)據(jù)庫(kù)表名稱(chēng)

[when id = id_memo] --過(guò)濾條件

Fields terminated by X’09’ --字段分隔符

(id,name,telphone) --字段名稱(chēng)列表

方法三:最悲劇的方法,創(chuàng)建oracle外部表,為了把excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)中而去建立外部表,大題小做了!

將excel文件另存為csv文件a.csv,然后創(chuàng)建一個(gè)外部表t,數(shù)據(jù)指向a.csv。然后根據(jù)外部表創(chuàng)建一個(gè)普通的表:

create table a asselect * from t ,這樣就可以把最初的excel文件導(dǎo)入到oracle中的表了。

方法四:最古典的方法,拼接sql語(yǔ)句。如果你excel熟的話,這種方法也不錯(cuò)。

在excel中,把數(shù)據(jù)拼接成如下sql語(yǔ)句:

insert into empvalues('1','2','3');

insert into empvalues('4','5','6');

insert into empvalues('7','8','9');

copy 出以上sql,執(zhí)行就可以了??!

如果需要從oracle中每天定時(shí)導(dǎo)出數(shù)據(jù)用什么方法?

1、創(chuàng)建數(shù)據(jù)庫(kù)日志表導(dǎo)出為文本文件的腳本tabout.ctl或tabout.sql

注意:該日志導(dǎo)出后在c:\HttpLog目錄下

tabout.ctl腳本內(nèi)容如下:

SET NEWPAGE NONE

SET HEADING OFF

SET TERM OFF

SET SPACE 0

SET PAGESIZE 0

SET TRIMOUT ON

SET TRIMSPOOL ON

SET LINESIZE 2500

set feedback off

set echo off

SET VERIFY OFF

column v_date new_value filename;

select to_char(sysdate,'yyyymmdd') || '.log' v_date from dual;

spool ..\HttpLog\filename ? ? ? ? ? ?

select id||','||name from orcluser.test;

spool off;

exit;

2、創(chuàng)建調(diào)用該腳本的logout.bat文件

logout.bat內(nèi)容如下:

mkdir ..\HttpLog\

C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl

說(shuō)明:該bat文件直接在當(dāng)前目錄下創(chuàng)建名為HttpLog的文件夾,以便tabout.ctl腳本輸出的文件存放到該目錄下。其通過(guò)調(diào)用Oracle中sqlplus可執(zhí)行文件來(lái)執(zhí)行tabout.ctl腳本,所以該文件直接雙擊即可運(yùn)行,無(wú)需其他操作。

3、通過(guò)windows定時(shí)任務(wù)實(shí)現(xiàn)自動(dòng)定期執(zhí)行

“在控制面板——任務(wù)計(jì)劃——添加任務(wù)計(jì)劃”中建立定期將數(shù)據(jù)庫(kù)中日志表數(shù)據(jù)導(dǎo)出為文本格式(如:你可以根據(jù)需求設(shè)置為每天對(duì)日志表數(shù)據(jù)進(jìn)行導(dǎo)出)。根據(jù)你當(dāng)前對(duì)日志文件路徑的存儲(chǔ)需求,修改上面兩個(gè)腳本中的存儲(chǔ)路徑,在windows定時(shí)任務(wù)直接調(diào)用logout.bat文件執(zhí)行即可。

oracle怎么導(dǎo)出數(shù)據(jù)

Oracle導(dǎo)出導(dǎo)出有兩中方式:一、利用exp imp導(dǎo)出導(dǎo)入;二、利用Oracel數(shù)據(jù)泵expdp impdp導(dǎo)出導(dǎo)入。

一、利用exp imp導(dǎo)出導(dǎo)入

exp imp 語(yǔ)法如下:

exp:

1) 將數(shù)據(jù)庫(kù)orcl完全導(dǎo)出

exp system/manager@orcl file=d:\orcl_bak.dmp full=y

2) 將數(shù)據(jù)庫(kù)中system用戶(hù)的表導(dǎo)出

exp system/manager@orcl file=d:\system_bak.dmp owner=system

3) 將數(shù)據(jù)庫(kù)中表table1,table2導(dǎo)出

exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)

4) 將數(shù)據(jù)庫(kù)中的表customer中的字段mobile以"139"開(kāi)頭的數(shù)據(jù)導(dǎo)出

exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\"where mobile like '139%' \"

imp:

1) 將備份文件bak.dmp導(dǎo)出數(shù)據(jù)庫(kù)

imp system/manager@orcl file=d:\bak.dmp

如果數(shù)據(jù)表中表已經(jīng)存在,會(huì)提示錯(cuò)誤,在后面加上ignore=y就可以了。

2) 將備份文件bak.dmp中的表table1導(dǎo)入

imp system/manager@orcl file=d:\bak.dmp tables=(table1)

exp imp導(dǎo)出導(dǎo)入數(shù)據(jù)方式的好處是只要你本地安裝了Oracle客戶(hù)端,你就可以將服務(wù)器中的數(shù)據(jù)導(dǎo)出到你本地計(jì)算機(jī)。同樣也可以將dmp文件從你本地導(dǎo)入到服務(wù)器數(shù)據(jù)庫(kù)中。但是這種方式在Oracle11g版本中會(huì)出現(xiàn)一個(gè)問(wèn)題:不能導(dǎo)出空表。Oracle11g新增了一個(gè)參數(shù)deferred_segment_creation,含義是段延遲創(chuàng)建,默認(rèn)是true。當(dāng)你新建了一張表,并且沒(méi)用向其中插入數(shù)據(jù)時(shí),這個(gè)表不會(huì)立即分配segment。

解決辦法:

1、設(shè)置deferred_segment_creation參數(shù)為false后,無(wú)論是空表,還是非空表,都分配segment。

在sqlplus中,執(zhí)行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

該值設(shè)置后,只對(duì)后面新增的表起作用,對(duì)之前建立的空表不起作用,并且注意要重啟數(shù)據(jù)庫(kù)讓參數(shù)生效。

2、使用 ALLOCATE EXTEN

使用 ALLOCATE EXTEN可以為數(shù)據(jù)庫(kù)對(duì)象分配Extent,語(yǔ)法如下:

alter table table_name allocate extent

構(gòu)建對(duì)空表分配空間的SQL命令:

SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

批量生成要修改的語(yǔ)句。

然后執(zhí)行這些修改語(yǔ)句,對(duì)所有空表分配空間。

此時(shí)用exp命令,可將包括空表在內(nèi)的所有表導(dǎo)出。

二、利用expdp impdp導(dǎo)出導(dǎo)入

在Oracle10g中exp imp被重新設(shè)計(jì)為Oracle Data Pump(保留了原有的 exp imp工具)

數(shù)據(jù)泵與傳統(tǒng)導(dǎo)出導(dǎo)入的區(qū)別;

1) exp和imp是客戶(hù)端工具,他們既可以在客戶(hù)端使用,也可以在服務(wù)端使用。

2) expdp和impdp是服務(wù)端工具,只能在Oracle服務(wù)端使用。

3) imp只適用于exp導(dǎo)出文件,impdp只適用于expdp導(dǎo)出文件。

expdp導(dǎo)出數(shù)據(jù):

1、為輸出路徑建立一個(gè)數(shù)據(jù)庫(kù)的directory對(duì)象。

create or replace directory dumpdir as 'd:\';

可以通過(guò):select * from dba_directories;查看。

2、給將要進(jìn)行數(shù)據(jù)導(dǎo)出的用戶(hù)授權(quán)訪問(wèn)。

grant read,write on directory dumpdir to test_expdp;

3、將數(shù)據(jù)導(dǎo)出

expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp

注意:這句話在cmd窗口中運(yùn)行,并且最后不要加分號(hào),否則會(huì)提示錯(cuò)誤。因?yàn)檫@句話是操作系統(tǒng)命令而不是SQL。

impdp導(dǎo)入數(shù)據(jù):

1、給將要進(jìn)行數(shù)據(jù)導(dǎo)入的用戶(hù)授權(quán)訪問(wèn)。

grant read,write on directory dumpdir to test_impdp;

2、將數(shù)據(jù)導(dǎo)入

impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp

oracle怎么導(dǎo)出function和procedure,即函數(shù)和存儲(chǔ)過(guò)程

使用oracle的一般都裝了PL/SQL吧,對(duì)象窗口,找到對(duì)應(yīng)的函數(shù)或者存儲(chǔ)過(guò)程,右鍵查看或編輯。

一般單個(gè)我是這么用,如果很多的話可以參考一下網(wǎng)上提供的方法:

oracle 導(dǎo)出一個(gè)用戶(hù)下的所有存儲(chǔ)過(guò)程

方法一:

set echo off ;

set heading off ;

set feedback off ;

spool d:\tmp.txt

select text from user_source ;

spool off;

方法二:

使用PL/SQL 菜單 Tools -- Export user objects... ,對(duì)彈出的dialog中選擇user和output file,選中要導(dǎo)出的內(nèi)容,點(diǎn)擊export導(dǎo)出就行了


文章題目:oracle函數(shù)如何導(dǎo)出,oracle導(dǎo)出存儲(chǔ)過(guò)程和函數(shù)
標(biāo)題鏈接:http://weahome.cn/article/dsdhide.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部