當前位置:首頁 » 存儲配置 » 存儲過程輸出表

存儲過程輸出表

發布時間: 2023-04-21 18:08:28

A. 如何用sql2005的存儲過程導出EXECL表,急,線上等

導出查詢中的數據到Excel,包含欄位名,文件為真正的Excel文件
,如果文件不存在,將自動創建文件
,如果表不存在,將自動創建表
基於通用性考慮,僅支持導出標准數據類型
--*/
/**//*--調用示例
p_exporttb @sqlstr='select * from 地區資料' ,@path='c:',@fname='aa.xls',@sheetname='地區資料'
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and
OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_exporttb]
GO
create proc p_exporttb
@sqlstr sysname, --查詢語句,如果查詢語句中使用了order by ,請加上top 100 percent,注意,如果導 出表/視圖,用友喊祥上面的存儲過程
@path nvarchar(1000), --文件存放目錄
@fname nvarchar(250), --文滲兆件名
@sheetname varchar(250)='' --要創建的工作表名,默認為文件名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)
--參數檢測
if isnull(@fname,'')='' set @fname='temp.xls'
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')
--檢查文件是否已經存在
if right(@path,1)<>'' set @path=@path+''
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
--資料庫創建語句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'
+';CREATE_DB="'+@sql+'";DBQ='+@sql
else
set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES' +';DATABASE='+@sql+'"'
--連接資料庫
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@constr
if @err<>0 goto lberr
--創建表的SQL
declare @tbname sysname
set @tbname='##tmp_'+convert(varchar(38),newid())
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'
exec(@sql)
select @sql='',@fdlist=''
select @fdlist=@fdlist+','+a.name
,@sql=@sql+',['+a.name+'] '
+case when b.name in('char','nchar','varchar','好搏nvarchar') then
'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')'
when b.name in('tynyint','int','bigint','tinyint') then 'int'
when b.name in('smalldatetime','datetime') then 'datetime'
when b.name in('money','smallmoney') then 'money'
else b.name end
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in
('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')
and a.id=(select id from tempdb..sysobjects where name=@tbname)
select @sql='create table ['+@sheetname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)
exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err<>0 goto lberr
exec @err=sp_oadestroy @obj

--導入數據
set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from['+@tbname+']')
set @sql='drop table ['+@tbname+']'
exec(@sql)
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 錯誤號 ,@src as 錯誤源,@desc as 錯誤描述
select @sql,@constr,@fdlist
go

B. 如何在sql2008中建立存儲過程,要求輸入年月,輸出該月庫存檔點報表

create proc report @date as datetime
as
select * from 庫存檔點報表 where 年月=@date

C. 在MySQL中如何創建一個帶輸出參數為一個表類型的存儲過程

在MySQL中如何創建一個帶輸出參數為一個表類型的存儲過程
首先需要知道「另一個存儲過程」的結果集的所有列的類型。
假設「另一個存儲過程」的名字是sp1,沒有參數,返回的結果集共3列,全部為int型,那麼「存儲過程」里添加一個與結果集列數相同的臨時表或表變數用於接收「另一個存儲過程」的結果集
如下
CREATE
PROCEDURE
sp2
AS
DECLARE
@t
table(a
int,b
int,c
int)
INSERT
INTO
@t(a,b,c)
EXEC
sp1
SELECT
*
FROM
@t
使用SQLSERVER存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現已得到廣泛應用。
創建存儲過程
和數據表一樣,在使用之前需要創建存儲過程,它的簡明語法是:
引用:
Create
PROC
存儲過程名稱
[參數列表(多個以「,」分隔)]
AS
SQL
語句
例:
引用:
Create
PROC
upGetUserName
@intUserId
INT,
@ostrUserName
NVARCHAR(20)
OUTPUT
--
要輸出的參數
AS
BEGIN
--
將uName的值賦給
@ostrUserName
變數,即要輸出的參數
Select
@ostrUserName=uName
FROM
uUser
Where
uId=@intUserId
END
其中
Create
PROC
語句(完整語句為Create
PROCEDURE)的意思就是告訴SQL
SERVER,現在需要建立一個存儲過程,upGetUserName
就是存儲過程名稱,@intUserId

@ostrUserName
分別是該存儲過程的兩個參數,注意,在SQL
SERVER中,所有用戶定義的變數都以「@」開頭,OUTPUT關鍵字表示這個參數是用來輸出的,AS之後就是存儲過程內容了。只要將以上代碼在「查詢分析器」里執行一次,SQL
SERVER就會在當前資料庫中創建一個名為「upGetUserName」的存儲過程。你可以打開「企業管理器」,選擇當前操作的資料庫,然後在左邊的樹型列表中選擇「存儲過程」,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。
二、存儲過程的調用
之前已經創建了一個名為「upGetUserName」的存儲過程,從字面理解該存儲過程的功能是用來取得某一個用戶的名稱。存儲過程建立好了,接下來就是要在應用程序里調用了,下面看一下在ASP程序里的調用。

D. java調用sqlserver的存儲過程如何輸出一個表的全部記錄,既在控制台上列印出來

是要輸出表結構信息 還是 輸出表數據?
如果是結構信息豎搜凳的話調用:sp_help ,是sqlserver自帶的存儲過程。余旅
如果是表數據的話,那就像查詢一樣嘛。漏正

E. 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;

(5)存儲過程輸出表擴展閱讀;

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

F. 請教高人解決SQL存儲過程的問題,把多次執行的結果集在一張表中輸出。

要麼建個表,把結果寫入表內,然後查詢。要麼把兩次的參數放一起一次執行。

G. 如何在sql中建立存儲過程:某月庫存狀況,並要求輸入:年月,輸出:該月庫存月結報表

這和庫存表的欄位有關,如果庫存表中沒有單獨的搜凳年和月的欄位,就涉及日期函數從你的要求來看頃扮DATEPART函數就可以滿雀漏灶足要求

H. 如何在SQL server數據空編寫一個存儲過程,將數據輸出到excel表裡面,表名為:data.xls 。

.jpg
靜態圖象專家組制訂的靜態圖象壓縮標准,具有很高的壓縮比,使用非常廣泛,可使用PhotoShop等圖象處理軟體創建

.gif
在各種平台的各種圖形處理軟體上均能夠處理的,經過壓縮的一種圖形文件格式

.rm
Windows下的RealPlayer所支持的視頻壓縮文件,網上非常流行的流式視頻文件,很多實時視頻新聞等都是採用這種格式的,不過,最新的Windows Media Video V8已經對其發起了強大的攻勢

.reg
Windows 95的系統及應用程序注冊文件,這種文件雖然以純文本文件保存,但一樣存在版侍談知本問題,不同的操作系統使用的REG文件版本是不同的

.bmp
Bitmap點陣圖文件,這是微軟公司開發Paint的自身格式,可以被多種Windows和Windows NT平台侍手及許多應用程序支持,支持32位顏色,用於為Windows界面創建圖標的資源文件格式。

.dll
Windows動態連接庫,幾乎無處不在,但有時由於不同版本DLL沖突會造成敗各種各樣的問踢

.exe
可執行文件,雖然後綴名相同,但具有不同的格式和版本

.bat
批處理文件,在MS-DOS中,.bat文件是可執行文件,有一系列命令構成,其中可以包含對其他程序的調用

.com
DOS可執行命令文件,一般小於64KB

.rar
WinRAR提供的壓縮文件格式,壓縮率超過ZIP,同時提供的功能也更為豐富

.mp3
採用MPEG-1 Layout 3標准壓縮的音頻文件,是網上主要的壓縮音頻文件,這種文件由於具有極高的壓縮率和失真低的特點,是目前音樂盜版的主要文件格式,但目前受到VQF,WMA等新標準的老消挑戰

I. 需要實現將SQLSERVER資料庫存儲過程執行結果輸出到指定EXCEL表中該怎麼做謝謝

說說思路:
這個顯然要用ADO
1、連接資料庫帶顫,得到連接對象conn
2、用下面的select語句打開升州表,將數據讀入RecordSet
set rs=conn.execute("select * from 表名")
3、用循環將數據讀入二維數組arr
row=0
while not rs.eof
arr[row,0]=rs["id"]
arr[row,1]=rs["year"蠢笑敗]
arr[row,2]=rs["mon"]
arr[row,3]=rs["1"]
arr[row,4]=rs["2"]
...
...
...
row=row+1
wend

熱點內容
我的世界伺服器怎麼獲得32k亂碼棒 發布:2025-02-12 15:25:15 瀏覽:545
hadoopftp 發布:2025-02-12 15:22:23 瀏覽:752
ftp怎麼增加 發布:2025-02-12 15:21:08 瀏覽:378
改裝車載中控什麼配置 發布:2025-02-12 15:10:00 瀏覽:861
資料庫體系結構 發布:2025-02-12 15:09:48 瀏覽:691
小米賬號為什麼設置不了密碼 發布:2025-02-12 15:03:57 瀏覽:263
android訪問網路許可權 發布:2025-02-12 14:55:20 瀏覽:88
原神文件夾 發布:2025-02-12 14:50:15 瀏覽:800
c語言數字翻譯 發布:2025-02-12 14:45:54 瀏覽:498
暗區突圍為什麼顯示伺服器維修 發布:2025-02-12 14:45:53 瀏覽:248