Jul 21, 2009
Split a big xlsx file to several small files
Dim sFSO,sExcelApp,ExBook,NewBook,SourceSheet,NewSheet,oRange
Dim Parameters,fullfilepath,bookcount,sfile
SET Parameters = Wscript.arguments
Set sFSO = CreateObject("Scripting.FileSystemObject")
'If no command line arguments provided, quit
If Parameters.Count = 0 Then
WScript.Quit(1)
Else
fullfilepath = Parameters.item(0)
End If
If fullfilepath = "" or Not Right(fullfilepath,5) = ".xlsx" or Not sFSO.FileExists(fullfilepath) Then
Error=MsgBox("No valid input file provided. Stopping the script now.",vbokonly, "CK")
WScript.Quit(1)
End If
On Error Resume Next 'Resume Error
Set sExcelApp = CreateObject("Excel.Application") 'Create Excel instance
If Err.Number <> 0 Then
Err.Clear
WScript.Quit(1)
End If
sExcelApp.Workbooks.Open (fullfilepath)
Set ExBook = sExcelApp.ActiveWorkbook
Set SourceSheet = ExBook.worksheets(1)
Set oRange = SourceSheet.Range(SourceSheet.Cells(1, 1), SourceSheet.Cells(1, 1)).CurrentRegion
nMaxRow = oRange.Rows.Count
nMaxCol = oRange.Columns.Count
bookcount=int(nMaxRow/50000)+1
'set RangeArray(0) = SourceSheet.Range(SourceSheet.Cells(1, 1), SourceSheet.Cells(1, nMaxCol))
sExcelApp.Application.DisplayAlerts = False
For i = 1 To bookcount
if i=bookcount then
LastRow=nMaxRow
else
LastRow=50000*i
end if
NewFullFileName=left(fullfilepath,len(fullfilepath)-5) & "_" & i & right(fullfilepath,5)
if sFSO.FileExists(NewFullFileName) then
set sfile=sFSO.GetFile(NewFullFileName)
sfile.delete
end if
'set RangeArray(1) = SourceSheet.Range(SourceSheet.Cells(LastRow-50000+1, 1), SourceSheet.Cells(LastRow, nMaxCol)).Value
Set NewBook = sExcelApp.Workbooks.Add
Set NewSheet = NewBook.worksheets(1)
NewSheet.Range(NewSheet.Cells(1,1), NewSheet.Cells(1, nMaxCol)).value=SourceSheet.Range(SourceSheet.Cells(1, 1), SourceSheet.Cells(1, nMaxCol)).value
NewSheet.Range(NewSheet.Cells(LastRow-50000+1, 2), NewSheet.Cells(LastRow, nMaxCol))=SourceSheet.Range(SourceSheet.Cells(LastRow-50000+1, 1), SourceSheet.Cells(LastRow, nMaxCol)).Value
NewBook.SaveAs (NewFullFileName)
NewBook.Close True
Set NewBook = Nothing
set NewSheet=nothing
Next
ExBook.Close True
If Err.Number = 0 Then Set sfile = sFSO.CreateTextFile(left(fullfilepath,len(fullfilepath)-5) & ".swf", True)
'Wscript.Echo "err:" & Err.Number & left(fullfilepath,len(fullfilepath)-5) & ".swf.txt"
sExcelApp.Application.DisplayAlerts = True
sExcelApp.Quit
Set sFSO=Nothing
Set sExcelApp=Nothing
set ExBook = Nothing
set sfile=nothing
'**********************************************************************************************************
Jul 13, 2009
Oracle的Blob bug一例
MSN Chat:
2009-7-13 16:01:09 方蓉 周详珍 你好哦
2009-7-13 16:01:39 周详珍 方蓉 你好呀~
2009-7-13 16:01:52 方蓉 周详珍 请教你个问题哦
2009-7-13 16:01:57 方蓉 周详珍 :)
2009-7-13 16:02:27 方蓉 周详珍 就是数据库中的2个实例下的各自的用户之间导数据,但是BLOB型的大数据导不进去
2009-7-13 16:02:34 方蓉 周详珍 表也属于不同的表空间
2009-7-13 16:02:44 方蓉 周详珍 这样一般会是什么问题呢?
2009-7-13 16:10:15 周详珍 方蓉 你的数据库版本,
2009-7-13 16:10:25 方蓉 周详珍 恩 好的
2009-7-13 16:10:26 方蓉 周详珍 问问
2009-7-13 16:10:29 方蓉 周详珍 我问问
2009-7-13 16:11:25 周详珍 方蓉 你说的两个实例其实是在同一台主机上的两个Database,还是同一个Database下的两个Schema
2009-7-13 16:11:27 周详珍 方蓉 ?
2009-7-13 16:11:35 方蓉 周详珍 版本是一样的9.2
2009-7-13 16:12:02 周详珍 方蓉 oracle9.2.0.1的有这个bug
2009-7-13 16:12:18 周详珍 方蓉 你详细的版本号是多少?
2009-7-13 16:13:03 方蓉 周详珍 恩
2009-7-13 16:13:29 方蓉 周详珍 是我旁边的一个同事让我研究一下这个
2009-7-13 16:13:36 方蓉 周详珍 我问问他
2009-7-13 16:13:59 方蓉 周详珍 同一台主机上两个database
2009-7-13 16:14:14 周详珍 方蓉 还有你是怎么导的?使用什么工具?
2009-7-13 16:14:52 方蓉 周详珍 他用imp导的
2009-7-13 16:17:24 周详珍 方蓉 imp/exp应该没有问题的,你搜索下看看Oracle的bug列表看看,貌似这个版本有个bug
2009-7-13 16:18:43 方蓉 周详珍 恩 好的
2009-7-13 16:18:51 方蓉 周详珍 我再导一下数据
2009-7-13 16:18:57 方蓉 周详珍 看看报什么错
2009-7-13 16:19:04 方蓉 周详珍 在我自己的电脑上实践下
2009-7-13 16:19:27 方蓉 周详珍 一个数据库下,2个不同实例下的不同用户间导
2009-7-13 16:19:54 周详珍 方蓉 EXP-00003?
2009-7-13 16:20:27 周详珍 方蓉 请确认版本和服务器版本一致,不然测试不出来的
2009-7-13 16:20:41 周详珍 方蓉 你自己电脑上的版本?
2009-7-13 16:20:56 周详珍 方蓉 刚才这个问题确实是oracle的一个bug
2009-7-13 16:21:02 方蓉 周详珍 恩 我看看】
2009-7-13 16:21:20 方蓉 周详珍 恩 我的是 9.2.0.1.0
2009-7-13 16:21:42 方蓉 周详珍 恩 我先试试
2009-7-13 16:21:55 周详珍 方蓉 方法1:数据库升级方法2:更改$ORACLE_HOME/rdbms/admin/catexp.sql这个脚本,然后用sys帐号执行该脚本
2009-7-13 16:21:57 方蓉 周详珍 那还有什么其他方法可以导
2009-7-13 16:22:18 方蓉 周详珍 可以避免这个错误的?
2009-7-13 16:22:19 周详珍 方蓉 脚本改成:
CREATE OR REPLACE VIEW exu9tne ( tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$ WHERE ext# = 1
UNION ALL
SELECT * from sys.exu9tneb
2009-7-13 16:22:30 周详珍 方蓉 就可以了。
2009-7-13 16:22:38 方蓉 周详珍 恩 好的
2009-7-13 16:22:59 方蓉 周详珍 这边的是装在WINDOWS 2003SERVER上的
2009-7-13 16:23:24 方蓉 周详珍 好的
2009-7-13 16:23:25 周详珍 方蓉 那就再对应路径上
2009-7-13 16:23:28 方蓉 周详珍 我试试
2009-7-13 16:23:34 方蓉 周详珍 恩 知道了哦
2009-7-13 16:23:42 方蓉 周详珍 :D 谢谢哦~~~~
Xiangzhen
Apr 13, 2009
Create function get_file_fieldlist
Create function get_file_fieldlist(
Template_NO_in in number
) return varchar2 is
Type fieldlist is table of varchar2
Index by binary interger;
Field_Names fieldlist;
V_STR VARCHAR2(30) ;
V_result varchar2(2000) ;
Begin
Select 'Information_'||field_no||' as '||column_name ||', '
bulk collect into Field_Names
Where upper(effective_flg)='Y' and Template_NO=Template_NO_in;
V_STR =FIELD_NAMES(FIELD_NAMES.LAST);
FIELD_NAMES(FIELD_NAMES.LAST)=SUBSTR(V_STR,1,LENGTH(V_STR)-1);
For I IN 1 ..FIELD_NAMES.COUNT LOOP
Vl_result :=VL_RESULT||FIELD_NAMES(I);
END LOOP;
RETURN V_RESULT;
end
Apr 5, 2009
Logo 的进化史[FW]
Subscribe to:
Posts (Atom)
