当我把它放在主模块中时,下面的代码运行良好,但是当线程中发生错误时不会调用异常钩子,即使我在代码中第二次放入代码也没有。
有什么建议吗?
create function [dbo].[udf_splitstring] (@tokens varchar(max),
@delimiter varchar(5))
returns @split table (
token varchar(200) not null )
as
begin
declare @list xml
select @list = cast('<a>'
+ replace(@tokens, @delimiter, '</a><a>')
+ '</a>' as xml)
insert into @split
(token)
select ltrim(t.value('.', 'varchar(200)')) as data
from @list.nodes('/a') as x(t)
return
end
create table #dup
( id int, name varchar(100)
)
insert into #dup values
(1,'leela,venkatesh,don'),
(2,'john,smith,lewis')
select id,b.token from #dup
cross apply
(select token from udf_splitstring(name,',') )b
线程调用如下:
import sys
def myexcepthook(exctype, value, traceback):
if exctype == KeyboardInterrupt:
print "Handler code goes here"
else:
sys.__excepthook__(exctype, value, traceback)
sys.excepthook = myexcepthook