יצוא לאקסל מהSQL דרך הקוד

עוגיות

משתמש מקצוען
יש כאן למישהי קוד שעובד?
חפרתי באינטרנט ושום דבר לא הולך..
 

נחליאלי(ת)

משתמש סופר מקצוען
הנדסת תוכנה


 

ה-כנרית

משתמש מקצוען
מוזיקה ונגינה
---EXEC bcp--------------------------------------------------------------------
CREATE procedure [dbo].[bcp_export_csv]
(
@query varchar(1000),@fileName varchar(500)
)
AS
BEGIN
DECLARE @bcpCommand varchar(3000)
DECLARE @SelectQuery varchar(2000)
DECLARE @OutPath varchar(2000)
DECLARE @FileName varchar(2000)
DECLARE @format varchar(2000)

SET @outPath =' queryout "C:\Temp\' + @fileName+ '-' + REPLACE(CONVERT(char(10),GETDATE(),111),'/','-')+'.csv"'
SET @format=' -C1255 -c -t, -T'-- -S'+ convert(varchar,@@ServerName)
SET @bcpCommand = 'bcp'+ @query + @outPath + @format
EXEC master..xp_cmdshell @bcpCommand
END


-----------------------------------
CREATE procedure [dbo].[export_report] ()
AS
BEGIN
DECLARE @SelectQuery varchar(2000)
SET @SelectQuery =' "exec db1.. TABLE_NAME '''+column_name+''','''+ column_name2+'''" '
exec bcp_export_csv_report @SelectQuery,@file_name
-----------------------------------

 

עוגיות

משתמש מקצוען
תוכלי להדפיס לי את :
@bcpCommand
וכן - מה השגיאה שאת מקבלת ?

CREATE procedure proc_generate_excel_with_columns
(
@db_name varchar(100),
@table_name varchar(100),
@file_name varchar(100)
)
as

--Generate column names as a recordset
declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100)
select
@columns=coalesce(@columns+',','')+column_name+' as '+column_name
from
information_schema.columns
where
table_name=@table_name
select @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''')

--Create a dummy file to have actual data
select @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls'

--Generate column names in the passed EXCEL file
set @sql='exec xp_cmdshell ''bcp " select * from (select '+@columns+') as t" queryout "'+@file_name+'" -c'''
exec(@sql)

--Generate data in the dummy file
set @sql='exec xp_cmdshell ''bcp "select * from '+@db_name+'..'+@table_name+'" queryout "'+@data_file+'" -c'''
exec(@sql)

--Copy dummy file to passed EXCEL file
set @sql= 'exec xp_cmdshell ''type '+@data_file+' >> "'+@file_name+'"'''
exec(@sql)

--Delete dummy file
set @sql= 'exec xp_cmdshell ''del '+@data_file+''''
exec(@sql)

GO
 

עוגיות

משתמש מקצוען
תוכלי להדפיס לי את :
@bcpCommand
וכן - מה השגיאה שאת מקבלת ?
השגיאה:
1595751582155.png
 

עוגיות

משתמש מקצוען
תיקון:
הוא מייצא לאקסל דרך הפרוצדורה הזאת:

CREATE procedure proc_generate_excel_with_columns
(
@db_name varchar(100),
@table_name varchar(100),
@file_name varchar(100)
)
as

--Generate column names as a recordset
declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100)
select
@columns=coalesce(@columns+',','')+column_name+' as '+column_name
from
information_schema.columns
where
table_name=@table_name
select @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''')

--Create a dummy file to have actual data
select @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls'

--Generate column names in the passed EXCEL file
set @sql='exec xp_cmdshell ''bcp " select * from (select '+@columns+') as t" queryout "'+@file_name+'" -c'''
exec(@sql)

--Generate data in the dummy file
set @sql='exec xp_cmdshell ''bcp "select * from '+@db_name+'..'+@table_name+'" queryout "'+@data_file+'" -c'''
exec(@sql)

--Copy dummy file to passed EXCEL file
set @sql= 'exec xp_cmdshell ''type '+@data_file+' >> "'+@file_name+'"'''
exec(@sql)

--Delete dummy file
set @sql= 'exec xp_cmdshell ''del '+@data_file+''''
exec(@sql)

GO


אך ללא נתונים!
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קמט

א הַלְלוּיָהּ שִׁירוּ לַיהוָה שִׁיר חָדָשׁ תְּהִלָּתוֹ בִּקְהַל חֲסִידִים:ב יִשְׂמַח יִשְׂרָאֵל בְּעֹשָׂיו בְּנֵי צִיּוֹן יָגִילוּ בְמַלְכָּם:ג יְהַלְלוּ שְׁמוֹ בְמָחוֹל בְּתֹף וְכִנּוֹר יְזַמְּרוּ לוֹ:ד כִּי רוֹצֶה יְהוָה בְּעַמּוֹ יְפָאֵר עֲנָוִים בִּישׁוּעָה:ה יַעְלְזוּ חֲסִידִים בְּכָבוֹד יְרַנְּנוּ עַל מִשְׁכְּבוֹתָם:ו רוֹמְמוֹת אֵל בִּגְרוֹנָם וְחֶרֶב פִּיפִיּוֹת בְּיָדָם:ז לַעֲשׂוֹת נְקָמָה בַּגּוֹיִם תּוֹכֵחֹת בַּלְאֻמִּים:ח לֶאְסֹר מַלְכֵיהֶם בְּזִקִּים וְנִכְבְּדֵיהֶם בְּכַבְלֵי בַרְזֶל:ט לַעֲשׂוֹת בָּהֶם מִשְׁפָּט כָּתוּב הָדָר הוּא לְכָל חֲסִידָיו הַלְלוּיָהּ:
נקרא  6  פעמים

ספירת העומר

לוח מודעות

למעלה