當前位置:首頁 » 編程語言 » oraclesql結果輸出
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oraclesql結果輸出

發布時間: 2023-06-10 23:03:12

『壹』 oracle中運行.sql文件的日誌怎麼輸出

批量執行sql文件並輸出執行日誌

1、建立betchinsert.bat文件。內容:sqlplus username/password@服務名 @BETCH.SQL > SQLINSERT.log exit

2、建立betah.sql文件。內容:
@@nkgis.sql\AE_USERS.sql
@@nkgis.sql\AE_ROLES.sql
@@nkgis.sql\AE_MENUS.sql

可以寫多個sql文件,注意路徑要正確。在這里的nkgis.sql是文件夾名

3、建立相應的sql文件,如AE_USERS.sql

4、執行betchinsert.bat就可以執行所有的sql文件。並且會在betchinsert.bat文件的同目錄中生成SQLINSER.log文件。
執行結束後會自動退出.

『貳』 oracle pl/sql 語句declare..begin..and.. 執行後沒有顯示結果,只有pl/sql執行成功,怎樣顯示出結果

可以通過dbms_output.put_line()將結果輸出
括弧中寫字元串變數,或字元串。
執行後,在sql窗口的 輸出頁面查看輸出結果。

解決後記得採納。

『叄』 oracle存儲過程如何輸出信息

可用DBMS_OUTPUT.PUT_LINE()對存儲過程的進行輸出。

編寫存儲過程:

create or replace procere test_pro(in_num number)

as

M number;

begin

M := in_num;

if 0 < M then

dbms_output.put_line('輸出SQL語句1');

elsif M < 3 then

dbms_output.put_line('輸出SQL語句2');

else

dbms_output.put_line('nothing');

end if;

end;

(3)oraclesql結果輸出擴展閱讀;

存儲在資料庫的數據字典中,存儲在當前的應用中安全性由資料庫提供安全保證,必須通過授權才能使用存儲子程序,安全性靠應用程序來保證,如果能執行應用程序,就能執行該子程序。模式描述IN參數用來從調用環境中向存儲過程傳遞值,不能給IN參數賦值,給此參數傳遞的值可以是常量、有值的變數、表達式等。

『肆』 oracle中如何把查詢結果導出到excel裡面

oracle導出excel
一、oracle導出excel

方法一:最簡單的方法---用工具plsql dev
執行File =>newReport Window 。在sql標簽中寫入需要的sql,點擊執行或按快捷鍵F8,會先吃出查詢結果。在右側工具欄,可以選擇按鈕另存為html、 as html、exportresults,其中export results按鈕中就可以導出excel文件、csv文件、tsv文件、xml文件。

方法二:最專業的方法---用原始工具sqlplus
原文參見:http://www.eygle.com/archives/2005/04/eoasqlplusieaae.html
我做了一點修改,如下所示:

1.main.sql
用以設置環境,調用具體功能腳本
2.功能腳本-get_tables.sql
為實現具體功能之腳本
通過這樣兩個腳本可以避免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.執行並獲得輸出:

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

SQL*Plus: Release 9.2.0.4.0 - Proction 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 - Proction

With the Partitioning option

JServer Release 9.2.0.4.0 - Proction

Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Proction

With the Partitioning option

JServer Release 9.2.0.4.0 - Proction

[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文件,通過下圖我們可以看到輸出效果:

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

方法三:最悲劇的方法,之所以稱為悲劇,是因為這個方法其實很簡單,但是你可能沒有注意。
打開plsql dev工具,執行file=>newsql window ,輸入sql,點擊工具欄「執行」按鈕或按快捷鍵F8。會顯示出結果集。
點擊結果集的左上方,可全部選中結果集,然後右鍵=>,直接粘貼到excel文件中就可以了!

方法四:最努力的方法,這種方法稍微有點麻煩,但不用寫腳本,也不用psql dev工具,只用sql plus就可以了。
在sqlplus中,執行想要的sql,把結果集到文本文件中(或者直接用spool命令直接輸入到文本文件中),把不必要的字元、空格替換成逗號",",然後另存為csv文件,最後在用excel另存為exl文件就可以了。

二、把excel文件數據導入到oracle的某個表中。

方法一:最省時的方法,需要藉助plsql dev工具。
a.復制整個工作簿中的數據到某個表中。
點擊excel工作區左上角,全部選中數據,ctrl+c 復制整個工作簿中的數據。在plsql dev中,編輯表格表的數據,點擊數據展示區左上角,直接粘貼就可以了(注意excel的第一列應該保持為空,如果不為空可以增加一空列,不然你復制的數據就會少一列的)!如下圖
所示:

b.復制某列的數據。
這個很容易,選中excel某一列的數據,復制,選中oracle某個表的某一列,直接粘貼就可以了。plsql dev和excel中的列可以相互復制。

方法二:最專業的方法,用sql loader。

原文地址:http://daniel-wuz.javaeye.com/blog/198112

1.錄入excel 測試表格,test.xls。
2.另存為.csv格式
3.創建sql*loader控制文件test.ctl,內容如下:
Load data
Infile 'c:/test.csv'
insert Into table test Fields terminated by','(column1,column2,column3,column4,column5)

需要將數據文件拷貝到對應位置

4.到資料庫中建立對應的測試表test

create table test (
column1 Varchar2(10),
column2 Varchar2(10),
column3 Varchar2(10),
column4 Varchar2(10),
column5 Varchar2(10)
)

5.執行導入命令
Sqlldr userid = system/manager control='C:/test.ctl'

導入成功!

附:
Sqlldr的函數關鍵字說明:
Userid --oracle用戶名 userid = username/password
Control --控制文件名稱 control =『e:/insert.ctl』
Log –-日誌文件名稱 log = 『e:/insert.log』
Bad --損壞文件名稱
Data --data file name
Discard --discard file name
Discardmax --number of discards to allow(默認全部)
Skip --導入時跳過的記錄行數(默認0)
Load --導入時導入的記錄行數(默認全部)
Errors --允許錯誤的記錄行數(默認50)

ctl文件內容說明:
Load data
Infile 『e:/test.csv』 --數據源文件名稱
Append|insert|replace --append在表後追加,insert插入空表,replace替代原有內容
Into table test --要導入的資料庫表名稱
[when id = id_memo] --過濾條件
Fields terminated by X』09』 --欄位分隔符
(id,name,telphone) --欄位名稱列表

方法三:最悲劇的方法,創建oracle外部表,為了把excel中的數據導入到數據中而去建立外部表,大題小做了!
將excel文件另存為csv文件a.csv,然後創建一個外部表t,數據指向a.csv。然後根據外部表創建一個普通的表:
create table a asselect * from t ,這樣就可以把最初的excel文件導入到oracle中的表了。

方法四:最古典的方法,拼接sql語句。如果你excel熟的話,這種方法也不錯。
在excel中,把數據拼接成如下sql語句:
insert into empvalues('1','2','3');
insert into empvalues('4','5','6');
insert into empvalues('7','8','9');

出以上sql,執行就可以了!!

『伍』 OraclePLSQL在游標中用while循環為什麼沒有結果輸出

@@fetch_status=0 是游標提取數據失敗,即數據提取結束到最後了。
游標主要作用是,操作SQL查詢結果集。
以下為典型游標的應用:
create proc cursorTest
@_id int=0,
@_name varchar(50)=''
as--創建游標
declare @cursor cursor--設定游標欲操作的數據集
set @cursor=cursor for
select _id,_name from users
open @cursor--打開游標
fetch next from @cursor into @_id,@_name--移動游標指向到第一條數據,提取第一條數據存放在變數中
while(@@fetch_status=0)begin--如果上一次操作成功則繼續循環
print @_name--操作提出的數據
fetch next from @cursor into @_id,@_name--繼續提下一行
end
close @cursor--關閉游標
deallocate @cursor--刪除游標

『陸』 oracle sql developer輸出結果如何以表格顯示

輸出結果可以用表格顯示,也可以用文檔顯示。