Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未从触发器执行SSIS包_Java_Sql_Sql Server 2008_Ssis - Fatal编程技术网

Java 未从触发器执行SSIS包

Java 未从触发器执行SSIS包,java,sql,sql-server-2008,ssis,Java,Sql,Sql Server 2008,Ssis,我有一个before insert触发器,它执行SSIS包来执行一些工作 当从SQLServer查询窗口执行时(通过在表中插入一行),它可以完美地工作 但是当从java代码插入时,SSIS包不会被执行。 我真的很困惑为什么会发生这种奇怪的行为。感谢您的帮助 触发代码: USE [GreeF] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[INS_TRG] on [dbo].[MyTrigger]

我有一个before insert触发器,它执行SSIS包来执行一些工作

当从SQLServer查询窗口执行时(通过在表中插入一行),它可以完美地工作

但是当从java代码插入时,SSIS包不会被执行。 我真的很困惑为什么会发生这种奇怪的行为。感谢您的帮助

触发代码:

USE [GreeF]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[INS_TRG] on [dbo].[MyTrigger] for insert
as 
begin try
Declare @cmd varchar(1000)
declare @FName varchar(100)
select @FName = [FileName] from inserted
select @cmd = 'dtexec /f "\\SOME_IP\packageName.dtsx" /Set "\Package.Variables[User::FileName].Properties[Value]";"'+@FName+'"'
exec master..xp_cmdshell @cmd
print @cmd
end try
begin catch
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;

SELECT 
    @ErrorMessage = ERROR_MESSAGE(),
    @ErrorSeverity = ERROR_SEVERITY(),
    @ErrorState = ERROR_STATE();

raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState)

end catch

“插入执行SSIS包的触发器之前”-eeeekkkkk!我能想到的只有几个更糟糕的想法……java代码作为一个具有足够权限的身份运行吗?@MitchWheat我同意这是个糟糕的想法。但是条件迫使我。java代码有足够的权限在表和数据库上执行insert更新。没有SSIS包代码的正常insert语句工作正常。1。打开包中的日志记录。我将有兴趣了解软件包是否没有启动或是否失败。2.当您声明从SSMS(而不是Java应用程序)插入时,它工作正常-您是否在两个测试中使用相同的用户帐户(我猜是否)